- 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}
-
- 22 Sep, 2016 1 commit
-
-
mstarzinger authored
This makes sure cycles in the object states graph are detected early by escape analysis instead of late in the scheduler. This is mainly done for improved debuggability. R=bmeurer@chromium.org BUG=chromium:613923 Review-Url: https://codereview.chromium.org/2354263002 Cr-Commit-Position: refs/heads/master@{#39614}
-
- 23 May, 2016 1 commit
-
-
mstarzinger authored
This makes escape analysis skip analyzing the code entry field within JSFunction objects. Said field is an untagged pointer field and hence cannot be tracked by an ObjectState node. R=jarin@chromium.org TEST=mjsunit/regress/regress-crbug-613494 BUG=chromium:613494 Review-Url: https://codereview.chromium.org/1997353002 Cr-Commit-Position: refs/heads/master@{#36436}
-
- 20 May, 2016 1 commit
-
-
mstarzinger authored
This unifies the calculation of virtual offsets within the escape analysis pass to go through common helpers. It also switches to safer accessors for getting FieldAccess and ElementAccess parameters. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2000733002 Cr-Commit-Position: refs/heads/master@{#36423}
-
- 18 May, 2016 2 commits
-
-
mstarzinger authored
This is a pure refactoring that removes unnecessary wrapper methods from the EscapeAnalysis class. This completely removes the notion of "Alias" from the interface. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1989243002 Cr-Commit-Position: refs/heads/master@{#36325}
-
mstarzinger authored
This is pure refactoring that moves many internal details of the escape analysis from the header into the compilation unit. The goal of this is to simplify the interface for readability. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1991723003 Cr-Commit-Position: refs/heads/master@{#36322}
-
- 04 Feb, 2016 1 commit
-
-
sigurds authored
This is also a refactoring of the merge function in escape analysis. BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1654163003 Cr-Commit-Position: refs/heads/master@{#33728}
-
- 01 Feb, 2016 1 commit
-
-
sigurds authored
BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1659503002 Cr-Commit-Position: refs/heads/master@{#33648}
-
- 27 Jan, 2016 1 commit
-
-
sigurds authored
BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1631333002 Cr-Commit-Position: refs/heads/master@{#33542}
-
- 25 Jan, 2016 1 commit
-
-
sigurds authored
This CL reduces the memory overhead of escape analysis by introducing a "copy on demand" strategy for virtual states and virtual objects. BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1606613002 Cr-Commit-Position: refs/heads/master@{#33491}
-
- 20 Jan, 2016 1 commit
-
-
sigurds authored
* Treat Select nodes as escaping * Correctly void virtual field information after a store to a non-const index * Add a shortcut if all allocates escape * Add a shortcut if no allocates are discovered * Only reduce FrameState/StateValues nodes if they have virtual allocates as input (transitively) * Fix bug in FrameState/StateValues duplication * Add check to verifier: First 3 inputs of FrameState must be StateValues R=mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1583213003 Cr-Commit-Position: refs/heads/master@{#33406}
-
- 13 Jan, 2016 1 commit
-
-
sigurds authored
This bug improves performance of escape analysis. * A allocation discovery phase (EscapeAnalysis::AssignAliases) ensures compact representation of virtual state * Node revisiting in EscapeStatusAnalysis has been improved * Escape analysis no longer requires a trimmed graph BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1559123003 Cr-Commit-Position: refs/heads/master@{#33267}
-
- 05 Jan, 2016 2 commits
-
-
sigurds authored
Deopt support is added on two levels. On the IR level, a new ObjectState node is added, which represenents an object to be materialized. ObjectState nodes appear as inputs of FrameState and StateValues nodes. On the instruction select/code-generation level, the FrameStateDescriptor class handles the nesting introduced by ObjectState, and ensures that deopt code with CAPTURED_OBJECT/DUPLICATED_OBJECT entries are generated similarly to what crankshaft's escape analysis does. Two unittests test correctness of the IR level implementation. Correctness for instruction selection / code generation is tested by mjsunit tests. R=jarin@chromium.org,mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1485183002 Cr-Commit-Position: refs/heads/master@{#33115}
-
sigurds authored
This also fixes a related bug in phi handling. R=bmeurer@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1554073003 Cr-Commit-Position: refs/heads/master@{#33106}
-
- 17 Dec, 2015 1 commit
-
-
sigurds authored
BUG=566253 LOG=n Review URL: https://codereview.chromium.org/1530143002 Cr-Commit-Position: refs/heads/master@{#32942}
-
- 14 Dec, 2015 2 commits
-
-
sigurds authored
Move replacements out of virtual object. Replacements are global to the graph and are not dependent on the virtual state (after they are discovered). R=mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1527533002 Cr-Commit-Position: refs/heads/master@{#32838}
-
sigurds authored
Bugfixes and improvements in escape analysis include: * Handling of ObjectIsSmi (non-escaping) * Handling of nested phi replacements * Handling of phis with arity > 2 * Resilience against effectful nodes dangling from start * Allocations escape now, if non-const load/store is performed * Fixed a bug where non-allocated objects where tracked * Allow fixed double arrays to be tracked R=mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1510973006 Cr-Commit-Position: refs/heads/master@{#32833}
-
- 07 Dec, 2015 1 commit
-
-
sigurds authored
This patch improves escape analysis and fixes bugs triggered by clusterfuzz. Impovements include: * Handling of LoadElement/StoreElement if index is a constant * Handling of JSStoreProperty: invalidate all information, as the store could have altered any field. * Treat phis that use an allocation as escaping * Improve resolution of replacements R=mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1499143002 Cr-Commit-Position: refs/heads/master@{#32656}
-
- 02 Dec, 2015 2 commits
-
-
sigurds authored
R=mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1491903002 Cr-Commit-Position: refs/heads/master@{#32523}
-
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}
-