- 22 Nov, 2010 1 commit
-
-
ager@chromium.org authored
properties. For these closures we would like to be able to use constant functions and for that we need the closures allocated in old space. Review URL: http://codereview.chromium.org/5220007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Oct, 2010 1 commit
-
-
karlklose@chromium.org authored
BUG=http://code.google.com/p/v8/issues/detail?id=907 Review URL: http://codereview.chromium.org/4004006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Oct, 2010 3 commits
-
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/3844006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
TBR: erik.corry Review URL: http://codereview.chromium.org/3812012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/3850005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Oct, 2010 1 commit
-
-
kmillikin@chromium.org authored
Change more functions used by the Compiler class to have a uniform interface: they get passed as argument an input/output pointer to a CompilationInfo that they mutate if they succeed, and they return a flag telling whether they succeeded. Also, remove some unnecessary timers. Review URL: http://codereview.chromium.org/3561012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Sep, 2010 1 commit
-
-
kmillikin@chromium.org authored
When inspecting an AST node in the debugger, it can be difficult to find its concrete type. Add a "node_type" virtual function to all the concrete AST nodes. Use a macro to generate the definition of node_type as well as Accept and the AsXXX type testing/casting functions. Review URL: http://codereview.chromium.org/3431026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Sep, 2010 2 commits
-
-
kmillikin@chromium.org authored
I noticed we sometimes had extra spaces before and after the "const" keyword. Probably the result of a search and replace gone wrong. This is a whitespace only change. Review URL: http://codereview.chromium.org/3427021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
For some reason, the scope's arguments and arguments shadow were variable proxies, which resulted in all references to the arguments shadow being shared in the AST. This makes it hard to put per-node state on the AST nodes. I took the opportunity to remove Variable::AsVariable which has confused people in the past, and to rename Variable::slot to the more accurate Variable::AsSlot. Review URL: http://codereview.chromium.org/3432022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Sep, 2010 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/3449004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Sep, 2010 1 commit
-
-
erik.corry@gmail.com authored
Clang compatibility changes. This is a commit of http://codereview.chromium.org/3364002 for coldredlemur git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Aug, 2010 1 commit
-
-
kasperl@chromium.org authored
and x64 (on IA32 we even fold constants into the instructions for a more compact representation) and prepare the ARM full codegen for the doing the same there. Review URL: http://codereview.chromium.org/3195028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Aug, 2010 1 commit
-
-
kasperl@chromium.org authored
slightly better code and allow passing arguments to binary op stubs in registers on the platforms that support it. Review URL: http://codereview.chromium.org/3203005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Aug, 2010 4 commits
-
-
kasperl@chromium.org authored
operations. Review URL: http://codereview.chromium.org/3120027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
increment part of a count operation. Review URL: http://codereview.chromium.org/3150032 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
careful to avoid making code with loops run too slowly. Review URL: http://codereview.chromium.org/3107033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
- 23 Aug, 2010 1 commit
-
-
kasperl@chromium.org authored
and Expression::kValueTest. At the same time, prepare the code for keeping track of fall through labels to avoid unnecessary jumps. Review URL: http://codereview.chromium.org/3152042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jun, 2010 1 commit
-
-
sgjesse@chromium.org authored
Added support for more precise break points when debugging and stepping. To achieve that additional nop instructions are inserted where breaking would otherwise be impossible. The number of nop instructions inserted are sufficient to make place for patching with a call to a debug break code stub. On Intel that is 5 nop's for 32-bit and 13 for 64-bit. Om ARM 3 nop instructions (12 bytes) are required. In order to avoid inserting nop's in to many places a simple ast checker have been added to check whether there are breakable code in a statement or expression. If it is possible to break in an expression no additional break enabeling code is inserted. Added break locations to the true and false part of a conditional expression. Added stepping tests to cover more constructs. These changes are only in the full compiler. Changed the default value for the option --debugger in teh d8 shell from true to false. The reason for this is that with --debugger turned on the full compiler will be used for all code in when running d8, which can be unexpeceted. Review URL: http://codereview.chromium.org/2693002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4820 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
-
- 30 Mar, 2010 2 commits
-
-
kmillikin@chromium.org authored
The stack check has been moved from the Accept function dispatching on the AST node type, earlier to the Visit function dispatching on the visitor type. This allows very simple non-recursive visitors (not taking extra arguments or returning values) via the convention of calling "Visit" if one wants the stack check and "Accept" if one does not. Recursive calls should all be via "Visit". Review URL: http://codereview.chromium.org/1567007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Cut down on the number of arguments passed to the various binary operation code generator functions by passing along the expression itself, rather than a subset of its fields. Review URL: http://codereview.chromium.org/1592001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Mar, 2010 1 commit
-
-
kmillikin@chromium.org authored
The flow graph has been simplified to remove the special branch, join, and exit nodes. All nodes are now basic blocks (possibly empty to preserve edge-split form) with a distinguished entry and exit block. Most trivial expressions are not added to the flow graph as instructions. The assigned variable analyzer has been changed to sometimes work right-to-left so that right subexpressions can be marked as trivial. The reaching definitions analysis has been temporarily removed, and the analyses that depended on it (primitivity analysis, dead code marking) as well. Review URL: http://codereview.chromium.org/1530003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Mar, 2010 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/1233003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Mar, 2010 2 commits
-
-
kmillikin@chromium.org authored
TBR=fschneider@chromium.org Review URL: http://codereview.chromium.org/1257002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
As part of aggressive dead code elimination, we initially assume all flow-graph instructions are not live. We mark those that are critical and recursively all their children. The children of variable references (VariableProxies occurring as rvalues) include all their reaching definitions. Review URL: http://codereview.chromium.org/1159005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Mar, 2010 3 commits
-
-
kmillikin@chromium.org authored
Previously we marked compare operations that occurred as for loop conditions so as to avoid inlining the floating-point code for them. Begin marking all expressions that occur as any loop condition (because they are never dead code). Review URL: http://codereview.chromium.org/1074009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change adds a data-flow pass to statically determine if a variable contains a primitive type. It requires building the flow graph and computing reaching definitions as pre-requisites. The analysis annotates all VariableProxy nodes with the result. Review URL: http://codereview.chromium.org/1132005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
iposva@chromium.org authored
their place. - Add one field to the SharedFunctionInfo to remember the number of literals used in this function. Review URL: http://codereview.chromium.org/669240 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Mar, 2010 1 commit
-
-
fschneider@chromium.org authored
This change adds the option to peel off the first iteration of inner loops. Loop peeling is off by default and can enabled by a flag. It also requires building a flow graph. As part of this I added the possibility to clone AST nodes. Review URL: http://codereview.chromium.org/998001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Mar, 2010 1 commit
-
-
fschneider@chromium.org authored
Also remove unused attributes related to it from the ast. Review URL: http://codereview.chromium.org/1117003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Mar, 2010 2 commits
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/975001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
After computing RD_in for all flow graph nodes, push the reaching definitions through the basic blocks to annotate all variable references in the AST. Review URL: http://codereview.chromium.org/889003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Mar, 2010 1 commit
-
-
whesse@chromium.org authored
Add static analysis to AST expressions that records whether a negative zero will be treated identically to a positive zero in the expression's context. Use this flag to avoid some tests in inlined smi code. Review URL: http://codereview.chromium.org/965001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Mar, 2010 1 commit
-
-
kmillikin@chromium.org authored
IsPrimitive reflects that an expression's value is known statically to be one of the ECMA-262-3 JS types other than Object (e.g., Undefined, Null, Boolean, String, or Number). The type conversions ToPrimitive, ToNumber, ToInteger, ToInt32, ToUInt32, ToUint16, ToString, or ToObject cannot invoke user code for primitive input values. ToObject throws a TypeError if its input is Undefined or Null. Review URL: http://codereview.chromium.org/912002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Mar, 2010 3 commits
-
-
kmillikin@chromium.org authored
Reaching definitions in (RD_in) is initially empty for all nodes. Gen and kill sets are computed. AST node numbers are used for nodes to refer to their definition number. Also: two small changes to flow graph printing. Children of branch nodes are visited in right-to-left order when performing depth first search. Instructions are numbered locally within blocks so as to not destroy AST node number before printing (it's useful to print the definition). Review URL: http://codereview.chromium.org/876001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
object-literals with few elements but large element indices. We can decide at parse time whether the created object literal should have fast-case of slow-case elements. Remove unused runtime function. Review URL: http://codereview.chromium.org/805004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change fixes a bug with the arguments object that occurred with r4087 and r4088. The fix is not marking the arguments variable as trivial since it can have side effects. Review URL: http://codereview.chromium.org/851002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Mar, 2010 2 commits
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/805005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change adds a pass over the AST that computes the set of assigned variables for locals and parameters for each expression. The result of this analysis is used to for two purposes: 1. Recognize variables that are trivial subexpressions. A left sub-expression of a binary operation is trivial if it is a local variable or a parameter and it is not assigned in the right sub-expression. In the case of a trivial left sub-expression we evaluate the right first. Currently only binary operations and compare operations are considered when finding trivial left sub-expressions. 2. Recogize certain simple for-loops with a constant trip count where the loop variable is always within smi range. If the loop count variable is not assigned in the body of the loop (except in the update expression the for-loop). This allows omitting smi checks on operation using the loop count variable. Review URL: http://codereview.chromium.org/669155 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-