- 21 Nov, 2011 6 commits
-
-
kmillikin@chromium.org authored
Port r9977 (9aded78be4). Note: This is the port of the reapplied patch, not the original. Original commit message: To support deoptimization of exception handlers, the handler address in the stack is converted to a pair of code object and an index into a separate table of code offsets. The index part is invariant under deoptimization. The index is packed into the handler state field so that handler size does not change. BUG= TEST= Review URL: http://codereview.chromium.org/8557003 Patch from Gergely Kis <gergely@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=fschneider@chromium.org Review URL: http://codereview.chromium.org/8612003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
This generates code stubs for cloning of shallow object literal boilerplates that have no elements and only fast properties. Improves splay performance because object literals are created frequently. R=fschneider@chromium.org Review URL: http://codereview.chromium.org/8598014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erikcorry authored
Review URL: http://codereview.chromium.org/8612001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
BUG=none TEST=none Review URL: http://codereview.chromium.org/8473002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
keuchel@chromium.org authored
This reverts the changes to the ScopeIterator from r9734 to the previous implementation. The other changes in the commit to Parser, Scope and (Serialized)ScopeInfo are retained. BUG=104522,v8:1824,v8:1826 Review URL: http://codereview.chromium.org/8547007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Nov, 2011 8 commits
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/8595008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
memory leak. Review URL: http://codereview.chromium.org/8599006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
A follow-up to r9994. R=vitalyr@chromium.org BUG=102895 TEST=cctests/test-heap-profiler/NoHandleLeaks Review URL: http://codereview.chromium.org/8468016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/8595007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Review URL: http://codereview.chromium.org/8561011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Port r10012 (09c6bcba81). Original commit message: There is no need to bail out to runtime system when creating sliced strings of external strings since the string content is unimportant. BUG= TEST= Review URL: http://codereview.chromium.org/8585041 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG=v8:1831 Review URL: http://codereview.chromium.org/8597006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Note that some cctests and d8 still contain statical members with exit time destructors. BUG=v8:1828 Review URL: http://codereview.chromium.org/8586025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Nov, 2011 13 commits
-
-
danno@chromium.org authored
R=jkummerow@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/8590026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
TEST=test/mjsunit/string-externalize.js Review URL: http://codereview.chromium.org/8513010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
R=jkummerow@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/8574058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
R=jkummerow@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/8574053 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Port r10006 (4b344a03). Original commit message: 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= TEST= Review URL: http://codereview.chromium.org/8587008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
danno@chromium.org authored
DoDeferredBinaryOpStub is not used (or even defined) anywhere. MIPS can handle special cases of div, which is the only place it's used in the ARM version. BUG= TEST= Review URL: http://codereview.chromium.org/8588005 Patch from Gergely Kis <gergely@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
EmitIsObject is only called from one function, DoIsObjectAndBranch. DoIsObjectAndBranch now passes the temp2 register to EmitIsObject instead of simply relying on the two functions using the same lithium scratch register. BUG= TEST= Review URL: http://codereview.chromium.org/8588004 Patch from Gergely Kis <gergely@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Changes: -separated the two code-paths (constant power of 2 divisor similar to ARM and everything else) -replaced a bailout condition with faster handling (negative modulo result) -removed a possibly useless mov instruction from one path -replaced the IsConstantOperand condition with the more meaningful HasPowerOf2Divisor (although in this specific case they're equivalent) BUG= TEST= Review URL: http://codereview.chromium.org/8591002 Patch from Gergely Kis <gergely@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/8520023 Patch from Gergely Kis <gergely@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Port r9979(0cf0570a). Original commit message: Also simplify ia32 and x64 handing of the trace_elements_transition flag. BUG= TEST= Review URL: http://codereview.chromium.org/8557004 Patch from Gergely Kis <gregely@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
There is no need to bail out to runtime system when creating sliced strings of external strings since the string content is unimportant. Review URL: http://codereview.chromium.org/8513016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
Review URL: http://codereview.chromium.org/8568042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Nov, 2011 6 commits
-
-
vegorov@chromium.org authored
R=erik.corry@gmail.com BUG=103587 Review URL: http://codereview.chromium.org/8575006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG=v8:1678 Review URL: http://codereview.chromium.org/8513012 Patch from Matthew Sporleder <msporleder@gmail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
We pass in the object that we set the map on. Review URL: http://codereview.chromium.org/8486005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
svenpanne@chromium.org authored
It mysteriously disappeared about 800 revisions ago... :-} Thanks to Jakob for spotting this! Review URL: http://codereview.chromium.org/8574036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
TBR=erik.corry@gmail.com Review URL: http://codereview.chromium.org/8520031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Nov, 2011 7 commits
-
-
dslomov@chromium.org authored
TBR=vitalyr@chromium.org Review URL: http://codereview.chromium.org/8571017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/8570017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
BUG=http://code.google.com/p/v8/issues/detail?id=1821 Review URL: http://codereview.chromium.org/8536042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/8468005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
keuchel@chromium.org authored
So far free variables references in eval code are not statically resolved. For example in function foo() { var x = 1; eval("y = x"); } the variable x will get mode DYNAMIC and y will get mode DYNAMIC_GLOBAL, i.e. free variable references trigger dynamic lookups with a fast case handling for global variables. The CL introduces static resolution of free variables references in eval code. If possible variable references are resolved to bindings belonging to outer scopes of the eval call site. This is achieved by deserializing the outer scope chain using Scope::DeserializeScopeChain prior to parsing the eval code similar to lazy parsing of functions. The existing code for variable resolution is used, however resolution starts at the first outer unresolved scope instead of always starting at the root of the scope tree. This is a prerequisite for statically checking validity of assignments in the extended code as specified by the current ES.next draft which will be introduced by a subsequent CL. More specifically section 11.13 of revision 4 of the ES.next draft reads: * It is a Syntax Error if the AssignmentExpression is contained in extended code and the LeftHandSideExpression is an Identifier that does not statically resolve to a declarative environment record binding or if the resolved binding is an immutable binding. TEST=existing tests in mjsunit Review URL: http://codereview.chromium.org/8508052 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
In this case uncommiting marking deque is impossible. R=erik.corry@gmail.com Review URL: http://codereview.chromium.org/8528030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
Review URL: http://codereview.chromium.org/8510058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-