Commit Graph

8349 Commits

Author SHA1 Message Date
yangguo@chromium.org
5a06f5d5f6 Revert r19024 due to performance regressions.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9615010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-06 11:52:46 +00:00
yangguo@chromium.org
20a6c9ba31 Inline Math.random in crankshaft (ia32).
BUG=
TEST=cctest/test-random.cc

Review URL: https://chromiumcodereview.appspot.com/9615008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-06 11:31:51 +00:00
mstarzinger@chromium.org
30305150fe Blocks that contain soft deopts have no side effects.
R=fschneider@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9188005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-06 10:57:54 +00:00
mstarzinger@chromium.org
2a2ed5004f Update unicode tables to version 6.1.0.
R=erik.corry@gmail.com
BUG=v8:1965

Review URL: https://chromiumcodereview.appspot.com/9615005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-06 09:43:12 +00:00
svenpanne@chromium.org
7c7baf3255 Refactorings only: More uses of "To" template and comment fixes.
Review URL: https://chromiumcodereview.appspot.com/9594018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-06 09:19:25 +00:00
ulan@chromium.org
b9d29ca87e Prepare push to trunk. Now working on version 3.9.16.
R=yangguo@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9600042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-06 08:39:40 +00:00
mikhail.naganov@gmail.com
299bf5652d Fix the heap profiler crash caused by memory layout changes between passes.
The heap profiler randomly crashed because of memory corruption caused
by unexpected heap objects layout changes occured between count and fill
passes. The changes lead the number of retainers counted on the first pass
did not match its number on the fill pass leading to the out of bounds
array access.

Besides that the mark bit scheme has been changed to a plain vector one in
dominators building algorithm. It is up to 4x faster because of smaller
memory access footprint.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9594020
Patch from Alexei Filippov <alexeif@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 18:13:29 +00:00
vegorov@chromium.org
97b94a9150 Ensure that inner pseudo-chunks are correctly initialized in FreeQueuedChunks.
Fields introduced with guarding code space pages (area_start_, area_end_) were not correctly handled which lead to errors in StoreBuffer filtering.

R=mstarzinger@chromium.org
TEST=mozilla/data/js1_5/GC/regress-203278-2.js

Review URL: https://chromiumcodereview.appspot.com/9600020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 16:39:25 +00:00
danno@chromium.org
5ce20b3387 Recfactor core HasElement functionality into ElementsAccessors
Review URL: https://chromiumcodereview.appspot.com/9572014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 16:14:34 +00:00
danno@chromium.org
20a29c9a0f MIPS: Inline ordered relational compares of mixed double/undefined values.
Port r10905 (2a997cf).

Original commit message:

Allow Crankshaft to inline ordered relational comparisons (<, >, <=, >=) that have undefined arguments in addition to double value arguments (rather than calling the generic Compare stub).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9583038
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 15:40:25 +00:00
yangguo@chromium.org
efcad23287 Generate more compact code in regexp assembler with near jumps.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9600016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 14:41:07 +00:00
mstarzinger@chromium.org
c113ea7cf8 Enable constructor inlining by default again.
R=vegorov@chromium.org
TEST=mjsunit/compiler/inline-construct

Review URL: https://chromiumcodereview.appspot.com/9601010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 14:20:58 +00:00
mstarzinger@chromium.org
8c2708de6d Fix Error.prototype.toString to throw TypeError.
R=rossberg@chromium.org
BUG=v8:1980
TEST=mjsunit/function-call,mjsunit/regress/regress-1980

Review URL: https://chromiumcodereview.appspot.com/9568005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 13:57:48 +00:00
fschneider@chromium.org
dfe0101cad Fix column formatting of --hydrogen-stats output by shortening a line.
TBR=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9578013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 13:07:32 +00:00
mstarzinger@chromium.org
240e818f0c Fix inlining of strict mode constructors.
Inlined strict mode functions (that are not called as methods) will get
their receiver reset to undefined. This should not happen when inlining
constructors.

This change also simplifies the test suite to reuse the same closures
into which constructors get inlined and use gc() to force V8 to forget
collected type feedback.

R=vegorov@chromium.org
TEST=mjsunit/compiler/inline-construct

Review URL: https://chromiumcodereview.appspot.com/9597017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 12:46:50 +00:00
svenpanne@chromium.org
98b12bc085 Allocate new AccessorPairs with holes instead of undefined.
This is essential for the upcoming map sharing with accessors, and we aleady
have enough machinery to handle the holes now. Furthermore, use "To" template in
2 nearby functions, and made naming a bit more consistent.

In a nutshell: This CL should have no visible effect at all at the moment.
Famous last words...

