- 11 Feb, 2011 2 commits
-
-
kmillikin@chromium.org authored
Before, Hydrogen call instructions had uses of the PushArgument instructions for their arguments. These operands were unneeded, bloated the IR, and caused calls to be the only Hydrogen instructions with an unpredictable number of operands. Now, PushArgument is a pure side-effecting instruction that has no uses. Review URL: http://codereview.chromium.org/6480030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change introduces an instruction for negation instead of generating a multiplication with -1. The code for x64 and ARM is not included in this change. Review URL: http://codereview.chromium.org/6461021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Feb, 2011 2 commits
-
-
danno@chromium.org authored
Review URL: http://codereview.chromium.org/6410112 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Make esi available to the register allocator rather than dedicating it permanently to the context. The context is still passed in register esi to JavaScript and to the runtime as part of the calling convention. Because some stubs might end up calling JS or the runtime, it is also conservatively passed to stubs. Roughly half the calls have been modified to use the context as an input value in fixed register esi. The other half are marked as calls or deferred code so esi is spilled and can be explicitly set. It is no longer necessary to restore the context to esi after a call that might change it. Review URL: http://codereview.chromium.org/6452001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Feb, 2011 1 commit
-
-
kmillikin@chromium.org authored
When constructing stack traces we interpret the deoptimization data for optimized frames to find the receiver value. This value could sometimes be eliminated from the deoptimization data if we though it was unused. BUG=v8:1118 Review URL: http://codereview.chromium.org/6465023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Feb, 2011 1 commit
-
-
kmillikin@chromium.org authored
Each context in the context chain has a corresponding hydrogen value. The context values are used for global object lookup and context slot lookup. Add simple (non-compound) assignment to context slots. Review URL: http://codereview.chromium.org/6390003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
1. The placement of checks for negative zero has to be computed after all conversion instructions have been inserted. I separated the code into its own phase. 2. GVN need to take instruction flags into account when comparing instructions for redundancy. Review URL: http://codereview.chromium.org/6260035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Jan, 2011 2 commits
-
-
kmillikin@chromium.org authored
It is a type error to treat a flag (an enum) as if it were a flag mask (an int derived from shifting a bit by the enum value). It is error prone to have functions that take flag mask arguments because they will silently accept flags. Review URL: http://codereview.chromium.org/6373011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
The former default was true. The new default is false and the default implementation is UNREACHABLE so it asserts in debug builds. The function is overridden in all concrete instruction classes that might have the flag kUseGVN set. Review URL: http://codereview.chromium.org/6255013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jan, 2011 2 commits
-
-
kmillikin@chromium.org authored
Rename HBranch (the instruction that coerces an arbitrary HValue to control flow) to HTest to free up the term Branch to refer to any control instruction with two successors. Change the virtual FirstSuccessor and SecondSuccessor functions on control instructions to a pair of data members. Review URL: http://codereview.chromium.org/6366002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Add a generic tagged version for all bitwise operation that invoke the generic stub. This allows us to perform generic bitwise operations (i.e. on non-integers) without deoptimizing. Review URL: http://codereview.chromium.org/6366006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2011 2 commits
-
-
lrn@chromium.org authored
Implement ConstantD and ConstantI. BUG=1048 Review URL: http://codereview.chromium.org/6262005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Currently only closures which only read from the context are supported. Review URL: http://codereview.chromium.org/5753005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Dec, 2010 1 commit
-
-
fschneider@chromium.org authored
This prevents code motion from hoisting map-checks across such stores which may result in unnecessary deoptimizations. In the following example program we would move a map-check from the inner loop out before the outer loop which is not desirable: function f() { var o = {}; var j = 0; o.a = 1; do { o.b = 6; // Map transition for (var i=0; i<10; i++) { o.a = o.b + i; } } while(++j < 1) {} } for (var i = 0; i < 1000000; i++) f(); Review URL: http://codereview.chromium.org/5991001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Dec, 2010 1 commit
-
-
fschneider@chromium.org authored
The overflow conditions were not correctly detected for certain add, sub and mul instructions. I replaced the previous code by using 64-bit arithmetic to correctly identify overflows for *, + and -. Review URL: http://codereview.chromium.org/5860009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Dec, 2010 3 commits
-
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-