mstarzinger@chromium.org
100ab91013
Implement fixpoint iteration for escape analysis.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/23533003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-16 09:16:56 +00:00
titzer@chromium.org
8aafabc24c
Use UniqueSet<T> and Unique<T> in HCheckMaps and HCheckValue.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23604062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 09:07:27 +00:00
mstarzinger@chromium.org
ba48f3bd8c
Consider out-of-bounds accesses as escaping uses.
...
R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis
Review URL: https://codereview.chromium.org/23892007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-09 09:53:58 +00:00
mstarzinger@chromium.org
037ef1132f
Temporarily skip escape analysis when compiling for OSR.
...
R=jkummerow@chromium.org
TEST=mjsunit/compiler/escape-analysis --stress-compaction
Review URL: https://codereview.chromium.org/23480028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 10:58:07 +00:00
mstarzinger@chromium.org
86e82dbbb6
Fix escape analysis for redefining operators.
...
This recognizes escape paths that flow through informative definitions
as an escaping use. This only applies to HCheckMaps so far.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/23514009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 11:55:31 +00:00
mstarzinger@chromium.org
57ac971a78
Implement proper map checks of captured objects.
...
R=verwaest@chromium.org
TEST=mjsunit/compiler/escape-analysis
Review URL: https://codereview.chromium.org/23697002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 14:16:57 +00:00
mstarzinger@chromium.org
3b616a74ea
Fix lost store side effects with escape analysis.
...
This preserves side effects from stores in HCapturedObject markers so
that simulates following these markers are not merged away.
R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis --deopt-every-n-times [3,6,9]
Review URL: https://codereview.chromium.org/23554003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 12:36:32 +00:00
mstarzinger@chromium.org
e146b6e148
Fix replaying of captured objects during chunk building.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/22819011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-26 16:43:19 +00:00
verwaest@chromium.org
3837ef57d0
Fix dependency of loading the heap-number for a double-field store to be the mapcheck.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22926027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 16:31:31 +00:00
verwaest@chromium.org
6337281204
Pass checked values to HLoadNamedField, removing the need for extra type-check field.
...
R=titzer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22831003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 14:49:56 +00:00
verwaest@chromium.org
641fda8d05
Break typecheck dependency in escape analysis.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22803002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 09:26:18 +00:00
mstarzinger@chromium.org
cc3b7a007f
Allow HPhis to have an invalid merge index.
...
All phis that do not represent local variables or values on the operand
stack are not allowed to carry a merge index, as the replay of the
HEnvironment during LChunkBuilder time might get out of sync due to
colliding indexes.
R=danno@chromium.org
BUG=v8:2815
Review URL: https://codereview.chromium.org/22494003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 15:18:23 +00:00
mstarzinger@chromium.org
63defee477
First implementation of allocation elimination in Hydrogen.
...
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.
This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.
R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis
Review URL: https://codereview.chromium.org/21055011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 11:24:14 +00:00
mstarzinger@chromium.org
35052bc2ea
Reland deprecation of HAllocateObject in favor of HAllocate.
...
This essentially relands r14930 and r14935 with adaptions to the current
code base. It models the instantiation of an implicit receiver for
CallNew nodes in hydrogen using HAllocate together with generic stores
instead of one specialized HAllocateObject instruction, hence creating a
single choking point for inlined allocation in optimized code.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/19207002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 15:12:16 +00:00
bmeurer@chromium.org
aadcf381db
Turn escape analysis into a proper HPhase.
...
R=danno@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18476004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 08:29:33 +00:00
mstarzinger@chromium.org
8b976da60e
First simplistic implementation of escape analysis.
...
R=jkummerow@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/17914002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 16:09:54 +00:00