- 31 Jan, 2014 2 commits
-
-
hpayer@chromium.org authored
This reverts commit f70687c1e5ef15254887e0619939e25a834e936e. BUG= R=machenbach@chromium.org Review URL: https://codereview.chromium.org/148493006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
TBR=dcarney@chromium.org BUG= Review URL: https://codereview.chromium.org/150983002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jan, 2014 3 commits
-
-
machenbach@chromium.org authored
BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/148963010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
This also changes load computation to use HeapTypes rather than Maps. TODO: move conversion between maps and heaptypes earlier in the process, already in the oracle. BUG= R=dcarney@chromium.org Review URL: https://codereview.chromium.org/147763006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
version is passing all the existing test + a bunch of new tests (packaged in the change list, too). The patch extends the SlotRef object to describe captured and duplicated objects. Since the SlotRefs are not independent of each other anymore, there is a new SlotRefValueBuilder class that stores the SlotRefs and later materializes the objects from the SlotRefs. Note that unlike the previous implementation of SlotRefs, we now build the SlotRef entries for the entire frame, not just the particular function. This is because duplicate objects might refer to previous captured objects (that might live inside other inlined function's part of the frame). We also need to store the materialized objects between other potential invocations of the same arguments object so that we materialize each captured object at most once. The materialized objects of frames live in the new MaterielizedObjectStore object (contained in Isolate), indexed by the frame's FP address. Each argument materialization (and deoptimization) tries to lookup its captured objects in the store before building new ones. Deoptimization also removes the materialized objects from the store. We also schedule a lazy deopt to be sure that we always get rid of the materialized objects and that the optmized function adopts the materialized objects (instead of happily computing with its captured representations). Concerns: - Is the FP address the right key for a frame? (Note that deoptimizer's representation of frame is different from the argument object materializer's one - it is not easy to find common ground.) - Performance is suboptimal in several places, but a quick local run of benchmarks does not seem to show a perf hit. Examples of possible improvements: smarter generation of SlotRefs (build other functions' SlotRefs only for captured objects and only if necessary), smarter lookup of stored materialized objects. - Ideally, we would like to share the code for argument materialization with deoptimizer's materializer. However, the supporting data structures (mainly the frame descriptor) are quite different in each case, so it looks more like a separate project. Thanks for any feedback. R=danno@chromium.org, mstarzinger@chromium.org LOG=N BUG= Committed: https://code.google.com/p/v8/source/detail?r=18918 Review URL: https://codereview.chromium.org/103243005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Jan, 2014 4 commits
-
-
machenbach@chromium.org authored
BUG= TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/149763002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/130803009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
mostly to make sure that it is going in the right direction. The current version is passing all the existing test + a bunch of new tests (packaged in the change list, too). The patch extends the SlotRef object to describe captured and duplicated objects. Since the SlotRefs are not independent of each other anymore, there is a new SlotRefValueBuilder class that stores the SlotRefs and later materializes the objects from the SlotRefs. Note that unlike the previous implementation of SlotRefs, we now build the SlotRef entries for the entire frame, not just the particular function. This is because duplicate objects might refer to previous captured objects (that might live inside other inlined function's part of the frame). We also need to store the materialized objects between other potential invocations of the same arguments object so that we materialize each captured object at most once. The materialized objects of frames live in the new MaterielizedObjectStore object (contained in Isolate), indexed by the frame's FP address. Each argument materialization (and deoptimization) tries to lookup its captured objects in the store before building new ones. Deoptimization also removes the materialized objects from the store. We also schedule a lazy deopt to be sure that we always get rid of the materialized objects and that the optmized function adopts the materialized objects (instead of happily computing with its captured representations). Concerns: - Is there a simpler/more correct way to store the already-materialized objects? (At the moment there is a custom root reference to JSArray containing frames' FixedArrays with their captured objects.) - Is the FP address the right key for a frame? (Note that deoptimizer's representation of frame is different from the argument object materializer's one - it is not easy to find common ground.) - Performance is suboptimal in several places, but a quick local run of benchmarks does not seem to show a perf hit. Examples of possible improvements: smarter generation of SlotRefs (build other functions' SlotRefs only for captured objects and only if necessary), smarter lookup of stored materialized objects. - Ideally, we would like to share the code for argument materialization with deoptimizer's materializer. However, the supporting data structures (mainly the frame descriptor) are quite different in each case, so it looks more like a separate project. Thanks for any feedback. R=mstarzinger@chromium.org, danno@chromium.org LOG=N BUG= Review URL: https://codereview.chromium.org/103243005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
BUG=v8:3069 LOG=Y R=rossberg@chromium.org Review URL: https://codereview.chromium.org/147143003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jan, 2014 3 commits
-
-
ishell@chromium.org authored
R=titzer@chromium.org, verwaest@chromium.org Review URL: https://codereview.chromium.org/143413019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mvstanton@chromium.org authored
Throwing under FLAG_debug_code confuses the rest of our infrastructure which expects a safe point at the site of call into the runtime for throw. We were doing that to make a clusterfuzz test happy, but the better solution is to assert/abort under debug_code, and prevent clusterfuzz from fuzzing on internal APIs that crash on incorrect values. We'll need to alter the fuzzer to turn off fuzzing for: string-natives.js lithium/SeqStringSetChar.js regress/regress-seqstrsetchar-ex3.js regress/regress-seqstrsetchar-ex1.js regress/regress-crbug-320922.js So as to prevent the fuzzer from running %_OneByteSeqStringSetChar() and %_TwoByteSeqStringSetChar(). BUG= R=hpayer@chromium.org, machenbach@chromium.org Review URL: https://codereview.chromium.org/139903005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ishell@chromium.org authored
Contributed by Mathias Bynens <mathiasb@opera.com>. TEST=mjsunit/harmony BUG=v8:3070 LOG=Y R=arv@chromium.org, ishell@chromium.org Review URL: https://codereview.chromium.org/120683002 Patch from Mathias Bynens <mathiasb@opera.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jan, 2014 3 commits
-
-
machenbach@chromium.org authored
BUG= TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/148183007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/131503008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/146833012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jan, 2014 4 commits
-
-
dslomov@chromium.org authored
Replaced symbolic names with correct JS name (byte -> int8, unsigned int -> uint32 etc). Using macros to scrap the boilerplate BUG= R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/145133013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/138443012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
Many skipped test cases already run very fast. Removing the corresponding expectations. BUG= R=jkummerow@chromium.org, mvstanton@chromium.org Review URL: https://codereview.chromium.org/138503008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
This reverts: r18749 "Reland (and fix) "Add hydrogen support for ArrayPop, and remove the handwritten call stubs."", r18790 "Remove ArrayPush from the custom call generators, and instead call directly to the handler in crankshaft.", and r18798 "MIPS: Remove ArrayPush from the custom call generators, and instead call directly to the handler in crankshaft." For causing crashes on Canary. BUG=chromium:337686 LOG=N R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/146003006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Jan, 2014 5 commits
-
-
machenbach@chromium.org authored
BUG= R=mstarzinger@chromium.org TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/145803002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Remove ArrayPush from the custom call generators, and instead call directly to the handler in crankshaft. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/137693003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
BUG= R=mstarzinger@chromium.org, mvstanton@chromium.org Review URL: https://codereview.chromium.org/141653016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/145493004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
BUG= TBR=mvstanton@chromium.org Review URL: https://codereview.chromium.org/145593002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jan, 2014 3 commits
-
-
verwaest@chromium.org authored
BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/144913003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
This reverts commit bdc89ae76c15f3ef2626f8849744500248aec3ba. This is a revert of the revert with test/webkit updated as needed. Original CL Description: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof This just exposes the internal %SetPrototype and adds all the required type checks as specified. BUG=v8:2675 LOG=Y R=dslomov@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/144193005 Patch from Erik Arvidsson <arv@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
We removed an HDiv by hand which was still used by an HChange. The solution is letting dead code removal do the cleanup. Removed a fragile "optimization" (looking through an HChange), too, this obviously never triggered and is hard to get right given all our global invariants and state/type/... changes. The repro is a bit tricky, because you need inlining to make our representations and types disagree in this case. LOG=y BUG=334708 R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/143903016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jan, 2014 2 commits
-
-
machenbach@chromium.org authored
Also move the GC stress configuration from the buildbot to the test runner. BUG= R=jkummerow@chromium.org, mvstanton@chromium.org Review URL: https://codereview.chromium.org/141653008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
The test is blocking the v8 lkgr. It will be unmarked again after there is infrastructure to disable it on GC stress only. BUG= TBR=mvstanton@chromium.org Review URL: https://codereview.chromium.org/143463004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jan, 2014 5 commits
-
-
machenbach@chromium.org authored
The tests are blocking the v8 lkgr. They will be unmarked again after there is infrastructure to disable them on GC stress only. TBR=mvstanton@chromium.org BUG= Review URL: https://codereview.chromium.org/139343008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/143523002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/143213003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
This reverts commit r18685 for breaking WebKit tests. TBR=arv@chromium.org git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof This just exposes the internal %SetPrototype and adds all the required type checks as specified. BUG=v8:2675 LOG=Y R=dslomov@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/141913002 Patch from Erik Arvidsson <arv@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2014 2 commits
-
-
verwaest@chromium.org authored
Once Call ICs are replaced by LoadIC + CallFunctionStub, we'll need a new way of tracking this information. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/141073006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mvstanton@chromium.org authored
Recent changes in IC logic meant that CallStubs no longer use the Contextual bit. IsUndeclaredGlobal() needed to adjust for that. In fact, now the CL has morphed to remove the notion of storing contextual state in the IC at all, it just becomes some extra ic state of the load ic. This took some adjustment in harmony code to use the global receiver for certain stores. Now it's clearer that only LoadICs actually record any information about contextual or not. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/140943002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jan, 2014 4 commits
-
-
verwaest@chromium.org authored
BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/137083002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
From ES6 rev20 draft, closed generator returns completed object (the value is `undefined` and done is `true`). Since a error thrown in generator is propagated to the caller without setting status of a thrown generator to "completed", once a generator is suspended by a error, status becomes "executing" forever. This is filed as v8:3096 LOG=N BUG=v8:3097 R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/136003003 Patch from Yusuke Suzuki <yusukesuzuki@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
R=verwaest@chromium.org Review URL: https://codereview.chromium.org/138063003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
because it must not cause lazy deopts because it is called from deferred code that cannot handle lazy deopts. Hat tip to Ben for doing most of the debugging work, and to Toon for writing the regression test. BUG=chromium:315252 LOG=Y R=verwaest@chromium.org Review URL: https://codereview.chromium.org/131243003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-