iposva@chromium.org [Tue, 23 Mar 2010 06:04:44 +0000 (06:04 +0000)]
- Remove function boilerplate objects and use SharedFunctionInfos in
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
sgjesse@chromium.org [Mon, 22 Mar 2010 14:31:28 +0000 (14:31 +0000)]
Use bit fields to calculate compare stub minor key
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 [Mon, 22 Mar 2010 14:23:45 +0000 (14:23 +0000)]
Add multithreading test for SamplingCircularQueue, fix implementation.
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 [Mon, 22 Mar 2010 14:07:18 +0000 (14:07 +0000)]
Include initial definitions in reaching definitions analysis.
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 [Mon, 22 Mar 2010 13:21:32 +0000 (13:21 +0000)]
Loop peeling for inner loops.
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 [Mon, 22 Mar 2010 12:19:18 +0000 (12:19 +0000)]
Prepare push to trunk. Now working on version 2.1.8.
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 [Mon, 22 Mar 2010 12:16:11 +0000 (12:16 +0000)]
Revert change 4201.
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 [Mon, 22 Mar 2010 11:55:12 +0000 (11:55 +0000)]
Fix code generation for fast smi loops to support parameters as well.
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 [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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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