- 29 Feb, 2016 2 commits
-
-
titzer authored
R=bradnelson@chromium.org,ahaas@chromium.org BUG= Review URL: https://codereview.chromium.org/1746653002 Cr-Commit-Position: refs/heads/master@{#34368}
-
bmeurer authored
Rename the existing (patching) ToBooleanStub to ToBooleanICStub to match our naming convention, and add a new TurboFan-powered ToBooleanStub, which just does the ToBoolean conversion without any runtime call or code patching, so we can use it for Ignition (and TurboFan). Drive-by-fix: Add an Oddball::to_boolean field similar to the ones we already have for to_string and to_number, so we don't need to actually dispatch on the concrete Oddball at all. R=epertoso@chromium.org, rmcilroy@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/1744163002 Cr-Commit-Position: refs/heads/master@{#34361}
-
- 25 Feb, 2016 1 commit
-
-
ulan authored
Reland "Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ )" This reverts commit 9146bc5e. This contains a fix for the following crash: 1. We record slots for a fixed array. 2. We trim the fixed array, so that some recorded slots are now in free space. 3. During mark-compact we sweep the page with the fixed array. Now free list items contain memory with recorded slots. 4. We evacuate a byte array using the new free list items. 5. We iterate slots that are now inside the byte array and crash. BUG=chromium:589413,chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1735523002 Cr-Commit-Position: refs/heads/master@{#34302}
-
- 24 Feb, 2016 4 commits
-
-
vogelheim authored
This reduces the memory consumption of SourcePositionTable by ca. 2/3. Over Octane, this reduces the source position table memory consumption from ~370kB to ~115kB, which makes it ca. 10% of the total bytecode size (~1.1MB) ---------------- Reland CL in order to relive the glory days, and also fix memory leak w/ ENABLE_SLOW_CHECKS. SourcePositionTableBuilder used to have a no destructor since everything was zone allocated. But if ENABLE_SLOW_CHECKS, it has a heap allocated member and thus needs a proper constructor. ASAN thankfully notices this, and V8 no longer builds since this is called during mksnapshot. Breakge example: http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN%20arm64%20-%20debug%20builder/builds/4829 R=jochen@chromium.org, yangguo@chromium.org, rmcilroy@chromium.org BUG=v8:4690 LOG=y Committed: https://crrev.com/a6f41f7b8226555c5900440f6e3092b3545ee0f6 Cr-Commit-Position: refs/heads/master@{#34250} patch from issue 1704943002 at patchset 200001 (http://crrev.com/1704943002#ps200001) Review URL: https://codereview.chromium.org/1731883003 Cr-Commit-Position: refs/heads/master@{#34256}
-
vogelheim authored
Revert of Encode interpreter::SourcePositionTable as variable-length ints. (patchset #10 id:200001 of https://codereview.chromium.org/1704943002/ ) Reason for revert: Build failure on Linux64 arm64 ASAN: http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN%20arm64%20-%20debug%20builder/builds/4829 (Leaks memory, somehow.) Original issue's description: > Encode interpreter::SourcePositionTable as variable-length ints. > > This reduces the memory consumption of SourcePositionTable by ca. 2/3. > Over Octane, this reduces the source position table memory consumption > from ~370kB to ~115kB, which makes it ca. 10% of the total bytecode size > (~1.1MB) > > BUG= > > Committed: https://crrev.com/a6f41f7b8226555c5900440f6e3092b3545ee0f6 > Cr-Commit-Position: refs/heads/master@{#34250} TBR=jochen@chromium.org,rmcilroy@chromium.org,yangguo@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/1728193003 Cr-Commit-Position: refs/heads/master@{#34251}
-
vogelheim authored
This reduces the memory consumption of SourcePositionTable by ca. 2/3. Over Octane, this reduces the source position table memory consumption from ~370kB to ~115kB, which makes it ca. 10% of the total bytecode size (~1.1MB) BUG= Review URL: https://codereview.chromium.org/1704943002 Cr-Commit-Position: refs/heads/master@{#34250}
-
ulan authored
Revert of Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ ) Reason for revert: Revert because of canary crashes: crbug.com/589413 Original issue's description: > Replace slots buffer with remembered set. > > Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>. > > The remembered set is extended to support typed slots. > > During parallel evacuation all migration slots are recorded in local slots buffers. > After evacuation all local slots are added to the remembered set. > > BUG=chromium:578883 > LOG=NO > > Committed: https://crrev.com/2285a99ef6f7d52f4f0c4d88a7db4224443ee152 > Cr-Commit-Position: refs/heads/master@{#34212} TBR=jochen@chromium.org,hpayer@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:578883 Review URL: https://codereview.chromium.org/1725073003 Cr-Commit-Position: refs/heads/master@{#34238}
-
- 23 Feb, 2016 2 commits
-
-
ahaas authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1714793003 Cr-Commit-Position: refs/heads/master@{#34213}
-
ulan authored
Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>. The remembered set is extended to support typed slots. During parallel evacuation all migration slots are recorded in local slots buffers. After evacuation all local slots are added to the remembered set. BUG=chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1703823002 Cr-Commit-Position: refs/heads/master@{#34212}
-
- 19 Feb, 2016 1 commit
-
-
bmeurer authored
This reducer doesn't really add value, because: (a) it is only concerned with JSCallFunction and JSToNumber, but when we get to it, all JSCallFunction nodes will have been replaced by Call nodes, and in the not so far future, we will also have replaced almost all JSToNumber nodes with better code, (b) and the reducer tries to be smart and use one of the outermost contexts, but that might not be beneficial always; actually it might even create longer live ranges and lead to more spilling in some cases. But most importantly, the JSContextRelaxation currently blocks inlining based on SharedFunctionInfo, because it requires the inliner to check the native context, which in turn requires JSFunction knowledge. So I'm removing this reducer for now to unblock the more important inliner changes. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1715633002 Cr-Commit-Position: refs/heads/master@{#34139}
-
- 14 Feb, 2016 1 commit
-
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1691373002 Cr-Commit-Position: refs/heads/master@{#33966}
-
- 10 Feb, 2016 1 commit
-
-
rmcilroy authored
Moves InterpreterAssembler out of the compiler directory and into the interpreter directory. Makes InterpreterAssembler as subclass of CodeStubAssembler. As part of this change, the special bytecode dispatch linkage type is removed and instead we use a InterfaceDispatchDescriptor and a normal CodeStub linkage type. Removes a bunch of duplicated logic in InterpreterAssembler and instead uses the CodeStubAssembler logic. Refactors Interpreter with these changes. Modifies CodeStubAssembler to add the extra operations required by the Interpreter (extra call types, raw memory access and some extra binary ops). Also adds the ability for subclasses to add extra prologue and epilogue operations around calls, which is required for the Interpreter. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1673333004 Cr-Commit-Position: refs/heads/master@{#33873}
-
- 08 Feb, 2016 2 commits
-
-
bmeurer authored
This moves the JSCreate related functionality from JSTypedLowering into a dedicated JSCreateLowering reducer. This is in preparation of landing the support for optimized literals in TurboFan, which would blow up JSTypedLowering quite seriously otherwise. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1678833002 Cr-Commit-Position: refs/heads/master@{#33813}
-
ulan authored
This replaces the global remembered set with per-page remembered sets. Each page in the old space, map space, and large object space keeps track of the set of slots in the page pointing to the new space. The data structure for storing slot sets is a two-level bitmap, which allows us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic. Design doc: https://goo.gl/sMKCf7 BUG=chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1608583002 Cr-Commit-Position: refs/heads/master@{#33806}
-
- 26 Jan, 2016 1 commit
-
-
oth authored
This increases the size of register operands to be 16-bit. Not all bytecodes have wide register variants, so when they are needed a register translator will copy them into a small area reserved at the top of the 8-bit register range and these registers are supplied as arguments to the bytecode with 8-bit operands. This is non-intrusive for typical bytecode where the number of registers is less than 120. For bytecodes with wide register operands (above the window) their index needs to be translated to avoid the reserved translation window. Enables splay.js to run in Octane and a handful of mjsunit tests. BUG=v8:4280,v8:4675 LOG=NO Review URL: https://codereview.chromium.org/1613163002 Cr-Commit-Position: refs/heads/master@{#33516}
-
- 25 Jan, 2016 1 commit
-
-
titzer authored
This CL implements loop assignment analysis, a pass over a loop's body to record local variables that are assigned. This pre-pass is similar to that done on the JavaScript AST for the same reason: avoid introducing too many phis at loop headers when building a graph. R=bradnelson@chromium.org,ahaas@chromium.org BUG= Review URL: https://codereview.chromium.org/1617723003 Cr-Commit-Position: refs/heads/master@{#33486}
-
- 14 Jan, 2016 1 commit
-
-
rmcilroy authored
Split RegisterAllocationScope out of ExpressionResult and allocate one for each statement. This ensures that we always have an outer register allocation scope for statement code (used in CountOperation and RegisterExecutionResult). Also refactored the register allocator code to move it to it's own file and rename from TemporaryRegisterScope to BytecodeRegisterAllocator. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1587033002 Cr-Commit-Position: refs/heads/master@{#33296}
-
- 05 Jan, 2016 2 commits
-
-
oth authored
This increases the size of addressable constant pool entries for jumps to match other bytecodes using operands indexing the constant pool. This change also introduces reservations for constant pool entries. Reservations are used for forward jumps to ensure a constant pool entry will be available when the jump target (label) is bound and the jump is patched up in the bytecode array. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1546683002 Cr-Commit-Position: refs/heads/master@{#33125}
-
bradnelson authored
Deferring enabling of tests to separate per platform CLs. R=machenbach@chromium.org,titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1553083003 Cr-Commit-Position: refs/heads/master@{#33123}
-
- 17 Dec, 2015 2 commits
-
-
machenbach authored
Revert of Remove wasm compile time option and enable wasm behind a runtime flag. (patchset #54 id:1050001 of https://codereview.chromium.org/1516753007/ ) Reason for revert: [Sheriff] Some build failures, e.g.: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/7502 Original issue's description: > Remove wasm compile time option and enable wasm behind a runtime flag. > > R=titzer@chromium.org > BUG= > > Committed: https://crrev.com/153f2bd47cce9d5dfa74074dda34c02731d96924 > Cr-Commit-Position: refs/heads/master@{#32955} TBR=titzer@chromium.org,bradnelson@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1531073003 Cr-Commit-Position: refs/heads/master@{#32957}
-
bradnelson authored
R=titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1516753007 Cr-Commit-Position: refs/heads/master@{#32955}
-
- 11 Dec, 2015 1 commit
-
-
titzer authored
As discussed in person, this adds the code from v8-native-prototype into V8 proper, guarded by GYP flags that do not build the code by default. Passing wasm=on to 'make' or setting v8_wasm as a GYP flag activates building of this code. An additional header file is added to and exported from the compiler directory, src/compiler/wasm-compiler.h. This exposes a limited interface with opaque Node and Graph types to the decoder to build TF graphs, as well as functions to compile WASM graphs. The mjsunit tests added are blacklisted because they fail without the WASM object exposed to JS, which is also disabled by the build config option. This corresponds closely to https://github.com/WebAssembly/v8-native-prototype/commit/5981e06ebc9b1e578831d03100f17ebb77970ee0, with some formatting fixes and moving some files into src/compiler. R=mstarzinger@chromium.org, bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1504713014 Cr-Commit-Position: refs/heads/master@{#32794}
-
- 09 Dec, 2015 1 commit
-
-
jochen authored
Embedders still can use those APIs by default test-api.cc still has an exception to use the old APIs... BUG=v8:4143 R=vogelheim@chromium.org LOG=n Review URL: https://codereview.chromium.org/1505803004 Cr-Commit-Position: refs/heads/master@{#32701}
-
- 02 Dec, 2015 1 commit
-
-
sigurds authored
This is the first part of escape analysis for turbofan. At the moment, there is no deopt support, and support for loops is partial (only binary Phis are handled). The CL includes 4 unittests. There are also 8 new mjsunit tests, some of which are skiped as they require features not yet implemented. BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1457683003 Cr-Commit-Position: refs/heads/master@{#32498}
-
- 26 Nov, 2015 3 commits
-
-
oth authored
Removing bytecode graph builder tests as they are high maintenance and have limited use, ie they track changes in the implementation rather than behaviour. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1477783003 Cr-Commit-Position: refs/heads/master@{#32333}
-
bmeurer authored
Revert of binary-operator-reducer: reduce mul+div(shift) (patchset #11 id:200001 of https://codereview.chromium.org/1350223006/ ) Reason for revert: This is also unsound for the reasons outlined in https://codereview.chromium.org/1473073004/ Will help Fedor to implement a solution based on simplified operators. Original issue's description: > binary-operator-reducer: reduce mul+div(shift) > > Reduction Input: > > ChangeInt32ToFloat64=> TruncateFloat64ToInt32 > Float64Mul=> > ChangeInt32ToFloat64=> Float64Div=>TruncateFloat64ToInt32 > > Output: > > => TruncateInt64ToInt32 > Int64Mul > => Int64Shr => TruncateInt64ToInt32 > > Test code: > > function mul(a, b) { > var l = a & 0x3ffffff; > var h = b & 0x3ffffff; > var m = l * h; > > var rl = m & 0x3ffffff; > var rh = (m / 0x4000000) | 0; > > return rl | rh; > } > > mul(1, 2); > var a0 = mul(0x3ffffff, 0x3ffffff); > mul(0x0, 0x0); > %OptimizeFunctionOnNextCall(mul); > var a1 = mul(0x3ffffff, 0x3ffffff); > > print(a0 + ' == ' + a1); > > BUG= > R=mstarzinger@chromium.org > > Committed: https://crrev.com/461e5b49d022335a7fc4e9d172397a4bd48b93d4 > Cr-Commit-Position: refs/heads/master@{#31899} TBR=mstarzinger@chromium.org,danno@chromium.org,titzer@chromium.org,fedor@indutny.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1478923002 Cr-Commit-Position: refs/heads/master@{#32313}
-
bmeurer authored
Revert of [compiler] merge binary-operator-reducer (patchset #2 id:20001 of https://codereview.chromium.org/1473073004/ ) Reason for revert: Unsound use of types in the MachineOperatorReducer. Will work on a sound solution with Fedor. Original issue's description: > [compiler] merge binary-operator-reducer > > Merge BinaryOperatorReducer into the MachineOperatorReducer class. > It does not need `Revisit()` calls, because the newly inserted nodes are > visited anyway, and there are no other methods that need AdvancedReducer > there. > > BUG= > R=titzer@chromium.org > > Committed: https://crrev.com/993ba9d2529a6401b3040b9263f8d06db7dbb4f1 > Cr-Commit-Position: refs/heads/master@{#32298} TBR=titzer@chromium.org,fedor@indutny.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1476763006 Cr-Commit-Position: refs/heads/master@{#32310}
-
- 25 Nov, 2015 1 commit
-
-
fedor authored
Merge BinaryOperatorReducer into the MachineOperatorReducer class. It does not need `Revisit()` calls, because the newly inserted nodes are visited anyway, and there are no other methods that need AdvancedReducer there. BUG= R=titzer@chromium.org Review URL: https://codereview.chromium.org/1473073004 Cr-Commit-Position: refs/heads/master@{#32298}
-
- 18 Nov, 2015 1 commit
-
-
mlippautz authored
...based on the 2-lock algorithm by M. Scott and M. Michael (1992). BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1448283004 Cr-Commit-Position: refs/heads/master@{#32078}
-
- 14 Nov, 2015 1 commit
-
-
mlippautz authored
This change binds each {Cancelable} task to a so-called {CancelableTaskManager}, which is then used to handle concurrent cancelation as well as synchronizing shutdown for already running tasks. Since ownership of tasks is transferred to the platform executing a task (destructor), handling in the manager uses integer ids. Note that this also mitigates (modulo integer size) the ABA problem. All handling of {Cancelable} tasks is now encapsulated into the corresponding manager, which is instantiated for each isolate. R=hpayer@chromium.org BUG=chromium:524425 LOG=N CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg;tryserver.v8:v8_linux_gc_stress_dbg;tryserver.v8:v8_mac_gc_stress_dbg;tryserver.v8:v8_linux64_msan_rel;tryserver.v8:v8_linux64_tsan_rel;tryserver.v8:v8_mac64_asan_rel Review URL: https://codereview.chromium.org/1409993012 Cr-Commit-Position: refs/heads/master@{#31997}
-
- 09 Nov, 2015 1 commit
-
-
fedor authored
Reduction Input: ChangeInt32ToFloat64=> TruncateFloat64ToInt32 Float64Mul=> ChangeInt32ToFloat64=> Float64Div=>TruncateFloat64ToInt32 Output: => TruncateInt64ToInt32 Int64Mul => Int64Shr => TruncateInt64ToInt32 Test code: function mul(a, b) { var l = a & 0x3ffffff; var h = b & 0x3ffffff; var m = l * h; var rl = m & 0x3ffffff; var rh = (m / 0x4000000) | 0; return rl | rh; } mul(1, 2); var a0 = mul(0x3ffffff, 0x3ffffff); mul(0x0, 0x0); %OptimizeFunctionOnNextCall(mul); var a1 = mul(0x3ffffff, 0x3ffffff); print(a0 + ' == ' + a1); BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1350223006 Cr-Commit-Position: refs/heads/master@{#31899}
-
- 22 Oct, 2015 1 commit
-
-
Benedikt Meurer authored
Both the JSTypeFeedbackSpecializer and the JSTypeFeedbackLowering is dead code by now, since the more general JSNativeContextSpecialization deals with the property/global load/store type feedback in a way that also interacts properly with inlining. BUG=v8:4470 LOG=n R=jarin@chromium.org Review URL: https://codereview.chromium.org/1407913003 . Cr-Commit-Position: refs/heads/master@{#31462}
-
- 17 Oct, 2015 1 commit
-
-
jarin authored
Removes a branch that checks for a condition that has been checked on dominators of the branch. This introduces a new reducer that propagates the list of checked conditions (and their boolean values) through the control flow graph. If it encounters a branch checking a condition with a known value, the branch is eliminated. The analysis relies on loops being reducible: if a condition has been checked on all paths to loop entry, then it is checked in the loop (regardless what of the conditions checked inside the loop). The implementation is fairly naive and could be improved: - all the operation on the condition lists could be made allocation-free when revisited. - we could try to use a map structure rather than a linked list (to make lookups faster). - the merging of control flow could be changed to take into account conditions from non-dominating paths (as long as all paths check the condition). Review URL: https://codereview.chromium.org/1376293005 Cr-Commit-Position: refs/heads/master@{#31347}
-
- 08 Oct, 2015 1 commit
-
-
mlippautz authored
See bug report. R=ulan@chromium.org BUG=chromium:538567 LOG=N Review URL: https://codereview.chromium.org/1393293002 Cr-Commit-Position: refs/heads/master@{#31179}
-
- 05 Oct, 2015 1 commit
-
-
machenbach authored
This reverts commit 280a6f8e. Reland of https://codereview.chromium.org/1380593002/ BUG=chromium:535160 LOG=n CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel; Review URL: https://codereview.chromium.org/1390473003 Cr-Commit-Position: refs/heads/master@{#31094}
-
- 02 Oct, 2015 2 commits
-
-
danno authored
Revert of [swarming] Isolate v8 testing. (patchset #8 id:140001 of https://codereview.chromium.org/1380593002/ ) Reason for revert: Prime suspect in breakage of V8 Linux -- no snap Original issue's description: > [swarming] Isolate v8 testing. > > Add gyp support and isolates for default test suites. > Add two default isolates, one (default) for using the > test suite collection we call "default" on the bots. One > (developer_default) for also supporting the way developers > call the driver (i.e. without argument, which includes > the unittests). > > BUG=chromium:535160 > LOG=n > > Committed: https://crrev.com/9bd83f58f29ab0c7c5b71b00bcb1df3a9e641f05 > Cr-Commit-Position: refs/heads/master@{#31081} TBR=tandrii@chromium.org,jochen@chromium.org,maruel@chromium.org,machenbach@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:535160 Review URL: https://codereview.chromium.org/1370993008 Cr-Commit-Position: refs/heads/master@{#31084}
-
machenbach authored
Add gyp support and isolates for default test suites. Add two default isolates, one (default) for using the test suite collection we call "default" on the bots. One (developer_default) for also supporting the way developers call the driver (i.e. without argument, which includes the unittests). BUG=chromium:535160 LOG=n Review URL: https://codereview.chromium.org/1380593002 Cr-Commit-Position: refs/heads/master@{#31081}
-
- 28 Sep, 2015 1 commit
-
-
oth authored
The comparison operators and ToBoolean are implemented by calling into the runtime. There are new runtime methods are prefixed with Interpreter to make use case clear. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1369123002 Cr-Commit-Position: refs/heads/master@{#30983}
-
- 25 Sep, 2015 1 commit
-
-
ulan authored
BUG=chromium:490559 LOG=NO Review URL: https://codereview.chromium.org/1352453004 Cr-Commit-Position: refs/heads/master@{#30944}
-
- 10 Sep, 2015 1 commit
-
-
oth authored
Add skeleton version bytecode-graph-builder.{h,cc} for existing bytecodes. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1291693004 Cr-Commit-Position: refs/heads/master@{#30687}
-