- 13 Dec, 2016 1 commit
-
-
tebbi authored
R=epertoso@chromium.org,mstarzinger@chromium.org BUG=671324 Review-Url: https://codereview.chromium.org/2571793002 Cr-Commit-Position: refs/heads/master@{#41679}
-
- 15 Nov, 2016 1 commit
-
-
tebbi authored
R=bmeurer@chromium.org BUG=v8:5634 Review-Url: https://codereview.chromium.org/2500143003 Cr-Commit-Position: refs/heads/master@{#40995}
-
- 27 Sep, 2016 1 commit
-
-
mstarzinger authored
This makes sure we only replace load operations for fields on virtual objects. Even though data flow information for non-virtual (escaping) allocations is available, it might be inaccurate in certain situations where object state hasn't been cleared. R=jarin@chromium.org TEST=mjsunit/compiler/regress-escape-analysis-indirect Review-Url: https://codereview.chromium.org/2369953002 Cr-Commit-Position: refs/heads/master@{#39776}
-
- 23 Sep, 2016 1 commit
-
-
Michael Starzinger authored
This makes sure the {EscapeAnalysisReducer} inserts proper {TypeGuard} nodes if the replacement node is not a subtype of the original node. This happens predominantly for code that has been made unreachable by type checks. R=jarin@chromium.org TEST=mjsunit/regress/regress-crbug-640497 BUG=chromium:640497 Review URL: https://codereview.chromium.org/2363573003 . Cr-Commit-Position: refs/heads/master@{#39656}
-
- 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}
-
- 09 Aug, 2016 1 commit
-
-
bgeron authored
R=danno,jarin BUG= Review-Url: https://codereview.chromium.org/2226293002 Cr-Commit-Position: refs/heads/master@{#38502}
-
- 03 Aug, 2016 1 commit
-
-
mstarzinger authored
This completely removes the ability from nodes to point directly to the frame state representing their eager bailout point. All nodes now either have zero or one frame state inputs. These frame states can by now be found via checkpoints in the graph. R=bmeurer@chromium.org BUG=v8:5021 Review-Url: https://codereview.chromium.org/2020323004 Cr-Commit-Position: refs/heads/master@{#38282}
-
- 17 May, 2016 2 commits
-
-
mstarzinger authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1984203002 Cr-Commit-Position: refs/heads/master@{#36285}
-
mstarzinger authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1973323002 Cr-Commit-Position: refs/heads/master@{#36274}
-
- 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}
-
- 25 Jan, 2016 2 commits
-
-
sigurds authored
* Add caching to handling of dangling loads * Add two unittests for load elimination on escaped objects BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1619103004 Cr-Commit-Position: refs/heads/master@{#33498}
-
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}
-
- 22 Jan, 2016 1 commit
-
-
sigurds authored
R=jarin@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1608073003 Cr-Commit-Position: refs/heads/master@{#33468}
-
- 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}
-
- 14 Jan, 2016 1 commit
-
-
sigurds authored
Apparently, some StateValues have other StateValues as input. This CL makes escape analysis transformation phase aware of it. R=mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1581183004 Cr-Commit-Position: refs/heads/master@{#33285}
-
- 13 Jan, 2016 1 commit
-
-
sigurds authored
The escape analysis transformation phase visits allocation nodes twice under some circumstances, thus reporting wrong counter values. This CL ensures counter values are correct. R=mstarzinger@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1577273002 Cr-Commit-Position: refs/heads/master@{#33270}
-
- 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
R=bmeurer@chromium.org BUG=v8:4586 LOG=n Review URL: https://codereview.chromium.org/1559003002 Cr-Commit-Position: refs/heads/master@{#33107}
-
- 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}
-