- 07 Nov, 2018 1 commit
-
-
Igor Sheludko authored
This is a reland of b8e8b0de Original change's description: > [ptr-compr] Fix incorrectly used machine types > > in TurboFan, CSA, Wasm and compiler tests. Tagged values decompression > logic will depend on the machine type of the value being loaded so it must > be correct. > > Bug: v8:7703 > Change-Id: Ia9e7cc1e273e5a458d9de8aaa4adb0c970413b8b > Reviewed-on: https://chromium-review.googlesource.com/c/1319573 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57280} Bug: v8:7703 Change-Id: I2c740bab9a800520ebfb83334345bd5641b7e408 Reviewed-on: https://chromium-review.googlesource.com/c/1320850Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57314}
-
- 06 Nov, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit b8e8b0de. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm%20-%20debug/8276 Original change's description: > [ptr-compr] Fix incorrectly used machine types > > in TurboFan, CSA, Wasm and compiler tests. Tagged values decompression > logic will depend on the machine type of the value being loaded so it must > be correct. > > Bug: v8:7703 > Change-Id: Ia9e7cc1e273e5a458d9de8aaa4adb0c970413b8b > Reviewed-on: https://chromium-review.googlesource.com/c/1319573 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57280} TBR=mstarzinger@chromium.org,ishell@chromium.org Change-Id: Ia97d5bfebf8d8fe1b2b7607f63024b60cf2c584f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Reviewed-on: https://chromium-review.googlesource.com/c/1320349Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#57294}
-
Igor Sheludko authored
in TurboFan, CSA, Wasm and compiler tests. Tagged values decompression logic will depend on the machine type of the value being loaded so it must be correct. Bug: v8:7703 Change-Id: Ia9e7cc1e273e5a458d9de8aaa4adb0c970413b8b Reviewed-on: https://chromium-review.googlesource.com/c/1319573 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57280}
-
- 30 Aug, 2018 1 commit
-
-
Bill Budge authored
- Cleans up existing code that tests for representations using a bitmask. - Bypass FP register allocation for sequences without FP vregs. Change-Id: I5ff32e80e0c33848ba83ee17f786b01e37821aa2 Reviewed-on: https://chromium-review.googlesource.com/1195528 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55535}
-
- 07 May, 2018 1 commit
-
-
Andreas Haas authored
R=clemensh@chromium.org CC=titzer@chromium.org Change-Id: I4951bf7ffc8baf51225e7bef60349186811b9f76 Reviewed-on: https://chromium-review.googlesource.com/1024037 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53020}
-
- 03 May, 2018 1 commit
-
-
Marja Hölttä authored
Restores some sensemaking properties, such as making src/machine-type.h (lower level header) independent of src/zone/zone.h (higher level header). BUG=v8:7490 Change-Id: Ibc6e5c7a75e4aaf917d086cf70267abc7ee9a9b0 Reviewed-on: https://chromium-review.googlesource.com/1039586Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52941}
-
- 12 Jan, 2018 1 commit
-
-
Andreas Haas authored
This CL makes a fuzzer out of the cctest test-multiple-return/ReturnMultipleRandom. The fuzzer creates a CallDescriptor with input parameters and returns, and a function which maps input parameters to returns. The fuzzer then calls this function with a wrapper which checks that the correct mapping happened. R=clemensh@chromium.org Change-Id: Ib89c4063638baae69540a44486d7b2e9d13f8c1f Reviewed-on: https://chromium-review.googlesource.com/859768Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#50532}
-
- 23 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
This CL adds a first implementation of Liftoff, the new wasm baseline compiler, for x64 and ia32. It currently supports the most important i32 instructions and control instructions. Whenever it encounters an instruction it does not support yet, it aborts. In a subsequent CL, Liftoff will be called from the WasmCompilationUnit, falling back to Turbofan compilation if the baseline compiler bails out. R=titzer@chromium.org Bug: v8:6600 Change-Id: Ifa78fb9d546dce72c241ff01a251dfa13cb31c1d Reviewed-on: https://chromium-review.googlesource.com/716480 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48832}
-
- 20 Oct, 2017 1 commit
-
-
Tobias Tebbi authored
- Introduce the new union type UnionType<T1,T2>, used for Number and Numeric. Similarly, PairType<T1,T2> is used for a Turbofan operation with two results. Further details in the design doc: https://docs.google.com/document/d/10foP3m7SDWyFfbda96iEJ_XYOLQdd32AeoP8SD1cTcs/edit#heading=h.bghdno28mr7u - Allow to derive the MachineType from a static type. This allows to select the right MachineType when performing a load/store. - Disallow casts (UncheckedCast() or CAST()) when the target and origin type have no overlap. New cast ReinterpretCast() is an UncheckedCast without this check. - Caveat of this CL: Checked casts (CAST()) are not possible for UnionType<T1,T2> with the exception of Number (due to the existence of Number in OBJECT_TYPE_LIST and the existence of an IsNumber() function in the runtime). Bug: v8:6949 Change-Id: I21a683d1341f69cebd8a347f545b454b463c52ad Reviewed-on: https://chromium-review.googlesource.com/723320 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48796}
-
- 21 Aug, 2017 1 commit
-
-
Albert Mingkun Yang authored
The new node behave the same as its counterpart, CallCFunction, with the additional saving and restoring caller saved registers before and after the function call. Bug: chromium:749486 Change-Id: I0a1dfb2e4e55f7720541a00e6d16fd20220f39ed Reviewed-on: https://chromium-review.googlesource.com/620709 Commit-Queue: Albert Mingkun Yang <albertnetymk@google.com> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47479}
-
- 04 Aug, 2017 1 commit
-
-
Tobias Tebbi authored
Bug: Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I2e1b36303f8b9ad4a3dc4e488123e6e4ce8b02ec Reviewed-on: https://chromium-review.googlesource.com/533033 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#47149}
-
- 08 Jun, 2017 1 commit
-
-
bbudge authored
- Eliminates b1x4, b1x8, and b1x16 as distinct WASM types. - All vector comparisons return v128 type. - Eliminates b1xN and, or, xor, not. - Selects take a v128 mask vector and are now bit-wise. - Adds a new test for Select, where mask is non-canonical (not 0's and -1's). LOG=N BUG=v8:6020 Review-Url: https://codereview.chromium.org/2919203002 Cr-Commit-Position: refs/heads/master@{#45795}
-
- 22 May, 2017 1 commit
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
- 21 Feb, 2017 1 commit
-
-
bbudge authored
- Adds new machine types SimdBool4/8/16 for the different boolean vector types. - Adds a kSimdMaskRegisters flag for each platform. These are all false for now. - Removes Create, ExtractLane, ReplaceLane, Equal, NotEqual, Swizzle and Shuffle opcodes from the Boolean types. These are unlikely to be well supported natively, and can be synthesized using Select. - Changes the signature of Relational opcodes to return boolean vectors. - Changes the signature of Select opcodes to take boolean vectors. - Updates the ARM implementation of Relational and Select opcodes. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2700813002 Cr-Commit-Position: refs/heads/master@{#43348}
-
- 10 Feb, 2017 1 commit
-
-
ulan authored
This works around a compiler bug that leads to incorrect masking of the semantic_ field in TruncatingUseInfoFromRepresentation. Patch from bulach@google.com BUG= Review-Url: https://codereview.chromium.org/2669113003 Cr-Original-Commit-Position: refs/heads/master@{#42925} Committed: https://chromium.googlesource.com/v8/v8/+/8c7fc377fd5c03e30cbf767cd22aba59178e0143 Review-Url: https://codereview.chromium.org/2669113003 Cr-Commit-Position: refs/heads/master@{#43099}
-
- 03 Feb, 2017 2 commits
-
-
jarin authored
Revert of Removes uint8_t from MachineRepresentation and MachineSemantic enums. (patchset #1 id:1 of https://codereview.chromium.org/2669113003/ ) Reason for revert: Breaks bunch Wasm tests on Win64 (e.g., cctest/test-run-wasm/RunWasmCompiled_CallIndirect_EmptyTable). Original issue's description: > Removes uint8_t from MachineRepresentation and MachineSemantic enums. > > This works around a compiler bug that leads to incorrect masking of > the semantic_ field in TruncatingUseInfoFromRepresentation. > > Patch from bulach@google.com > > BUG= > > Review-Url: https://codereview.chromium.org/2669113003 > Cr-Commit-Position: refs/heads/master@{#42925} > Committed: https://chromium.googlesource.com/v8/v8/+/8c7fc377fd5c03e30cbf767cd22aba59178e0143 TBR=bulach@google.com,bmeurer@chromium.org,ulan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2669213006 Cr-Commit-Position: refs/heads/master@{#42927}
-
ulan authored
This works around a compiler bug that leads to incorrect masking of the semantic_ field in TruncatingUseInfoFromRepresentation. Patch from bulach@google.com BUG= Review-Url: https://codereview.chromium.org/2669113003 Cr-Commit-Position: refs/heads/master@{#42925}
-
- 16 Dec, 2016 1 commit
-
-
cbruni authored
Many websites use simple calls to String.prototype.indexOf with either a one character ASCII needle or needles bigger than the search string. This CL adds a TFJ builtin for these simple cases, giving up to factor 5 speedup. Drive-by-fix: Add default Object type to Arguments.at BUG= Review-Url: https://codereview.chromium.org/2539093002 Cr-Commit-Position: refs/heads/master@{#41760}
-
- 09 Nov, 2016 1 commit
-
-
bbudge authored
- Track representations of virtual registers in InstructionSequence. - Skip extra aliasing work when no floats or SIMD registers are used. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2468233004 Cr-Commit-Position: refs/heads/master@{#40870}
-
- 03 Nov, 2016 1 commit
-
-
bmeurer authored
For lowering CheckHeapObject, always report TaggedPointer representation and let the RepresentationChanger come up with a reasonable conversion from whatever input representation to TaggedPointer. This way we no longer insert the useless ChangeSomethingToTagged and then check the result for HeapObject, i.e. mostly reduces the amount of useless code being generated. Note there are now two operators ChangeFloat64ToTaggedPointer and the old ChangeFloat64ToTagged, because their semantics different wrt. the strength reduction in the SimplifiedOperatorReducer. Also set the output MachineRepresentation::kTaggedPointer properly in SimplifiedLowering whenever we know that we produce a HeapObject. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2476593002 Cr-Commit-Position: refs/heads/master@{#40725}
-
- 26 Oct, 2016 1 commit
-
-
bbudge authored
- Modifies RegisterConfiguration to specify complex aliasing on ARM 32. - Modifies RegisterAllocator to consider aliasing. - Modifies ParallelMove::PrepareInsertAfter to handle aliasing. - Modifies GapResolver to split wider register moves when interference with smaller moves is detected. - Modifies MoveOptimizer to handle aliasing. - Adds ARM 32 macro-assembler pseudo move instructions to handle cases where split moves don't correspond to actual s-registers. - Modifies CodeGenerator::AssembleMove and AssembleSwap to handle moves of different widths, and moves involving pseudo-s-registers. - Adds unit tests for FP operand interference checking and PrepareInsertAfter. - Adds more tests of FP for the move optimizer and register allocator. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2410673002 Cr-Commit-Position: refs/heads/master@{#40597}
-
- 17 Oct, 2016 1 commit
-
-
jochen authored
R=machenbach@chromium.org,titzer@chromium.org,bmeurer@chromium.org,jgruber@chromium.org BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg,v8_mac_dbg;master.tryserver.chromium.android:android_arm64_dbg_recipe Review-Url: https://codereview.chromium.org/2416243002 Cr-Commit-Position: refs/heads/master@{#40350}
-
- 03 Oct, 2016 1 commit
-
-
bbudge authored
- Orders machine representations so it's easier to check for floating point. - Orders operand types so it's easier to check for LocationOperands. - Adds IsLocation, IsFPLocation predicates. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2382013003 Cr-Commit-Position: refs/heads/master@{#39941}
-
- 26 Sep, 2016 1 commit
-
-
jgruber authored
V8 is collecting a growing amount of fuzzers, all of which take substantial space on the bots and in chromium build archives. This CL improves that situation by allowing component (shared library) builds for almost all fuzzers. The parser fuzzer is handled as an exception since it would require exporting a large number of additional functions. A component build results in about a 50-100x improvement in file size for each fuzzer (~50M-100M to around 1.1M). BUG=chromium:648864 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.android:android_clang_dbg_recipe Review-Url: https://codereview.chromium.org/2360983002 Cr-Commit-Position: refs/heads/master@{#39709}
-
- 20 Sep, 2016 1 commit
-
-
heimbuef authored
This is some initial cleanup to keep /src clean. The AccountingAllocator is actually exclusively used by zones and this common subfolder makes that more clear. BUG=v8:5409 Review-Url: https://codereview.chromium.org/2344143003 Cr-Commit-Position: refs/heads/master@{#39558}
-
- 08 Sep, 2016 1 commit
-
-
ishell authored
Review-Url: https://codereview.chromium.org/2321543003 Cr-Commit-Position: refs/heads/master@{#39280}
-
- 30 Aug, 2016 1 commit
-
-
mvstanton authored
Increasingly, we avoid using the representation dimension of Type, and set it explicitly ourselves. BUG= Review-Url: https://codereview.chromium.org/2290233002 Cr-Commit-Position: refs/heads/master@{#39026}
-
- 29 Aug, 2016 1 commit
-
-
mvstanton authored
Introduced MachineType::TaggedSigned() and TaggedPointer(). The idea is to quit using the representational dimension of Type, and instead encode this information in the MachineRepresentation (itself lightly wrapped in MachineType, along with MachineSemantic). There are three parts to the whole change: 1) Places that set the machine representation - constant nodes, loads nad stores, global object and native context specialization. 2) Places that propagate type/representation - this is representation inference (aka simplified lowering). At the end of this process we expect to have a MachineRepresentation for every node. An interesting part of this is phi merging. 3) Places that examine representation - WriteBarrier elimination does this. Currently it's looking at the Type representation dimension, but as a part of this change (or in a soon-to-follow change) it can simply examine the MachineRepresentation. BUG= Review-Url: https://codereview.chromium.org/2258073002 Cr-Commit-Position: refs/heads/master@{#38978}
-
- 16 Aug, 2016 1 commit
-
-
mvstanton authored
These new representations aren't used yet. BUG= Review-Url: https://codereview.chromium.org/2216383002 Cr-Commit-Position: refs/heads/master@{#38657}
-
- 22 Jul, 2016 1 commit
-
-
ivica.bogosavljevic authored
Implement UnalignedLoad and UnalignedStore optional turbofan operators and use them in WasmCompiler for unaligned memory access. BUG= Review-Url: https://codereview.chromium.org/2122853002 Cr-Commit-Position: refs/heads/master@{#37988}
-
- 30 Jun, 2016 1 commit
-
-
bbudge authored
-Defines SIMD128_REGISTERS for all platforms. -Adds Simd128 register information to RegisterConfiguration, and implements aliasing calculations. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2092103004 Cr-Commit-Position: refs/heads/master@{#37437}
-
- 29 Jun, 2016 1 commit
-
-
bgeron authored
BUG= Review-Url: https://codereview.chromium.org/2107833002 Cr-Commit-Position: refs/heads/master@{#37374}
-
- 10 May, 2016 1 commit
-
-
bbudge authored
Renames IsDouble* predicates to IsFP*. Adds specific IsFloat*, IsDouble*, and IsSimd128* predicates. Adds specific GetFloatRegister, GetDoubleRegister, and GetSimd128Register methods. This is mostly a mechanical renaming of IsDouble* to IsFP* methods. This shouldn't change code generation at all. All fp registers are still treated as double registers. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/1959763002 Cr-Commit-Position: refs/heads/master@{#36146}
-
- 17 Feb, 2016 1 commit
-
-
bbudge authored
Adds kSimd128 to MachineRepresentation. Adds a Simd128Register concept that's platform independent. Adds UntaggedSimd128 to types.h. LOG=N BUG=v8:4124 Review URL: https://codereview.chromium.org/1693963004 Cr-Commit-Position: refs/heads/master@{#34089}
-
- 10 Dec, 2015 1 commit
-
-
jarin authored
MachineType is now a class with two enum fields: - MachineRepresentation - MachineSemantic Both enums are usable on their own, and this change switches some places from using MachineType to use just MachineRepresentation. Most notably: - register allocator now uses just the representation. - Phi and Select nodes only refer to representations. Review URL: https://codereview.chromium.org/1513543003 Cr-Commit-Position: refs/heads/master@{#32738}
-
- 03 Dec, 2015 1 commit
-
-
titzer authored
R=bmeurer@chromium.org,jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1498833002 Cr-Commit-Position: refs/heads/master@{#32564}
-
- 11 Aug, 2015 2 commits
-
-
titzer authored
Reland: [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack. OCL: https://codereview.chromium.org/1263033004/ R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1284893002 Cr-Commit-Position: refs/heads/master@{#30115}
-
yangguo authored
Revert of [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack. (patchset #7 id:120001 of https://codereview.chromium.org/1263033004/ ) Reason for revert: This CL breaks MIPS (roll blocker). https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20mipsel%20-%20sim/builds/2061/steps/Check/logs/Run_Int32_Select_1 Original issue's description: > [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack. > > R=jarin@chromium.org > BUG= > > Committed: https://crrev.com/71409be5395f867bbca0f6998bf6caa175cd8192 > Cr-Commit-Position: refs/heads/master@{#30091} TBR=jarin@chromium.org,titzer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1284853002 Cr-Commit-Position: refs/heads/master@{#30101}
-
- 10 Aug, 2015 1 commit
-
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1263033004 Cr-Commit-Position: refs/heads/master@{#30091}
-
- 15 Jun, 2015 1 commit
-
-
bmeurer authored
This fixes a few funky implicit conversions for the enum (that are inconsistent across compilers) and also helps to save space, i.e. for the representations_ vector in the InstructionSequence. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1182303003 Cr-Commit-Position: refs/heads/master@{#29011}
-