platform/upstream/v8.git
14 years agoPorting binary op ICs to arm
kaznacheev@chromium.org [Mon, 22 Mar 2010 11:07:22 +0000 (11:07 +0000)]
Porting binary op ICs to arm

Review URL: http://codereview.chromium.org/883001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix broken build: disable stale assert
peter.rybin@gmail.com [Sun, 21 Mar 2010 00:23:03 +0000 (00:23 +0000)]
Fix broken build: disable stale assert

Review URL: http://codereview.chromium.org/1094008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoExplicitly declare temporary cooked frames state
peter.rybin@gmail.com [Sat, 20 Mar 2010 22:37:15 +0000 (22:37 +0000)]
Explicitly declare temporary cooked frames state

Review URL: http://codereview.chromium.org/995006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoImplement function calls on ARM using the blx instruction when
erik.corry@gmail.com [Fri, 19 Mar 2010 14:05:11 +0000 (14:05 +0000)]
Implement function calls on ARM using the blx instruction when
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

14 years agoAdd a few tests to ProfilerEventsProcessor.
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 13:51:01 +0000 (13:51 +0000)]
Add a few tests to ProfilerEventsProcessor.

Review URL: http://codereview.chromium.org/1084009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoReally fix ARM build (this time verified locally.)
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 13:49:28 +0000 (13:49 +0000)]
Really fix ARM build (this time verified locally.)

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

14 years agoFix ARM build (GCC 3 'all member functions in class are private' warning.)
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 13:07:43 +0000 (13:07 +0000)]
Fix ARM build (GCC 3 'all member functions in class are private' warning.)

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

14 years agoRemove unused LivenessAnalyzer class.
fschneider@chromium.org [Fri, 19 Mar 2010 12:54:35 +0000 (12:54 +0000)]
Remove unused LivenessAnalyzer class.

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

14 years agoFix presubmit errors.
ager@chromium.org [Fri, 19 Mar 2010 12:53:55 +0000 (12:53 +0000)]
Fix presubmit errors.

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

14 years agoPort number-dictionary probing in generated code to x64.
ager@chromium.org [Fri, 19 Mar 2010 12:26:45 +0000 (12:26 +0000)]
Port number-dictionary probing in generated code to x64.

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

14 years agoRename files containing underscores.
floitschV8@gmail.com [Fri, 19 Mar 2010 12:15:24 +0000 (12:15 +0000)]
Rename files containing underscores.
Review URL: http://codereview.chromium.org/1102002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRefactoring of RegExp interface to better support calling several times in a row.
lrn@chromium.org [Fri, 19 Mar 2010 12:01:17 +0000 (12:01 +0000)]
Refactoring of RegExp interface to better support calling several times in a row.

Review URL: http://codereview.chromium.org/1114001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd basic C++ implementation of CPU profiler.
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 09:46:53 +0000 (09:46 +0000)]
Add basic C++ implementation of CPU profiler.

Review URL: http://codereview.chromium.org/1079006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd parens to DateYMDFromTimeSlow to clearify.
ager@chromium.org [Fri, 19 Mar 2010 08:00:52 +0000 (08:00 +0000)]
Add parens to DateYMDFromTimeSlow to clearify.

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

14 years agoAdd debug code assertions where we expect smi inputs.
fschneider@chromium.org [Fri, 19 Mar 2010 07:43:03 +0000 (07:43 +0000)]
Add debug code assertions where we expect smi inputs.

Review URL: http://codereview.chromium.org/998007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoShow file name/line number in stack trace
peter.rybin@gmail.com [Thu, 18 Mar 2010 22:15:54 +0000 (22:15 +0000)]
Show file name/line number in stack trace

Review URL: http://codereview.chromium.org/1002010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bug when generating a fast smi loop.
fschneider@chromium.org [Thu, 18 Mar 2010 14:32:02 +0000 (14:32 +0000)]
Fix bug when generating a fast smi loop.

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