Review URL: https://chromiumcodereview.appspot.com/9594013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 12:26:19 +00:00
svenpanne@chromium.org
371ed3e974 Use an enum for indicating the component of an AccessorPair instead of a boolean flag.
In addition, this CL introduces a tiny new helper, which will come in handy later,
plus some minor cleanup.

Review URL: https://chromiumcodereview.appspot.com/9600013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 12:11:28 +00:00
yangguo@chromium.org
9efc76ccbf Fix double-rounding in strtod for MinGW.
BUG=v8:1062
TEST=

Review URL: https://chromiumcodereview.appspot.com/9578011
Patch from Jonathan Liu <net147@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 10:04:10 +00:00
yangguo@chromium.org
71c5924e63 Simplify silent abort by raising SIGABRT directly.
Review URL: https://chromiumcodereview.appspot.com/9597012
Patch from Jonathan Liu <net147@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 09:52:14 +00:00
yangguo@chromium.org
5ce562cda8 Reland r10908 (Ensure consistent result of transcendental function0.)
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9583037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 08:17:16 +00:00
yangguo@chromium.org
4279f87395 Revert r10913.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9602006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-05 07:55:27 +00:00
yangguo@chromium.org
df78fcc384 Set x86 FPU precision to 64-bit for MinGW. Original patch by Jonathan Liu <net147@gmail.com>.
BUG=v8:1062
TEST=test-strtod.cc

Review URL: https://chromiumcodereview.appspot.com/9599006
Patch from Jonathan Liu <net147@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-04 10:49:25 +00:00
yangguo@chromium.org
2a2474d297 Fix MinGW-w64 compilation
Contributed by net147@gmail.com

BUGS=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9581045
Patch from Jonathan Liu <net147@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-03 11:07:29 +00:00
yangguo@chromium.org
2f7dfd7f6d Fix MinGW64 build.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9584047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-03 10:19:12 +00:00
mikhail.naganov@gmail.com
8454eeb72d Fix corrupted snapshot serializaton on ia32.
BUG=v8/1985
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9582006
Patch from Alexei Filippov <alexeif@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 15:31:04 +00:00
yangguo@chromium.org
f2699b66cf Revert r10908 due to flakiness and crashes.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9580007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 15:00:52 +00:00
yangguo@chromium.org
12f2099993 Ensure consistent result of transcendental functions.
BUG=
TEST=regress-transcendental.js

Review URL: https://chromiumcodereview.appspot.com/9572009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 14:33:15 +00:00
svenpanne@chromium.org
21e43e14eb Fixed presubmit error.
Review URL: https://chromiumcodereview.appspot.com/9584011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 14:15:28 +00:00
svenpanne@chromium.org
5033b9b6d1 Re-land CL 9466047.
Main change from the original CL: Call::ComputeTarget does not use IsProperty
anymore, because this would potentially need a holder, which we don't have
here. Using Map::LookupInDescriptors with a NULL holder is a bit fishy in
general, because one has to be *extremely* careful when using its LookupResult.

The original CL made Chrome's NetInternalsTest.netInternalsTourTabs browser test
fail, but it's a mystery how this could happen: We should never reach
Call::ComputeTarget via Call::RecordTypeFeedback with a CALLBACKS property,
because we never consider calls to them monomorphic, which is in turn because of
the stub cache leaving them in the pre-monomorphic state. Therefore, I don't
have a clue how to write a regression test for this...

As an additional tiny bonus, the --trace-opt output for deoptimizations has been
improved.

Review URL: https://chromiumcodereview.appspot.com/9584003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 14:03:59 +00:00
danno@chromium.org
57a0c6c6e3 Inline ordered relational compares of mixed double/undefined values.
Allow Crankshaft to inline ordered relational comparisons (<, >, <=, >=) that have undefined arguments in addition to double value arguments (rather than calling the generic Compare stub).

R=fschneider@chromium.org
TEST=test/mjsunit/comparison-ops-and-undefined.js

Review URL: https://chromiumcodereview.appspot.com/9584006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 13:40:14 +00:00
fschneider@chromium.org
751d53d9d2 Make trace-hydrogen output more visualizer-friendly.
Review URL: https://chromiumcodereview.appspot.com/9580005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 13:05:59 +00:00
vegorov@chromium.org
f416a684b2 Disable constructor inlining.
There are failures on Kraken.

