- 17 Jan, 2013 3 commits
-
-
mmassi@chromium.org authored
Revert r13409 ("Make the array bounds check elimination phase optional (and set the foundation for introducing SSI in a simple way).") because of a crash in octane/mandreel. Review URL: https://chromiumcodereview.appspot.com/11962041 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/11377135 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mmassi@chromium.org authored
Make the array bounds check elimination phase optional (and set the foundation for introducing SSI in a simple way). BUG= Review URL: https://chromiumcodereview.appspot.com/11783055 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jan, 2013 1 commit
-
-
svenpanne@chromium.org authored
This reduces the time take for mjsunit/limit-locals from 56.8s to 15.1s in debug mode and from 12.0s to 1.6s in release mode. Note that GrowableBitVector and BitVector should really be merged, and probably have their allocation strategy parmeterized. The current state of affairs involving tons of checks and delegation is extremely ugly, and it is far from clear if all that special casing is a clear win. STL FTW! :-P Review URL: https://codereview.chromium.org/11775016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Dec, 2012 1 commit
-
-
danno@chromium.org authored
R=jkummerow@chromium.org Review URL: https://chromiumcodereview.appspot.com/11528003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Dec, 2012 1 commit
-
-
danno@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/11498006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Dec, 2012 1 commit
-
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Committed: https://code.google.com/p/v8/source/detail?r=13105 Committed: https://code.google.com/p/v8/source/detail?r=13117 Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Dec, 2012 2 commits
-
-
danno@chromium.org authored
TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/11415261 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Committed: https://code.google.com/p/v8/source/detail?r=13105 Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Nov, 2012 2 commits
-
-
danno@chromium.org authored
TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/11414262 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Nov, 2012 1 commit
-
-
yangguo@chromium.org authored
Timing happens in a scope. Since crankshaft has been chopped up into three methods, this approach is wrong. BUG= Review URL: https://chromiumcodereview.appspot.com/11411065 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Nov, 2012 1 commit
-
-
jkummerow@chromium.org authored
Lattice-based representation inference, powered by left/right specific type feedback for BinaryOps and comparisons Review URL: https://chromiumcodereview.appspot.com/10837165 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Nov, 2012 2 commits
-
-
ulan@chromium.org authored
of the form ((x >>> i) | (x << (32 - i))). This CL is based on https://chromiumcodereview.appspot.com/10984057/ by Jay Conrod <dconrod@codeaurora.org>. R=danno@chromium.org,mstarzinger@chromium.org,dconrod@codeaurora.org Review URL: https://chromiumcodereview.appspot.com/11033005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This is a refactoring-only CL which simplifies the way we emit combinations of Smi+map checks. Review URL: https://codereview.chromium.org/11343011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Oct, 2012 1 commit
-
-
svenpanne@chromium.org authored
We iteratively remove all dead Hydrogen instruction until we reach a fixed point. We consider an instruction dead if it is unused, has no observable side effects and is deletable. The last part of the condition is currently not very nice: We basically have to whitelist "safe" instructions, because we are missing more detailed dependencies and/or more detailed tracking of side effects. We disable dead code elimination for now in our test runners, because we have tons of poorly written tests which wouldn't test anymore what they are supposed to test with this phase enabled. To get test coverage for dead code elimination itself, we should enable it on a few build bots. This is not really a perfect state, but the best we can do for now. This patch includes a few const-correctness fixes, most of them were necessary for this CL. Review URL: https://codereview.chromium.org/11088027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Sep, 2012 1 commit
-
-
mstarzinger@chromium.org authored
This fixes materialization of arguments objects for strict mode functions during deoptimization. We materialize arguments from the stack area where optimized code pushes the arguments when entering the inlined environment. For adapted invocations we use the arguments adaptor frame for materialization. R=svenpanne@chromium.org BUG=v8:2261 TEST=mjsunit/regress/regress-2261,mjsunit/compiler/inline-arguments Review URL: https://chromiumcodereview.appspot.com/10908194 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Sep, 2012 1 commit
-
-
svenpanne@chromium.org authored
It is necessary to explicitly handle the internal frame lying between the caller of the getter and the getter itself in the deoptimizer: When the getter is inlined, leaving the internal frame restores the correct context. BUG=http://crbug/134609 TEST=mjsunit/regress/regress-crbug-134609 Review URL: https://chromiumcodereview.appspot.com/10910110 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Aug, 2012 1 commit
-
-
danno@chromium.org authored
BUG=v8:2250 R=vegorov@chromium.org TEST=tests/mjsunit/regress/regress-2250.js Review URL: https://chromiumcodereview.appspot.com/10867033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Aug, 2012 1 commit
-
-
vegorov@chromium.org authored
Safe operations are those that either do not observe unsignedness or have special support for uint32 values: - all binary bitwise operations: they perform ToInt32 on inputs; - >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on right hand side; - >>> shift: it performs ToUint32 on both inputs; - stores to integer external arrays (not pixel, float or double ones): these stores are "bitwise"; - HChange: special support added for conversions of uint32 values to double and tagged values; - HSimulate: special support added for deoptimization with uint32 values in registers and stack slots; - HPhi: phis that have only safe uses and only uint32 operands are uint32 themselves. BUG=v8:2097 TEST=test/mjsunit/compiler/uint32.js Review URL: https://chromiumcodereview.appspot.com/10778029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Aug, 2012 1 commit
-
-
svenpanne@chromium.org authored
Seeing monomorphic type feedback plus an AccessorPair does not necessarily imply that the corresponding getter/setter is really there, so we have to check for this explictly. TEST=mjsunit/object-define-property Review URL: https://chromiumcodereview.appspot.com/10825384 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Aug, 2012 1 commit
-
-
svenpanne@chromium.org authored
Currently only simple setter calls are handled (i.e. no calls in count operations or compound assignments), and deoptimization in the setter is not handled at all. Because of the latter, we temporarily hide this feature behind the --inline-accessors flag, just like inlining getters. We now use an enum everywhere we depend on the handling of a return value, passing around several boolean would be more confusing. Made VisitReturnStatement and the final parts of TryInline more similar, so matching them visually is a bit easier now. Simplified the signature of AddLeaveInlined, the target of the HGoto can simply be retrieved from the function state. Review URL: https://chromiumcodereview.appspot.com/10836133 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Aug, 2012 1 commit
-
-
svenpanne@chromium.org authored
When inlining is being done, it is crucial to use the correct type feedback oracle with a given type feedback ID. To ensure this, TestContext now carries an oracle which is associated with the context's condition, and these are both used together in TestContext::BuildBranch. Note that in VisitReturnStatement and TryInline we are currently lucky that the oracles don't go out of sync in an observable way, but this will change when we inline setters. Therefore, there is no separate test case... Review URL: https://chromiumcodereview.appspot.com/10834247 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Aug, 2012 1 commit
-
-
svenpanne@chromium.org authored
This is a refactoring-only CL which improves the typing of IDs associated with AST nodes. The interesting parts are in utils.h and ast.h, the rest of the CL basically follows mechanically. Review URL: https://chromiumcodereview.appspot.com/10831172 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jul, 2012 1 commit
-
-
svenpanne@chromium.org authored
Currently only simple getter calls are handled (i.e. no calls in count operations or compound assignments), and deoptimization in the getter is not handled at all. Because of the latter, we temporarily hide this feature behind a new flag --inline-accessors, which is false by default. Review URL: https://chromiumcodereview.appspot.com/10828066 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jul, 2012 2 commits
-
-
svenpanne@chromium.org authored
This is a refactoring-only CL and the third one in a series for enabling inlining of accessors. The goal of this CL is to move the builders for accessors to the places where we might be able to inline them later, i.e. the VisitFoo and HandleBar member functions of HGraphBuilder. Extracted duplicate code into LookupAccessorPair. Review URL: https://chromiumcodereview.appspot.com/10831047 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This is a refactoring-only CL and the second one in a series for enabling inlining of accessors. It makes BuildLoadNamed and BuildStoreNamed a bit more uniform and makes it clear that they both handle monomorphic accesses only. Review URL: https://chromiumcodereview.appspot.com/10820028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Jul, 2012 1 commit
-
-
svenpanne@chromium.org authored
This is a refactoring-only CL and the first one in a series for enabling inlining of accessors. The naming and argument order has been unified a bit, and some tests have been pushed to the caller in order to get a simpler signature. Note that the latter temporarily introduces some code redundancy, but this will be cleaned up in one of the next CLs. Review URL: https://chromiumcodereview.appspot.com/10826028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Jul, 2012 1 commit
-
-
danno@chromium.org authored
BUG=chromium:137768 TEST=test/mjsunit/regress/regress-137768.js Review URL: https://chromiumcodereview.appspot.com/10802038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jul, 2012 3 commits
-
-
svenpanne@chromium.org authored
We don't actually need the arguments of the call, just their count. This change is needed because in an accessor call there is no explicit argument list. Review URL: https://chromiumcodereview.appspot.com/10795029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sanjoy@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10803031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sanjoy@chromium.org authored
BUG=v8:2242 TEST= Review URL: https://chromiumcodereview.appspot.com/10797026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jul, 2012 2 commits
-
-
sanjoy@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10784040 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sanjoy@chromium.org authored
Introduce an OptimizingCompiler class, responsible for maintaining the state needed to run Crankshaft. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10700188 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Jul, 2012 1 commit
-
-
svenpanne@chromium.org authored
Additionally, this enables the use of a CHECK_ALIVE macro instead of copy-n-paste code at one place. This CL is part of a series of several yak-shaving CLs to prepare the inlining of JavaScript accessors. Review URL: https://chromiumcodereview.appspot.com/10783017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jul, 2012 1 commit
-
-
svenpanne@chromium.org authored
Refactored ComputeLoadStoreField a bit on the way to clarify a bit what it actually does. Review URL: https://chromiumcodereview.appspot.com/10692187 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jul, 2012 2 commits
-
-
sanjoy@chromium.org authored
Rename LChunkBase to LChunk, LChunk to LPlatformChunk and remove some unneeded explicit constructor attributes. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10701157 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sanjoy@chromium.org authored
Crankshaft now runs by calling CreateGraph on the HGraphBuilder, then calling Optimize and Codegen on the HGraph. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10700115 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jul, 2012 2 commits
-
-
sanjoy@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10544196 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sanjoy@chromium.org authored
Divide the LChunk class into an arch-independent LChunkBase and an arch-dependent LChunk which inherits from LChunkBase. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10701141 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-