14 years agoRename grisu to fast-dtoa. Get rid of template.
floitschV8@gmail.com [Thu, 18 Mar 2010 13:19:59 +0000 (13:19 +0000)]
Rename grisu to fast-dtoa. Get rid of template.
Review URL: http://codereview.chromium.org/1032007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoImprove Math.round(). Fix the bug in r4146. Further improve performance by checking...
oleg@chromium.org [Thu, 18 Mar 2010 13:00:57 +0000 (13:00 +0000)]
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

14 years agoPorting binary op ICs to x64.
kaznacheev@chromium.org [Thu, 18 Mar 2010 11:54:53 +0000 (11:54 +0000)]
Porting binary op ICs to x64.
Review URL: http://codereview.chromium.org/845002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoUpdate number info for count operations.
fschneider@chromium.org [Thu, 18 Mar 2010 10:01:53 +0000 (10:01 +0000)]
Update number info for count operations.

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

14 years agoFix windows build again: one more memchr call.
vitalyr@chromium.org [Thu, 18 Mar 2010 09:38:30 +0000 (09:38 +0000)]
Fix windows build again: one more memchr call.

Review URL: http://codereview.chromium.org/1109001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix windows build.
vitalyr@chromium.org [Thu, 18 Mar 2010 09:27:15 +0000 (09:27 +0000)]
Fix windows build.

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

14 years agoAdd test cases for fast smi loops.
fschneider@chromium.org [Thu, 18 Mar 2010 09:08:24 +0000 (09:08 +0000)]
Add test cases for fast smi loops.

Review URL: http://codereview.chromium.org/1014007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoString search performance improvements:
vitalyr@chromium.org [Thu, 18 Mar 2010 09:01:08 +0000 (09:01 +0000)]
String search performance improvements:

 * 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

14 years agoFix type propagation rules for count operation.
fschneider@chromium.org [Wed, 17 Mar 2010 16:39:29 +0000 (16:39 +0000)]
Fix type propagation rules for count operation.

Also treat const-variables as not side-effect free.

Review URL: http://codereview.chromium.org/982009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix arm compilation. DiyFp multiplications are now in a separate procedure.
floitschV8@gmail.com [Wed, 17 Mar 2010 15:57:26 +0000 (15:57 +0000)]
Fix arm compilation. DiyFp multiplications are now in a separate procedure.
Review URL: http://codereview.chromium.org/971006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoReenable ability to Dispose already Disposed Vector.
antonm@chromium.org [Wed, 17 Mar 2010 15:15:45 +0000 (15:15 +0000)]
Reenable ability to Dispose already Disposed Vector.

Review URL: http://codereview.chromium.org/1016006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix formatting around * and &.
erik.corry@gmail.com [Wed, 17 Mar 2010 14:53:16 +0000 (14:53 +0000)]
Fix formatting around * and &.
Review URL: http://codereview.chromium.org/1000007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoProperly release zero-length Vectors.
antonm@chromium.org [Wed, 17 Mar 2010 14:42:01 +0000 (14:42 +0000)]
Properly release zero-length Vectors.

Review URL: http://codereview.chromium.org/987004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoDon't generate inline constructors if this.__proto__ is assigned.
sgjesse@chromium.org [Wed, 17 Mar 2010 13:23:53 +0000 (13:23 +0000)]
Don't generate inline constructors if this.__proto__ is assigned.

BUG=http://code.google.com/p/v8/issues/detail?id=646
TEST=test/mjsunit/regress/regress-646.js
Review URL: http://codereview.chromium.org/1023008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRe-apply r4159 now with working test on x64
mikhail.naganov@gmail.com [Wed, 17 Mar 2010 13:15:42 +0000 (13:15 +0000)]
Re-apply r4159 now with working test on x64

TBR=sgjesse@chromium.org

Review URL: http://codereview.chromium.org/979005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPrepare push to trunk. Now working on version 2.1.7.
fschneider@chromium.org [Wed, 17 Mar 2010 13:08:58 +0000 (13:08 +0000)]
Prepare push to trunk. Now working on version 2.1.7.

Review URL: http://codereview.chromium.org/974005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRevert r4159 because of x64 test failures.
fschneider@chromium.org [Wed, 17 Mar 2010 13:04:07 +0000 (13:04 +0000)]
Revert r4159 because of x64 test failures.

