- 06 Mar, 2012 1 commit
-
-
yangguo@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9615012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Feb, 2012 1 commit
-
-
mstarzinger@chromium.org authored
R=vegorov@chromium.org,kmillikin@chromium.org Review URL: https://chromiumcodereview.appspot.com/9304001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10849 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 1 commit
-
-
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
-
- 10 Jan, 2012 1 commit
-
-
kmillikin@chromium.org authored
An off-by-one in the register allocator could lead to allocating (and clobbering) the reserved 0.0 double register. This required a function with 14 or more live double values. BUG= TEST= Review URL: http://codereview.chromium.org/9114038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10374 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
-
- 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 2 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
-
- 17 Nov, 2011 1 commit
-
-
fschneider@chromium.org authored
Landing: [hydrogen] optimize switch with string clauses. Patch by Fedor Indutny <fedor.indutny@gmail.com>. Original code review: http://codereview.chromium.org/8373029/ Review URL: http://codereview.chromium.org/8589019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Nov, 2011 1 commit
-
-
fschneider@chromium.org authored
Changes the way we do lazy deoptimization: 1. For side-effect instructions, we insert the lazy-deopt call at the following LLazyBailout instruction. CALL GAP LAZY-BAILOUT ==> lazy-deopt-call 2. For other instructions (StackCheck) we insert it right after the instruction since the deopt targets an earlier deoptimization environment. STACK-CHECK GAP ==> lazy-deopt-call The pc of the lazy-deopt call that will be patched in is recorded in the deoptimization input data. Each Lithium instruction can have 0..n safepoints. All safepoints get the deoptimization index of the associated LAZY-BAILOUT instruction. On lazy deoptimization we use the return-pc to find the safepoint. The safepoint tells us the deoptimization index, which in turn finds us the PC where to insert the lazy-deopt-call. Additional changes: * RegExpLiteral marked it as having side-effects so that it gets an explicitlazy-bailout instruction (instead of treating it specially like stack-checks) * Enable target recording CallFunctionStub to achieve more inlining on optimized code. BUG=v8:1789 TEST=jslint and uglify run without crashing, mjsunit/compiler/regress-lazy-deopt.js Review URL: http://codereview.chromium.org/8492004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Nov, 2011 2 commits
-
-
fschneider@chromium.org authored
There was a test failure on x64 mozilla tests. TBR=ricow@chromium.org Review URL: http://codereview.chromium.org/8495011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Hydrogen should optimize not only SMI clauses, but clauses with string literals too. Patch from fedor.indutny <fedor.indutny@gmail.com>. R=vegorov@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/8373029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Oct, 2011 1 commit
-
-
keuchel@chromium.org authored
Review URL: http://codereview.chromium.org/8344082 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Oct, 2011 1 commit
-
-
whesse@chromium.org authored
Improve optimized code for comparison of an int32 against a constant, or comparison of two double constants. Contributed by m.m.capewell. Original codereview is http://codereview.chromium.org/7489045/. This cl is just created in order to commit the change. BUG= TEST= Review URL: http://codereview.chromium.org/8352040 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Oct, 2011 1 commit
-
-
fschneider@chromium.org authored
The new helper avoids expensive FindCodeForInnerPointer invocation when we have the host code object available. It is used when patching stack checks. Also some comments on the ARM platform are corrected. Review URL: http://codereview.chromium.org/8330021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Oct, 2011 1 commit
-
-
fschneider@chromium.org authored
Omit smi check inside write barriers if the value is known to be a heap object. Refine inferred types of some instructions. Review URL: http://codereview.chromium.org/8256016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Sep, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/8046003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Jun, 2011 1 commit
-
-
sgjesse@chromium.org authored
Gives ~20% boost for Crypto benchmark on A9. BUG=none TEST=added to mjsunit/div-mod.js Review URL: http://codereview.chromium.org//7276034 Patch from Martyn Capewell <m.m.capewell@googlemail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jun, 2011 1 commit
-
-
fschneider@chromium.org authored
The new approach uses one temp register instead of two on IA32. The ARM instructions are modified so the input can be UseAtStart again. Review URL: http://codereview.chromium.org/7274025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jun, 2011 1 commit
-
-
sgjesse@chromium.org authored
The hydrogen stack check instruction is now added to each loop and the stack check handling on the back edge has been removed. This change causes regression on small tight loops as the stack check is now at the top of the loop instead of at the bottom, and that requires one additional unconditional jump per loop iteration. However the reason for this change is to avoid worse regressions for upcoming changes to correctly support debugger break in optimized code. R=fschneider@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org//7216009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Jun, 2011 1 commit
-
-
sgjesse@chromium.org authored
This reverts r8381. It was causing Mozilla test mozilla/ecma/Date/15.9.3.8-5 to fail and Sputnik tests S15.9.3.1_A5_T5, S15.9.3.1_A5_T1, S15.9.3.1_A5_T2, S15.9.3.1_A5_T4, S15.9.3.1_A5_T3 and S15.9.3.1_A5_T6 to timeout. R=ager@chromium.org BUG=none TEST=mozilla/ecma/Date/15.9.3.8-5, S15.9.3.1_A5_T5, S15.9.3.1_A5_T1, S15.9.3.1_A5_T2, S15.9.3.1_A5_T4, S15.9.3.1_A5_T3 and S15.9.3.1_A5_T6 Review URL: http://codereview.chromium.org//7246004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jun, 2011 1 commit
-
-
sgjesse@chromium.org authored
Gives ~20% boost for Crypto benchmark on A9. BUG=none TEST=none Review URL: http://codereview.chromium.org//7148018 Patch from Martyn Capewell <m.m.capewell@googlemail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Jun, 2011 1 commit
-
-
whesse@chromium.org authored
This is needed so that HCompare, optimized for double inputs, works correctly on undefined inputs. BUG=v8:1434 TEST=mjsunit/bugs/bug-1434.js Review URL: http://codereview.chromium.org/7044049 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 May, 2011 1 commit
-
-
ager@chromium.org authored
Only IA32 version for now. I'll start porting. Strict mode functions are to get 'undefined' as the receiver when called with an implicit receiver. Modes are bad! It forces us to have checks on all function calls. This change attempts to limit the cost by passing information about whether or not a call is with an implicit or explicit receiver in ecx as part of the calling convention. The cost is setting ecx on all calls and checking ecx on entry to strict mode functions. Implicit/explicit receiver state has to be maintained by ICs. Various stubs have to not clobber ecx or save and restore it. CallFunction stub needs to check if the receiver is implicit when it doesn't know from the context. Review URL: http://codereview.chromium.org/7039036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 May, 2011 1 commit
-
-
sgjesse@chromium.org authored
BUG=none TEST=none Committed: http://code.google.com/p/v8/source/detail?r=7909 Reverted in r7916. Review URL: http://codereview.chromium.org//7021007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 May, 2011 2 commits
-
-
sgjesse@chromium.org authored
r7909: Optimise the deoptimisation check to improve performance on modern ARM cores. Assert failure on mozilla/ecma/Date/15.9.3.8-2 and mozilla/ecma/Date/15.9.3.8-4. R=ricow@chromium.org Review URL: http://codereview.chromium.org//7037006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
BUG=none TEST=none Review URL: http://codereview.chromium.org//7021007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 May, 2011 1 commit
-
-
ager@chromium.org authored
R=fschneider@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/6930005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
This reduces the binary size by making the Is* type-test functions non-virtual. I had to change Gap and Label instructions to have a common abstract superclass because both act as gap-instructions for the register allocator. Review URL: http://codereview.chromium.org/6880204 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
Original code review: http://codereview.chromium.org/6838018/ TBR=ager@chromium.org Review URL: http://codereview.chromium.org/6869005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2011 1 commit
-
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/6793017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Apr, 2011 1 commit
-
-
mmaly@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/6808001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Mar, 2011 1 commit
-
-
fschneider@chromium.org authored
This change adds a new IR instruction for polymorphic loads. It performs map compares and loads in one IR instruction instead of splitting each load into a graph of map-compares and field loads. The advantage is a smaller IR and less basic blocks, plus it allows to do GVN on polymorphic loads. Review URL: http://codereview.chromium.org/6708085 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Mar, 2011 3 commits
-
-
vitalyr@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6685088 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-