R=fschneider@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9585011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 12:50:42 +00:00
yurys@chromium.org
827e827b38 Cache result of ScriptNameOrSourceURL function. The function is quite slow on large(several MBs) scripts which causes significant slowdown when capturing stack trace for such scripts.
Review URL: https://chromiumcodereview.appspot.com/9564012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 12:27:15 +00:00
vegorov@chromium.org
ff6ebf7dff Introduce basic type feedback for for-in statements to avoid deopts.
R=fschneider@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9571001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-02 11:33:33 +00:00
mstarzinger@chromium.org
774e3f4575 MIPS: Properly check fast array property in StoreIC::GenerateArrayLength.
This is the cleanup of an old todo from r10254 (93483b6eb).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9570010
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 17:20:11 +00:00
fschneider@chromium.org
fde2ae0fc7 Prepare push to trunk. Now working on version 3.9.15.
Review URL: https://chromiumcodereview.appspot.com/9570016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 15:37:17 +00:00
fschneider@chromium.org
570a499bce MIPS: Additional explicit zone allocation changes.
These changes were not included in r10863 (226afed4) because of patch submission ordering.

BUG=
TEST=
Patch from Daniel Kalmar <kalmard@homejinni.com>.
Review URL: https://chromiumcodereview.appspot.com/9566003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 12:56:02 +00:00
fschneider@chromium.org
1e40f7ac2c Fix a register assignment bug in typed array stores without SSE3 available.
The old code used a separate HToInt32 instruction which had a wrong register
constraint for the input register which caused wrong result when the stored value
is used after a typed array store. (UseRegister instead of UseTempRegister) when no
SSE3 is available.

This change fixes it by replacing HToInt32 with the corresponding HChange
instruction which has correct register contraints.

TEST=mjsunit/compiler/regress-toint32.js
Review URL: https://chromiumcodereview.appspot.com/9565007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 12:45:46 +00:00
mstarzinger@chromium.org
1009e414b6 MIPS: Implement inlined object allocation in Crankshaft.
Port r10881 (0d25c61e).

Original commit message:

Generates inlined code for object allocation specific to the initial map
of the given constructor function. Also forces completion of inobject
slack tracking while crankshafting to finalize instance size of these
objects.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9569008
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 12:38:58 +00:00
erik.corry@gmail.com
4aa32dbdb4 MIPS: Fix secondary stub cache and add a test for the stub cache lookups. This is a commit of https://chromiumcodereview.appspot.com/9566004 for Daniel Kalmar
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 12:12:56 +00:00
mstarzinger@chromium.org
4eaaced657 Improve constructor inlining backout.
This improves the generated hydrogen graph by also removing the obsolete
HCheckFunction instruction if we backout of inlining constructors.

R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9537004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 11:50:11 +00:00
yangguo@chromium.org
3a457381d7 Update test262 expectations concerning 64-bit precision double.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9540010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 11:37:10 +00:00
fschneider@chromium.org
a8980079a0 Add flag --trace-phase to selectively produce IR trace output.
By default --trace-hydrogen only generates the final IR (before
code generation). The other phases can be printed by specifying
them by their first letter. Currently H=HIR, L=LIR or Z=final IR (default)
are recognized.
Review URL: https://chromiumcodereview.appspot.com/9535009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 11:33:37 +00:00
mstarzinger@chromium.org
fd5640cf7a Implement inlined object allocation in Crankshaft.
Generates inlined code for object allocation specific to the initial map
of the given constructor function. Also forces completion of inobject
slack tracking while crankshafting to finalize instance size of these
objects.

R=vegorov@chromium.org
TEST=mjsunit/compiler/alloc-object

Review URL: https://chromiumcodereview.appspot.com/9370019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-01 11:10:28 +00:00
ulan@chromium.org
25ab259f4c Prepare push to trunk. Now working on version 3.9.14.
R=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9535010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-29 15:41:07 +00:00
jkummerow@chromium.org
773c306303 Profiler experiments: prevent self-optimization for V8 Extensions
Review URL: https://chromiumcodereview.appspot.com/9535006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-29 15:08:02 +00:00
erik.corry@gmail.com
448d80db64 Fix stub cache on ARM, broken in 10864.
Review URL: https://chromiumcodereview.appspot.com/9539010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-29 14:38:54 +00:00
yangguo@chromium.org
84eea3e531 Inline one level of recursive call of WriteToFlat for the common case of cons string list.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9536011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-29 14:25:24 +00:00
fschneider@chromium.org
b854d09721 Eliminate overflow check after integer add and sub operation if result is truncated to int32.
Review URL: https://chromiumcodereview.appspot.com/9286002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-29 13:41:18 +00:00
yangguo@chromium.org
c5dbc7b2e1 Change test262 test expectations regarding inaccurate Math functions.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9533007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-29 13:31:10 +00:00