Review URL: http://codereview.chromium.org/1049003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPrepare push to trunk. Now working on version 2.1.6.
fschneider@chromium.org [Wed, 17 Mar 2010 12:46:17 +0000 (12:46 +0000)]
Prepare push to trunk. Now working on version 2.1.6.

Review URL: http://codereview.chromium.org/1050002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix excessive stack usage by compiler due to local in recursive scope.
whesse@chromium.org [Wed, 17 Mar 2010 12:27:32 +0000 (12:27 +0000)]
Fix excessive stack usage by compiler due to local in recursive scope.
Review URL: http://codereview.chromium.org/1019006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoImplement circular queues for the C++ version of CPU profiler.
mikhail.naganov@gmail.com [Wed, 17 Mar 2010 12:25:10 +0000 (12:25 +0000)]
Implement circular queues for the C++ version of CPU profiler.

Circular queues serve as a transport for communicating between
VM, stack sampler and analyzer threads. Logging requirements
for VM and stack sampler are completely different, that's why
I introduced two different versions of CQs.

Review URL: http://codereview.chromium.org/1047002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoMake the C++ tests run without SSE2 support.
sgjesse@chromium.org [Wed, 17 Mar 2010 10:28:44 +0000 (10:28 +0000)]
Make the C++ tests run without SSE2 support.
Review URL: http://codereview.chromium.org/982007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix a bug in the regexp caching. Also add a few more places to
erik.corry@gmail.com [Wed, 17 Mar 2010 10:23:06 +0000 (10:23 +0000)]
Fix a bug in the regexp caching.  Also add a few more places to
cache.  We now cache most of the places where Opera cache and
one or two where they do not cache for some reason.  Since
these optimizations aren't necessarily useful on real code we
may remove them if and when the Dromaeo website makes the
benchmarks harder to game.
Review URL: http://codereview.chromium.org/995005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRevert r4146. Add a special case in Math.round for a SMI result. Also change the...
fschneider@chromium.org [Wed, 17 Mar 2010 09:58:28 +0000 (09:58 +0000)]
Revert r4146. Add a special case in Math.round for a SMI result. Also change the imp...

TBR=ager@chromium.org,
Review URL: http://codereview.chromium.org/1042006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bug in propagation of type information into registers.
fschneider@chromium.org [Wed, 17 Mar 2010 09:49:03 +0000 (09:49 +0000)]
Fix bug in propagation of type information into registers.

The number type information of results has to be also copied when
calling ToRegister with a fixed register as destination.

Also fix an unbound label and a missing CpuFeatures scope.

Review URL: http://codereview.chromium.org/987003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRestore http://code.google.com/p/v8/source/detail?r=4151 fixing a typo:
antonm@chromium.org [Wed, 17 Mar 2010 09:40:54 +0000 (09:40 +0000)]
Restore code.google.com/p/v8/source/detail?r=4151 fixing a typo:

