- 16 Feb, 2012 1 commit
-
-
mstarzinger@chromium.org authored
This extends the current support for nested object literals we already have in Crankshaft, to also support nested array literals and mixed nested literals containing arrays and objects. All three types are generated by the unified HFastLiteral instruction. All previous upper bounds on nested literal graphs remain unchanged, keeping the size of generated code in check. The main intention is to boost performance of two-dimensional array literals containing constant elements (aka. matrices). R=danno@chromium.org TEST=mjsunit/compiler/literals-optimized Review URL: https://chromiumcodereview.appspot.com/9403018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Feb, 2012 2 commits
-
-
fschneider@chromium.org authored
This change enables optimization of top-level and eval-code. For this to work, it adds support for declaring global variables in optimized code. At the same time it disables the eager generation of deoptimization support data in the full code generator (originally introduced in r10040). This speeds up initial compilation and saves memory for functions that won't be optimized. It requires recompiling the function with deoptimization support when we decide to optimize it. Review URL: https://chromiumcodereview.appspot.com/9187005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=fschneider@chromium.org BUG=v8:1322 TEST=mjsunit/compiler/inline-literals Review URL: https://chromiumcodereview.appspot.com/9388007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Feb, 2012 1 commit
-
-
fschneider@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/9358019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 Jan, 2012 1 commit
-
-
danno@chromium.org authored
BUG=http://code.google.com/p/v8/issues/detail?id=1923 TEST=none Review URL: https://chromiumcodereview.appspot.com/9264039 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jan, 2012 3 commits
-
-
yangguo@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/9223011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9207006 Patch from Martyn Capewell <m.m.capewell@googlemail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
This caches call targets of constructor calls by associating one element caches with call sites. The type feedback oracle can use the recorded valued to gather type information for monomorphic constructor call sites. R=kmillikin@chromium.org,vegorov@chromium.org Review URL: https://chromiumcodereview.appspot.com/8932004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jan, 2012 1 commit
-
-
vegorov@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/9265004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Jan, 2012 1 commit
-
-
svenpanne@chromium.org authored
Yak shaving for map sharing with accessor properties contd.: When CALLBACKS can have map transitions, simply looking at the property type is not sufficient anymore to decide if a property is there or not. One has to look at the actual contents of the descriptor entry then, but this breaks down sometimes when the lookup is being done with a NULL holder. Luckily enough, we can oftren replace IsProperty by the simpler IsFound, because we inspect the type immediately afterwards, anyway. Review URL: https://chromiumcodereview.appspot.com/9280007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2012 1 commit
-
-
vegorov@chromium.org authored
Allow call-known-global and call-constant-function to be used for call-sites with mismatched number of arguments. Adjust InvokeFunction to avoid generating dead code when number when arity mismatch is detected in compile time. R=fschneider@google.com Review URL: https://chromiumcodereview.appspot.com/9178017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Jan, 2012 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/9231009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jan, 2012 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/9139051 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jan, 2012 4 commits
-
-
yangguo@chromium.org authored
BUG=v8:1325 TEST= Review URL: http://codereview.chromium.org/9147034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
R=jkummerow@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/9167011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
The stub was directly patching caller's code without issuing write barrier which violated incremental marking invariants. R=mstarzinger@chromium.org BUG=http://crbug.com/109448 TEST=cctest/test-heap/InstanceOfStubWriteBarrier Review URL: http://codereview.chromium.org/9158015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
The input register does not need to be made writable. We already allocate enough temp registers and the input register will always be preserved. Review URL: http://codereview.chromium.org/9166007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Jan, 2012 1 commit
-
-
danno@chromium.org authored
Loosen the requirement for Map equivalency on several map checks, including checks up the prototype chain, that are not sensitive to ElementsKinds. These selected map checks should also match against FAST_DOUBLE_ELEMENT and FAST_ELEMENT transitions of the original map. This specifically helps all variants of transitioned JSArrays to still efficiently call builtins like push, pop and sort. BUG=none TEST=none Committed: http://code.google.com/p/v8/source/detail?r=10331 Review URL: http://codereview.chromium.org/9015020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Jan, 2012 2 commits
-
-
danno@chromium.org authored
Due to perf regressions TBR=fschneider@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/8983027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Loosen the requirement for Map equivalency on several map checks, including checks up the prototype chain, that are not sensitive to ElementsKinds. These selected map checks should also match against FAST_DOUBLE_ELEMENT and FAST_ELEMENT transitions of the original map. This specifically helps all variants of transitioned JSArrays to still efficiently call builtins like push, pop and sort. BUG=none TEST=none Review URL: http://codereview.chromium.org/9015020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Dec, 2011 1 commit
-
-
vegorov@chromium.org authored
R=danno@chromium.org BUG=http://crbug.com/108296 TEST=test/mjsunit/regress/regress-108296.js Review URL: http://codereview.chromium.org/8960004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Dec, 2011 1 commit
-
-
fschneider@chromium.org authored
This was a left-over from a time when bounds-check was performed as part of this instruction. I also refactored and improved the code for smi-only arrays. R=vegorov@chromium.org Review URL: http://codereview.chromium.org/9023006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Dec, 2011 1 commit
-
-
kmillikin@chromium.org authored
Tell the register allocator the value is not overwritten. Never use temporary registers on ia32, avoid them on x64 and ARM. Restore the original copyright date on assembler.cc. R=fschneider@chromium.org BUG=v8:1870 TEST= Review URL: http://codereview.chromium.org/8965038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Dec, 2011 1 commit
-
-
fschneider@chromium.org authored
If constant variable is allocated in CONTEXT Patch by Fedor Indutny <fedor.indutny@gmail.com>. BUG= TEST= R=vegorov@chromium.org Review URL: http://codereview.chromium.org/8857001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Dec, 2011 1 commit
-
-
keuchel@chromium.org authored
This CL adds support for loading from and storing to context slots belonging to harmony let or const bound variables. Checks for the hole value are performed and the function is deoptimized if they fail. The full-codegen generated code will take care of properly throwing a reference error in these cases. TEST=mjsunit/harmony/block-let-crankshaft.js Review URL: http://codereview.chromium.org/8820015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Dec, 2011 3 commits
-
-
yangguo@chromium.org authored
TEST=math-pow.js Review URL: http://codereview.chromium.org/8840008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
We're not allowed to modify the input register and have to use a temporary instead, otherwise the result of expressions containing Math.round can be wrong. BUG=106351 TEST=test/mjsunit/compiler/regress-106351.js Review URL: http://codereview.chromium.org/8833007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/8834005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Dec, 2011 3 commits
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/8111006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/8817012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG=v8:397 TEST=regress-397.js Review URL: http://codereview.chromium.org/8800009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Dec, 2011 1 commit
-
-
danno@chromium.org authored
BUG=none TEST=test/mjsunit/array-literal-transitions.js Review URL: http://codereview.chromium.org/8747009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Dec, 2011 2 commits
-
-
fschneider@chromium.org authored
It causes several test failures which I need to investigate. Review URL: http://codereview.chromium.org/8769008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
So far we had two types of stack checks: one used for function entries and one used at loop back edges which uses a deferred code object to avoid spilling of registers in the loop. After refactoring lazy deoptimization the first stack check can also use deferred code. This change removes the first type of stack check instruction in Crankshaft and uses a deferred stack check in all places. Review URL: http://codereview.chromium.org/8775002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Nov, 2011 1 commit
-
-
fschneider@chromium.org authored
BUG=v8:1846 Review URL: http://codereview.chromium.org/8725030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Nov, 2011 1 commit
-
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/8700004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Nov, 2011 3 commits
-
-
keuchel@chromium.org authored
This CL introduces a third mode next to the non-strict (henceforth called 'classic mode') and 'strict mode' which is called 'extended mode' as in the current ES.next specification drafts. The extended mode is based on the 'strict mode' and adds new functionality to it. This means that most of the semantics of these two modes coincide. The 'extended mode' is entered instead of the 'strict mode' during parsing when using the 'strict mode' directive "use strict" and when the the harmony-scoping flag is active. This should be changed once it is fully specified how the 'extended mode' is entered. This change introduces a new 3 valued enum LanguageMode (see globals.h) corresponding to the modes which is mostly used by the frontend code. This includes the following components: * (Pre)Parser * Compiler * SharedFunctionInfo, Scope and ScopeInfo * runtime functions: StoreContextSlot, ResolvePossiblyDirectEval, InitializeVarGlobal, DeclareGlobals The old enum StrictModeFlag is still used in the backend when the distinction between the 'strict mode' and the 'extended mode' does not matter. This includes: * SetProperty runtime function, Delete builtin * StoreIC and KeyedStoreIC * StubCache Review URL: http://codereview.chromium.org/8417035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
This generates optimized code for deep-copying of nested object literal boilerplates which are statically known. Most of the boilerplates have already been generated at crankshaft time, so this optimization should kick in for virtually every object literal. Only nested object literal graphs up to a certain depth and containing up to a certain total number of properties are considered for this optimization. This will prevent explosion of code size due to large object literals (e.g. eval on JSON). Improves splay performance because object literals are created often. R=fschneider@chromium.org Review URL: http://codereview.chromium.org/8640001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/8682010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Nov, 2011 1 commit
-
-
mstarzinger@chromium.org authored
This just ports r10036 to the ARM codegenerator. Please see the original revision for a detailed description. R=erik.corry@gmail.com Review URL: http://codereview.chromium.org/8638012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-