- 25 Mar, 2010 3 commits
-
-
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
-
fschneider@chromium.org authored
Since we add more type (StringType, PrimitiveType) the name NumberInfo does not make sense anymore. Review URL: http://codereview.chromium.org/1207006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
This re-applies r4220 and r4233, which was reverted in r4254 due to a bug. This bug has now been fixed, with the only change being line 2884 changed from __ SmiTag(left_side->reg()); to __ SmiTag(operand->reg()); Added a regression test. BUG=http://crbug.com/39160 TEST=test/mjsunit/regress/regress-crbug-39160.js Review URL: http://codereview.chromium.org/1251009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Mar, 2010 1 commit
-
-
kmillikin@chromium.org authored
This reverts svn revisons r4220 and r4233. Review URL: http://codereview.chromium.org/1279001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Mar, 2010 1 commit
-
-
sgjesse@chromium.org authored
Inline floating point compare instead of calling the stub when the following conditions are met: * Code is in a loop * Compare is not a for loop condition * Compare is not an equal comparison This inlined code handles heap number to heap number and heap number to smi compare. It can also handle smi to smi compare, but whenever there is a chance of comparing two smis the smi compare is inlined before the inlined floating point compare. Support for non SSE2 hardware is included. A new set of variants of the compare stub without the floating point comparison code is called if the inline comapre fails due to the operands not beeing heap numbers or smis. The virtual frame has been extended with a branch taking two live results to be carried through to the destination. This makes this change much simpler as the inlined code have two live results in registers and a number of bailouts. CompareStub::GetName needs to be updated as well. I will do that as a separate change. Also inlined equality check if both operands can't be NaN. This can only provide positive equals if it is the same object. Review URL: http://codereview.chromium.org/1117011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Mar, 2010 1 commit
-
-
erik.corry@gmail.com authored
Makes NumberInfo into a real class. Fix bug where NumberInfo was lost in ToRegister. Allow 17 bits in safe Smis instead of 16. Review URL: http://codereview.chromium.org/668151 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Feb, 2010 1 commit
-
-
fschneider@chromium.org authored
Introducing a virtual-frame-inl.h file containing some platform-independent virtual frame function which are small enough to be inlined. Removed unnecessary #include of virtual-frame.h from register-allocator-inl.h and added the necessary explicit includes in a number of files. Review URL: http://codereview.chromium.org/660104 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Feb, 2010 1 commit
-
-
fschneider@chromium.org authored
These two asserts in ComputeEntryFrame are wrong since the virtual frame already knows how to deal with the number type information of copy elements: We do not store type information with copy elements. Instead the backing element contains the type information. Review URL: http://codereview.chromium.org/652044 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Feb, 2010 1 commit
-
-
fschneider@chromium.org authored
Each frame element gets a new attribute with number type information. A frame element can be: - smi - heap number - number (i.e. either of the above) - or something else. The type information is propagated along with all virtual frame operations. Results popped from the frame carry the number information with them. Two optimizations in the code generator make use of the new information: - GenericBinaryOpSyub omits map checks if input operands are numbers. - Boolean conversion for numbers: Emit inline code for converting a number (smi or heap number) to boolean. Do not emit call to ToBoolean stub in this case. Review URL: http://codereview.chromium.org/545007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Aug, 2009 1 commit
-
-
kmillikin@chromium.org authored
overhead on the ARM platform. Because virtual frames are always in memory, there is no work to be done for control flow except in the case of breaking or continuing when there is extra statement state on the stack. Review URL: http://codereview.chromium.org/165230 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2009 1 commit
-
-
lrn@chromium.org authored
The complexity of static type inference never really paid off, and as an analysis it didn't fit well with codegen frame propagation. Review URL: http://codereview.chromium.org/146077 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jun, 2009 2 commits
-
-
kmillikin@chromium.org authored
class. Manually manage off-frame results at the two sites where they were used. Review URL: http://codereview.chromium.org/125048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
branches, and bind with more than two arguments). Remove unneeded variable (the "watermark" on virtual frames). Review URL: http://codereview.chromium.org/125045 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 May, 2009 1 commit
-
-
kmillikin@chromium.org authored
to the platform-specific reserved registers. They are always in use for their intended purpose, cannot appear in the virtual frame, and can be freely used without allocation in the code generator. Review URL: http://codereview.chromium.org/113837 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2061 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
-
- 22 May, 2009 1 commit
-
-
ager@chromium.org authored
assignment operator) and add an AddAll method to lists instead. Review URL: http://codereview.chromium.org/115705 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 May, 2009 1 commit
-
-
kmillikin@chromium.org authored
macro assembler pointers and all derived state. Review URL: http://codereview.chromium.org/115564 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 May, 2009 1 commit
-
-
bak@chromium.org authored
Review URL: http://codereview.chromium.org/113582 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 May, 2009 1 commit
-
-
ager@chromium.org authored
two words: there is no reason to keep a pointer to the current code generator and macro assembler in the JumpTarget. Review URL: http://codereview.chromium.org/113458 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 May, 2009 4 commits
-
-
bak@chromium.org authored
M src/parser.cc git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bak@chromium.org authored
Review URL: http://codereview.chromium.org/115402 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
JumpTarget class in favor of using other internal state. Review URL: http://codereview.chromium.org/113456 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 May, 2009 5 commits
-
-
ager@chromium.org authored
Add virtual destructor to jump targets to make compiler happy. Review URL: http://codereview.chromium.org/113396 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/115350 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
encoding the values in one word and by using an indirection table for handles. This reduces compilation time by roughly 10% and we should be able to make the slow case equality checking of frame elements faster as well. Review URL: http://codereview.chromium.org/115347 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bak@chromium.org authored
- Compacted the VirtualFrame representation. -> Improved the compiler speed with 10% Review URL: http://codereview.chromium.org/115345 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
entry labels where it is statically safe. Review URL: http://codereview.chromium.org/115296 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 May, 2009 2 commits
-
-
kmillikin@chromium.org authored
Review URL: http://codereview.chromium.org/113329 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
that sets the static type on elements in the entry frame. Instead set the static type as early as possible when computing elements. Because the elements are shared with the reaching frames, this has the side effect of sometimes changing the static type of reaching frame elements. They will be changed anyway in VirtualFrame::PrepareMergeTo immediately after, so this is safe. Review URL: http://codereview.chromium.org/113258 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 May, 2009 2 commits
-
-
kmillikin@chromium.org authored
immediately when putting a copy in the entry frame, rather than as part of a separate pass after fully constructing the entry fraem. Review URL: http://codereview.chromium.org/113198 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
over the frame elements to find registers used (before allocating undetermined elements) and another pass to set the frame's register indices (after allocating all elements). Review URL: http://codereview.chromium.org/114018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Apr, 2009 1 commit
-
-
lrn@chromium.org authored
Uses static string type to optimize string additions. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Apr, 2009 2 commits
-
-
kmillikin@chromium.org authored
constants and copies below the watermark on backward jump targets (that's the whole point!). Review URL: http://codereview.chromium.org/60044 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
counting the reference to the return value and passing it to the return label. This requires threading it through try/catch and try/finally. The return value is loaded into eax more lazily than before. Also, perform some related refactoring of jump targets. Review URL: http://codereview.chromium.org/56172 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Mar, 2009 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/42565 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Mar, 2009 1 commit
-
-
whesse@chromium.org authored
frame elements. Review URL: http://codereview.chromium.org/53005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Mar, 2009 2 commits
-
-
kmillikin@chromium.org authored
destructor to no longer invalidate the result. Review URL: http://codereview.chromium.org/50051 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
forward declarations. Review URL: http://codereview.chromium.org/42389 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Mar, 2009 1 commit
-
-
kmillikin@chromium.org authored
been made of the element. Set it when copying an element, clear it when writing to an element marked copied and discovering that it is not copied. The copied flags on entry frames are exact. Preparing a frame for merging set the copied flags to be exact (to increase the likelihood of matching the entry frame or another frame). Review URL: http://codereview.chromium.org/50005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-