index d545c34..91cb151 100644
--- a/src/builtins.cc
+++ b/src/builtins.cc
@@ -738,7 +738,7 @@ BUILTIN(ArrayConcat) {
   int result_len = 0;
   for (int i = 0; i < n_arguments; i++) {
     Object* arg = args[i];
-    if (!arg->IsJSArray() || JSArray::cast(arg)->HasFastElements()) {
+    if (!arg->IsJSArray() || !JSArray::cast(arg)->HasFastElements()) {
       return CallJsBuiltin("ArrayConcat", args);
     }
This reverts 4153.
    # Please enter the commit message for your changes. Lines starting

Review URL: http://codereview.chromium.org/1055003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRevert "More generic version of Array.concat builtin."
antonm@chromium.org [Wed, 17 Mar 2010 09:13:39 +0000 (09:13 +0000)]
Revert "More generic version of Array.concat builtin."

Review URL: http://codereview.chromium.org/1058003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRemove handle scope that caused debug mode assertion failures
kasperl@chromium.org [Wed, 17 Mar 2010 08:53:21 +0000 (08:53 +0000)]
Remove handle scope that caused debug mode assertion failures
because a handle was returned out of the destroyed scope.
Review URL: http://codereview.chromium.org/1029003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoMore generic version of Array.concat builtin.
antonm@chromium.org [Wed, 17 Mar 2010 08:30:07 +0000 (08:30 +0000)]
More generic version of Array.concat builtin.

Review URL: http://codereview.chromium.org/1036002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoKeep more track of whether code is from the built
erik.corry@gmail.com [Wed, 17 Mar 2010 08:14:59 +0000 (08:14 +0000)]
Keep more track of whether code is from the built
in .js files in V8.  This change gets bleeding edge
a tiny bit closer to the partial snapshots branch.
Review URL: http://codereview.chromium.org/1052003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoNon-ASCII sybmols made their way into JS comments
peter.rybin@gmail.com [Tue, 16 Mar 2010 23:15:10 +0000 (23:15 +0000)]
Non-ASCII sybmols made their way into JS comments

Review URL: http://codereview.chromium.org/984005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoUse untagged int32 values in evaluation of side-effect free expressions.
whesse@chromium.org [Tue, 16 Mar 2010 16:07:19 +0000 (16:07 +0000)]
Use untagged int32 values in evaluation of side-effect free expressions.
Review URL: http://codereview.chromium.org/975001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bug in the count operation where we statically know the input is a smi.
fschneider@chromium.org [Tue, 16 Mar 2010 16:03:40 +0000 (16:03 +0000)]
Fix bug in the count operation where we statically know the input is a smi.

Even if we know that the input to a count operation is a smi we still need to check if the result overflowed (and becomes a heap number).

Also fix the smi loop analysis to take two border cases correctly into account.

Review URL: http://codereview.chromium.org/1040002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd a special case in Math.round for a SMI result. Also change the implementation...
oleg@chromium.org [Tue, 16 Mar 2010 13:23:41 +0000 (13:23 +0000)]
Add a special case in Math.round for a SMI result. Also change the implementation for non-SMI case.
Review URL: http://codereview.chromium.org/981002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd heuristic for flattening strings before comparing them.
vitalyr@chromium.org [Tue, 16 Mar 2010 12:30:04 +0000 (12:30 +0000)]
Add heuristic for flattening strings before comparing them.

Also switched to using CompareChars instead of memcmp since it's
faster than gcc's builtin and on par with msvc's builtin.

Review URL: http://codereview.chromium.org/991002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoTake ARM big-endian floating point numbers into account in FastD2UI.
lrn@chromium.org [Tue, 16 Mar 2010 12:20:52 +0000 (12:20 +0000)]
Take ARM big-endian floating point numbers into account in FastD2UI.

Review URL: http://codereview.chromium.org/996004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPropagate reaching definitions to the instuctions of a block.
kmillikin@chromium.org [Tue, 16 Mar 2010 10:54:02 +0000 (10:54 +0000)]
Propagate reaching definitions to the instuctions of a block.

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

14 years agoFix, again, assertion so that it also compiles on Mac.
lrn@chromium.org [Tue, 16 Mar 2010 10:38:17 +0000 (10:38 +0000)]
Fix, again, assertion so that it also compiles on Mac.

Review URL: http://codereview.chromium.org/993004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bad use of OffsetFrom that fails on ARM (sizeof(Object) wasn't 1).
lrn@chromium.org [Tue, 16 Mar 2010 09:56:06 +0000 (09:56 +0000)]
Fix bad use of OffsetFrom that fails on ARM (sizeof(Object) wasn't 1).

Review URL: http://codereview.chromium.org/1043001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix build problem on arm compiler.
lrn@chromium.org [Tue, 16 Mar 2010 09:10:11 +0000 (09:10 +0000)]
Fix build problem on arm compiler.

Review URL: http://codereview.chromium.org/975005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoLiveEdit: patch positions in function
peter.rybin@gmail.com [Mon, 15 Mar 2010 21:06:51 +0000 (21:06 +0000)]
LiveEdit: patch positions in function

Review URL: http://codereview.chromium.org/914003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPort of string plus smi optimization from ia32 to x64 and ARM.
vegorov@chromium.org [Mon, 15 Mar 2010 17:11:08 +0000 (17:11 +0000)]
Port of string plus smi optimization from ia32 to x64 and ARM.
Review URL: http://codereview.chromium.org/668254

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoReview URL: http://codereview.chromium.org/968001
oleg@chromium.org [Mon, 15 Mar 2010 17:04:07 +0000 (17:04 +0000)]
Review URL: http://codereview.chromium.org/968001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoConverted String.prototype.split with string to C++.
lrn@chromium.org [Mon, 15 Mar 2010 15:27:11 +0000 (15:27 +0000)]
Converted String.prototype.split with string to C++.

Review URL: http://codereview.chromium.org/875001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoJust grow elements if they happen to be at the edge of new space.
antonm@chromium.org [Mon, 15 Mar 2010 15:16:04 +0000 (15:16 +0000)]
Just grow elements if they happen to be at the edge of new space.

Review URL: http://codereview.chromium.org/945002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdded fast case for shift operations when the left parameter is a double and we know...
ricow@chromium.org [Mon, 15 Mar 2010 14:24:37 +0000 (14:24 +0000)]
Added fast case for shift operations when the left parameter is a double and we know that the right parameter is a smi.
Review URL: http://codereview.chromium.org/955001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoStart migrating profiles processing to C++.
mikhail.naganov@gmail.com [Mon, 15 Mar 2010 14:11:19 +0000 (14:11 +0000)]
Start migrating profiles processing to C++.

Adding code for maintaining (address -> name) mapping and building
call trees.

Review URL: http://codereview.chromium.org/910002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd static analysis to AST expressions that records whether a negative zero will...
whesse@chromium.org [Mon, 15 Mar 2010 14:03:36 +0000 (14:03 +0000)]
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

14 years agoAdd Array.concat builtin for the most common case.
antonm@chromium.org [Mon, 15 Mar 2010 10:52:38 +0000 (10:52 +0000)]
Add Array.concat builtin for the most common case.

Review URL: http://codereview.chromium.org/954001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoOptimized Array.prototype.{lastIndexOf,indexOf} by special casing comparison to undef...
lrn@chromium.org [Mon, 15 Mar 2010 10:14:59 +0000 (10:14 +0000)]
Optimized Array.prototype.{lastIndexOf,indexOf} by special casing comparison to undefined.

Review URL: http://codereview.chromium.org/851008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoPrepare push of version 2.1.4 to trunk.
vegorov@chromium.org [Mon, 15 Mar 2010 10:04:34 +0000 (10:04 +0000)]
Prepare push of version 2.1.4 to trunk.

TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/961001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoSome cosmetic issues.
antonm@chromium.org [Fri, 12 Mar 2010 18:27:31 +0000 (18:27 +0000)]
Some cosmetic issues.

Review URL: http://codereview.chromium.org/903004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRemove now obsolete comment.
antonm@chromium.org [Fri, 12 Mar 2010 16:54:35 +0000 (16:54 +0000)]
Remove now obsolete comment.

Now builtins only process fast case when there is no need to lift elements from
the prototypes.

TBR=ager@chromium.org

Review URL: http://codereview.chromium.org/890004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoOnly invoke reaching definitions if there are >0 variables and >0 definitions.
fschneider@chromium.org [Fri, 12 Mar 2010 15:01:05 +0000 (15:01 +0000)]
Only invoke reaching definitions if there are >0 variables and >0 definitions.

Review URL: http://codereview.chromium.org/885004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoSimple bugfix in reaching definitions.
kmillikin@chromium.org [Fri, 12 Mar 2010 14:06:04 +0000 (14:06 +0000)]
Simple bugfix in reaching definitions.

We only track definitions of stack-allocated variables.  Trying to
look up other variables in the environment is a bug.

Review URL: http://codereview.chromium.org/843006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoImplement a custom call compiler for Array.pop.
antonm@chromium.org [Fri, 12 Mar 2010 13:45:31 +0000 (13:45 +0000)]
Implement a custom call compiler for Array.pop.

Review URL: http://codereview.chromium.org/870007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix bug in assigned variables analysis.
fschneider@chromium.org [Fri, 12 Mar 2010 13:12:08 +0000 (13:12 +0000)]
Fix bug in assigned variables analysis.

Property stores were not visited correctly by the visitor.
I fixed this issue by visiting property stores by visiting
receiver and key directly (and not calling visit on the lhs property
 ast node)

Review URL: http://codereview.chromium.org/903003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd a predicate IsPrimitive to AST Expression nodes.
kmillikin@chromium.org [Fri, 12 Mar 2010 13:10:42 +0000 (13:10 +0000)]
Add a predicate IsPrimitive to AST Expression nodes.

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

14 years agoRewrite the function that converts timestamp to year, month and day in C++.
oleg@chromium.org [Fri, 12 Mar 2010 13:01:32 +0000 (13:01 +0000)]
Rewrite the function that converts timestamp to year, month and day in C++.

Review URL: http://codereview.chromium.org/811006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix presubmit error.
kmillikin@chromium.org [Fri, 12 Mar 2010 10:39:31 +0000 (10:39 +0000)]
Fix presubmit error.

Single argument constructors should be marked explicit.

TBR=fschneider@chromium.org

Review URL: http://codereview.chromium.org/876005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoCompute reaching definitions.
kmillikin@chromium.org [Fri, 12 Mar 2010 10:35:45 +0000 (10:35 +0000)]
Compute reaching definitions.

Use the classical worklist algorithm to compute reaching definitions.
All nodes are initially put on the worklist.  Until the worklist is
empty, nodes are removed, their RD_in is recomputed, and if it changes
their successors are added to the worklist.

Review URL: http://codereview.chromium.org/853004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix treatment of const variables in assigned variable analysis.
fschneider@chromium.org [Fri, 12 Mar 2010 10:20:31 +0000 (10:20 +0000)]
Fix treatment of const variables in assigned variable analysis.

Const variables are not considered as trivial sub-expressions since
we have the check for the hole value as a side-effect.

Review URL: http://codereview.chromium.org/849003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix issues with compiling V8 with LLVM Clang
sgjesse@chromium.org [Fri, 12 Mar 2010 10:20:01 +0000 (10:20 +0000)]
Fix issues with compiling V8 with LLVM Clang

Added this-> in some places where accessing a method on a templated base class.

Added #include <strings.h> for bit_cast, moved it to utils.h and renamed it to BitCast.

Patch by Evan Martin <evan@chromium.org>, see http://codereview.chromium.org/894001 and http://codereview.chromium.org/888003
Review URL: http://codereview.chromium.org/888005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd SSE2 instructions to disassembler and movmskpd SSE2 instruction to assembler.
whesse@chromium.org [Fri, 12 Mar 2010 08:36:01 +0000 (08:36 +0000)]
Add SSE2 instructions to disassembler and movmskpd SSE2 instruction to assembler.
Review URL: http://codereview.chromium.org/865002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoProbe number dictionaries in generated code on ia32.
ager@chromium.org [Fri, 12 Mar 2010 08:21:10 +0000 (08:21 +0000)]
Probe number dictionaries in generated code on ia32.

With my previous change to limit memory for object literals, we get more slow-case elements and this makes up for the slowdown when loading from those slow-case elements.

The most complicated part here is the computation of the integer hash code.  We might want to simplify the integer hash function.
Review URL: http://codereview.chromium.org/857003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFirst take on custom call generators.
antonm@chromium.org [Thu, 11 Mar 2010 16:24:31 +0000 (16:24 +0000)]
First take on custom call generators.

Review URL: http://codereview.chromium.org/669061

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoInitialize reaching definitions state for all flow graph nodes.
kmillikin@chromium.org [Thu, 11 Mar 2010 16:24:05 +0000 (16:24 +0000)]
Initialize reaching definitions state for all flow graph nodes.

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

14 years agoFast double-to-ascii conversion.
floitschV8@gmail.com [Thu, 11 Mar 2010 14:49:35 +0000 (14:49 +0000)]
Fast double-to-ascii conversion.
Review URL: http://codereview.chromium.org/866002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoMinor refactorings to use some recently added methods.
antonm@chromium.org [Thu, 11 Mar 2010 13:56:49 +0000 (13:56 +0000)]
Minor refactorings to use some recently added methods.

Review URL: http://codereview.chromium.org/760002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoReland 4068 which wrapped Array methods into native builtins (reverted in 4075).
antonm@chromium.org [Thu, 11 Mar 2010 13:13:21 +0000 (13:13 +0000)]
Reland 4068 which wrapped Array methods into native builtins (reverted in 4075).

Review URL: http://codereview.chromium.org/857002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix compile of MIPS port
sgjesse@chromium.org [Thu, 11 Mar 2010 10:56:49 +0000 (10:56 +0000)]
Fix compile of MIPS port

TBR=alexandre.rames@gmail.com
Review URL: http://codereview.chromium.org/870002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix a bug in smi loop analysis.
fschneider@chromium.org [Thu, 11 Mar 2010 10:37:29 +0000 (10:37 +0000)]
Fix a bug in smi loop analysis.

Add a missing null check that can hit when the for-loop index is
not a variable.

Review URL: http://codereview.chromium.org/840002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoDo not waste space for the fast-case elements backing storage for
ager@chromium.org [Thu, 11 Mar 2010 10:34:29 +0000 (10:34 +0000)]
Do not waste space for the fast-case elements backing storage for
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

14 years agoFix assigned variables analysis.
fschneider@chromium.org [Thu, 11 Mar 2010 10:28:40 +0000 (10:28 +0000)]
Fix assigned variables analysis.

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

14 years agoFix presubmit error
sgjesse@chromium.org [Thu, 11 Mar 2010 09:49:47 +0000 (09:49 +0000)]
Fix presubmit error

TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/867002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoMake the assumption on the minimum buffer size for GetLogLines explicit.
mikhail.naganov@gmail.com [Thu, 11 Mar 2010 09:48:01 +0000 (09:48 +0000)]
Make the assumption on the minimum buffer size for GetLogLines explicit.

Review URL: http://codereview.chromium.org/799008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdd fuzzing support for inline runtime functions
sgjesse@chromium.org [Thu, 11 Mar 2010 09:27:12 +0000 (09:27 +0000)]
Add fuzzing support for inline runtime functions

The inline runtime functions are now included in the fuzzing of the natives. The chack for the expected number of arguments passed have been moved to the parser which will generate a syntax error if a runtime function (either C++ or inline) is called with a different number of arguments than expected.
Review URL: http://codereview.chromium.org/573056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix code cache lookup for keyed IC's
sgjesse@chromium.org [Thu, 11 Mar 2010 08:52:31 +0000 (08:52 +0000)]
Fix code cache lookup for keyed IC's

For keyed IC's the name is not necessarily a string.

BUG=http://crbug.com/37853
TEST=test/mjsunit/regress/regress-crbug-37853.js
Review URL: http://codereview.chromium.org/872001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoMath.abs rewrited to not use Runtime.
serya@chromium.org [Thu, 11 Mar 2010 08:31:15 +0000 (08:31 +0000)]
Math.abs rewrited to not use Runtime.

Review URL: http://codereview.chromium.org/799006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRevert grisu commits.
floitschV8@gmail.com [Wed, 10 Mar 2010 21:26:32 +0000 (21:26 +0000)]
Revert grisu commits.
Review URL: http://codereview.chromium.org/804005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoAdding missing file.
floitschV8@gmail.com [Wed, 10 Mar 2010 21:08:39 +0000 (21:08 +0000)]
Adding missing file.
Review URL: http://codereview.chromium.org/825004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFast algorithm for double->string conversion.
floitschV8@gmail.com [Wed, 10 Mar 2010 20:49:14 +0000 (20:49 +0000)]
Fast algorithm for double->string conversion.
Review URL: http://codereview.chromium.org/619005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoRevert changes 4088 and 4087 to fix build.
whesse@chromium.org [Wed, 10 Mar 2010 20:41:11 +0000 (20:41 +0000)]
Revert changes 4088 and 4087 to fix build.
Review URL: http://codereview.chromium.org/805005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

14 years agoFix x64 and arm build.
fschneider@chromium.org [Wed, 10 Mar 2010 17:30:35 +0000 (17:30 +0000)]
Fix x64 and arm build.

Review URL: http://codereview.chromium.org/816003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00