- 23 Mar, 2010 8 commits
-
-
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
-
kasperl@chromium.org authored
Review URL: http://codereview.chromium.org/1153008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
scripts (either a JSFunction or a SharedFunctionInfo). Review URL: http://codereview.chromium.org/1077010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
now, the custom call generator stuff is disabled. Review URL: http://codereview.chromium.org/1094014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
TBR=iposva@chromium.org Review URL: http://codereview.chromium.org/1117010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
TBR=iposva@chromium.org Review URL: http://codereview.chromium.org/1081014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
TBR=iposva@chromium.org Review URL: http://codereview.chromium.org/1159004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4212 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 8 commits
-
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/1081010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
This is for the case of Linux, where sampling is done using SIGPROF signal handler which is executed in the context of an interrupted thread. In this case, my previous implementation with TLS doesn't work. Review URL: http://codereview.chromium.org/1138004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Include the initial definitions for parameters on input to the function, and the initial definition of stack-allocated locals as undefined. Review URL: http://codereview.chromium.org/1155006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/1164001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/1113007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change fixes an assert we hit when we recognized a fast smi loop with a parameter as the loop variable. BUG=650 Review URL: http://codereview.chromium.org/1138003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kaznacheev@chromium.org authored
Review URL: http://codereview.chromium.org/883001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2010 1 commit
-
-
peter.rybin@gmail.com authored
Review URL: http://codereview.chromium.org/1094008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Mar, 2010 1 commit
-
-
peter.rybin@gmail.com authored
Review URL: http://codereview.chromium.org/995006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Mar, 2010 12 commits
-
-
erik.corry@gmail.com authored
available. Using blx will allow the CPU to predict the return address fo the function, resulting in better overall performamce. This is a copy of http://codereview.chromium.org/1113002 by rodolph.perfetta@googlemail.com git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Review URL: http://codereview.chromium.org/1084009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
TBR=ager@chromium.org Review URL: http://codereview.chromium.org/1154001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
TBR=ager@chromium.org Review URL: http://codereview.chromium.org/1084010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
ager@chromium.org authored
I will lint my code, I will lint my code, I will lint my code. :) TBR=sgjesse@chromium.org Review URL: http://codereview.chromium.org/1115007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
BUG=640 Review URL: http://codereview.chromium.org/1113001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
floitschV8@gmail.com authored
Review URL: http://codereview.chromium.org/1102002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/1114001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Review URL: http://codereview.chromium.org/1079006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
BUG=649 Review URL: http://codereview.chromium.org/1132002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/998007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Mar, 2010 10 commits
-
-
peter.rybin@gmail.com authored
Review URL: http://codereview.chromium.org/1002010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
We may encounter an invalid frame after generating code for the loop body in case the loop body ends in an unconditional return. Before setting the type information for the loop variable we need to check for a valid frame. Review URL: http://codereview.chromium.org/1106002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
floitschV8@gmail.com authored
Review URL: http://codereview.chromium.org/1032007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
oleg@chromium.org authored
Improve Math.round(). Fix the bug in r4146. Further improve performance by checking the exponent instead of comparing doubles. Add several tests for numbers near the limits of SMI and several tests from WebKit. Review URL: http://codereview.chromium.org/1008004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kaznacheev@chromium.org authored
Review URL: http://codereview.chromium.org/845002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
If the input of a ++ or -- operation is a smi, the result is an Integer32. Otherwise it is a number. Review URL: http://codereview.chromium.org/1075004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/1109001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
On windows memchr returns const void* instead of void*. Review URL: http://codereview.chromium.org/1074003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/1014007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
* Using memchr for first/only char lookup is faster than hand-coded loop. It processes one machine word per iteration so it helps even more on x64. * Tweaked badness computation in simple search. We pay only for the first char memchr scans, not for all of them. Review URL: http://codereview.chromium.org/1100002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-