- 16 Dec, 2010 1 commit
-
-
kmillikin@chromium.org authored
Before, when we deoptimized after a branch we jumped to before the branch was taken in the unoptimized code with a token value that indicated when edge to take. There was a lot of machinery to track this value through the short-circuit logical operations and logical negation, and to handle it properly at inline function return sites. There was also machinery to prevent incorrectly seeing this environment with the extra value never actually materialized in the unoptimized code. Instead, now we deoptimize directly to one of the targets of the branch. Much but not yet all of the extra machinery has been removed or simplified. The cost is that branching control structures (the looping statements, if statements, conditional expressions, and the short-circuit binary logical operations) need extra AST IDs to identify the branch targets. Review URL: http://codereview.chromium.org/5908001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Dec, 2010 1 commit
-
-
kmillikin@chromium.org authored
This fixes V8 issue 989. Before, assignments used the AST ID of the assignment expression to mark the side effect of the store, which became a target for deoptimization bailout for code after the assignment. In effect contexts this environment included the value of the assignment, which was unexpected by the unoptimized code. Now we introduce a new assignment ID for AST node types that include an assignment (Assignment, CountOperation, and ForInStatement) and use it for the side effect of the store. Review URL: http://codereview.chromium.org/5682010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5990 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
-
- 24 Aug, 2010 1 commit
-
-
kasperl@chromium.org authored
flow graph code completely. Add new AST node for null compares and use it to make the full codegens better at generating code for null comparisons. Review URL: http://codereview.chromium.org/3146037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2010 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/2828004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 May, 2010 1 commit
-
-
erik.corry@gmail.com authored
of having a list of virtual frame pointers in the jump target we have one virtual frame, which is the frame that all have to merge to to branch to that frame. The virtual frame in the JumpTarget is inside the JumpTarget, rather than being an allocated object that is pointed to. Unfortunately this means that the JumpTarget class has to be able to see the size of a VirtualFrame object to compile, which in turn lead to a major reorganization of related .h files. The actual change of functionality in this change is intended to be minimal (we now assert that the virtual frames match when using JumpTarget instead of just assuming that they do). Review URL: http://codereview.chromium.org/1961004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Apr, 2010 1 commit
-
-
erik.corry@gmail.com authored
stack for now. Next step is probably fixing the binary op stubs so they can take swapped registers and fixing the deferred code so it doesn't insist that all registers except the two operands are flushed. Generates slightly worse code sometimes because the peephole push-pop elimination gets confused when we don't use the same register all the time (the old code used r0 always). Review URL: http://codereview.chromium.org/1604002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Mar, 2010 1 commit
-
-
erik.corry@gmail.com authored
The heavy version is for x86 and x64. The light version is for ARM and MIPS. Remove the elements_ array from the virtual frame in the light version. More simplifications to come, followed by light register allocation. Review URL: http://codereview.chromium.org/1164002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Feb, 2010 1 commit
-
-
sgjesse@chromium.org authored
This is the first step in the MIPS port of V8. It adds assembler, disassembler and simulator for the MIPS32 architecture. Contains stubbed out implementation of all the compiler/code generator infrastructure to make it all build. Patch by Alexandre Rames from Sigma Designs Inc. This is the landing of http://codereview.chromium.org/543161. Review URL: http://codereview.chromium.org/561072 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Feb, 2010 1 commit
-
-
kmillikin@chromium.org authored
MakeCode functions in the CompilationInfo structure. This makes it easier to add new arguments and makes all arguments uniformly available to the various backends. Review URL: http://codereview.chromium.org/566008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Feb, 2010 1 commit
-
-
kmillikin@chromium.org authored
Code is specialized to the initial receiver. Review URL: http://codereview.chromium.org/553149 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Jan, 2010 1 commit
-
-
fschneider@chromium.org authored
This change adds a post-order numbering to AST nodes that are relevant for the fast code generator. It is only invoked together with the fast compiler. Also changed the ast printer to print the numbering for testing purposes if it is present. Review URL: http://codereview.chromium.org/553134 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jan, 2010 1 commit
-
-
kmillikin@chromium.org authored
simpler backend for non-toplevel code. Review URL: http://codereview.chromium.org/549158 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Dec, 2009 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/488017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Nov, 2009 1 commit
-
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/361026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 May, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
This issue was raised by Brett Wilson while reviewing my changelist for readability. Craig Silverstein (one of C++ SG maintainers) confirmed that we should declare one namespace per line. Our way of namespaces closing seems not violating style guides (there is no clear agreement on it), so I left it intact. Review URL: http://codereview.chromium.org/115756 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Sep, 2008 1 commit
-
-
christian.plesner.hansen@gmail.com authored
Added presubmit step to check copyright. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jul, 2008 1 commit
-
-
christian.plesner.hansen authored
git-svn-id: http://v8.googlecode.com/svn/trunk@2 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-