Commit Graph

11468 Commits

Author SHA1 Message Date
svenpanne@chromium.org
4525879eb0 Print range and type for phis, too.
To comply with c1visualizer syntax, the format for ranges and types has changed
slightly. Furthermore, the format for phi uses has been changed a bit for more
consistency, too.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/14882006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-13 11:51:49 +00:00
danno@chromium.org
cf1b80703f Improve trace_opt output to help find compilation problems
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/14978003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-13 11:10:31 +00:00
mstarzinger@chromium.org
883d9c4b1c Prevent flushing of code that was set with %SetCode.
This makes sure that shared function infos that break the one-to-one
mapping to code are marked as un-flushable. Otherwise enqueuing through
the GC meta-data field in the code object doesn't work.

R=rossberg@chromium.org
TEST=cctest/test-api/Threading4

Review URL: https://codereview.chromium.org/14710015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-13 10:59:00 +00:00
danno@chromium.org
05e8e0e7b4 Elide hole checks on KeyedLoads of holey double arrays
Improves NavierStokes by about 5%

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/15014020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-13 07:35:26 +00:00
svenpanne@chromium.org
f853b08ad0 Fixed constant folding in HMod.
We have to check for overflow before attempting to do a modulo operation,
otherwise Crankshaft itself segfaults on some platforms, e.g. ia32. Added tests
even for division, where the problem doesn't show up, just to be sure...

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/14617014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-13 07:32:38 +00:00
palfia@homejinni.com
d9195153fc MIPS: Track heap objects.
Port r14625 (bfb25ed8)

BUG=

Review URL: https://codereview.chromium.org/15102002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 22:48:41 +00:00
palfia@homejinni.com
4e1acaa674 MIPS: Call to the right slow method.
Port r14608 (339e0877)

BUG=

Review URL: https://codereview.chromium.org/14980008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 22:47:49 +00:00
verwaest@chromium.org
d15ecb5b8c Return failure when allocating maps fails.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 17:43:04 +00:00
verwaest@chromium.org
df57747fc4 Track heap objects.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 17:17:50 +00:00
mstarzinger@chromium.org
d97fe8d4df Add Persistent::ClearAndLeak.
This will be relevant after Persistent is changed to Dispose itself when
destructed. With Persistent::ClearAndLeak, Blink can take the ownership of the
object pointed by a Persistent and avoid it getting destructed.

BUG=
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/15023010

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 14:04:51 +00:00
mstarzinger@chromium.org
0b7c1450f1 Fix bogus arguments length check in StringLocaleCompare.
R=rossberg@chromium.org
TEST=test262/15.5.4.9_3

Review URL: https://codereview.chromium.org/14972015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 13:50:10 +00:00
ulan@chromium.org
9e620bb689 Revert r14610 because of test-262 failures.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 13:21:24 +00:00
palfia@homejinni.com
1235ce419a MIPS: Fix NaN handling for start and end indexes in ArraySlice.
Casting NaN to int is unpredictable, on different architectures it produces different int value.

TEST=test262/S15.4.4.10_A2.1_T2, test262/S15.4.4.10_A2.2_T2

BUG=

Review URL: https://codereview.chromium.org/14812014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 13:04:42 +00:00
mstarzinger@chromium.org
64651ed565 Update Test262 harness to recent version.
R=rossberg@chromium.org
TEST=test262

Review URL: https://codereview.chromium.org/14644015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 13:00:43 +00:00
wingo@igalia.com
3f09e0a3d8 Remove separate maps for function instances
ES3 specified that functions created via Function() would have
enumerable prototypes, unlike function literals.  For this reason, V8
has always had two prototypes for functions: "function_map" for
literals, and "function_instance_map" for "function instances": those
functions created by Function().

However, since 2009 or so, both maps have been the same!  Both have had
writable, non-enumerable prototypes.  Moreover, ES5 changed to specify
that function instances would have non-enumerable prototypes.

This patch removes the separate maps for function instances in sloppy
and strict mode.

R=mstarzinger@chromium.org
TEST=mjsunit/function-prototype
BUG=

Review URL: https://codereview.chromium.org/14829005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 12:59:20 +00:00
mstarzinger@chromium.org
0a224352ad Deprecate the version of Context::New which returns a Persistent.
BUG=
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/15059016

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 12:48:53 +00:00
svenpanne@chromium.org
22159a1cf2 Robustification: Always assign an environment to LModI when a deopt is possible.
Currently things only work because of a very fragile interaction between minus
zero propagation and range analysis.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/14904008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 12:45:14 +00:00
verwaest@chromium.org
d24d961638 Clear new-space promotion if the type is smi.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 12:19:34 +00:00
svenpanne@chromium.org
911c14556d Cleaned up Crankshaft pipeline a bit.
Two tiny changes:

  * Some phases were missing an HPhase, which was added, so we can now see all
    phases in the visualizer output.

  * Consistently test commandline flags directly in the pipeline, making it
    clearer which parts are optional and which are not.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/15074005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 11:32:13 +00:00
mstarzinger@chromium.org
eb18db3ab4 Skip flaky regress-crbug-160010 regression test.
R=ulan@chromium.org
BUG=chromium:160010
TEST=mjsunit/regress/regress-crbug-160010

Review URL: https://codereview.chromium.org/14908006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 10:39:16 +00:00
mstarzinger@chromium.org
8829a94c24 Remove obsolete HArrayLiteral instruction.
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/14847013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 09:52:08 +00:00
mstarzinger@chromium.org
efe91b56f6 Remove obsolete HObjectLiteral instruction.
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/14972008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 09:47:05 +00:00
ulan@chromium.org
cc1053379d Use AssumeRepresentation when the representation is known and will not change.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 09:31:28 +00:00
ulan@chromium.org
36910718fe Verify that no-side-effects scope does not add unsafe phis and does not change push-pop balance of the environment.
R=danno@chromium.org
BUG=v8:2671

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 09:26:53 +00:00
verwaest@chromium.org
e40419d998 Turn on tracking of fields.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 09:12:52 +00:00
verwaest@chromium.org
6246929762 Call to the right slow method.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 09:12:30 +00:00
ulan@chromium.org
f68c4452d3 ARM: fix constant pool length emitted for disassembler.
R=jfb@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 09:03:51 +00:00
verwaest@chromium.org
5068079aff Always use BuildCheckNonSmi, and don't emit check if HeapObject.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 08:58:58 +00:00
verwaest@chromium.org
addb8f96c1 Don't CheckSmi when type is Smi.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 08:39:37 +00:00
ulan@chromium.org
dabcf04670 Prepare push to trunk. Now working on version 3.19.1.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-10 08:13:08 +00:00
plind44@gmail.com
4b8d06fdf6 ARM: Fix register name in AllocateAsciiConsString.
BUG=
R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/15024004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 22:21:54 +00:00
palfia@homejinni.com
45ba023b47 MIPS: Use mutable heapnumbers to store doubles in fields.
Port r14597 (6e9d7149)

BUG=

Review URL: https://codereview.chromium.org/14607009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 22:15:27 +00:00
mvstanton@chromium.org
ef5211d8af Parallel compilation bug: LCallNewArray dereferenced a handle unnecessarily.
BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/14761010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 16:48:27 +00:00
danno@chromium.org
7ec7a280d1 Fixed one spelling error.
InitilizeVtuneForV8 --> InitializeVtuneForV8

R=danno@chromium.org

Review URL: https://codereview.chromium.org/14830004

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 16:17:23 +00:00
verwaest@chromium.org
52008429b7 Use mutable heapnumbers to store doubles in fields.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 15:02:08 +00:00
ulan@chromium.org
cd4e9866b7 Fix environment in HOptimizedGraphBuilder::VisitCountOperation. Follow-up for r14584.
R=danno@chromium.org
BUG=v8:2671
TEST=mjsunit/regress/regress-2671-1.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 14:58:06 +00:00
verwaest@chromium.org
154719e8b3 Support merging with distinct attributes.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 14:40:36 +00:00
verwaest@chromium.org
abc0c2767e Always generalize all representations when no transition is inserted.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 14:19:48 +00:00
verwaest@chromium.org
4c2c665420 Turn off tracking of fields for the roll.
Revert polymorphic stores suspect of crashes.

Revert "Turn on tracking of fields."
Revert "Turn polymorphic stores monomorphic if store sequence matches."
Revert "Fix polymorphic store."

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 14:18:30 +00:00
svenpanne@chromium.org
bd8df839c6 Consistently start (almost) all AstPrinter::VisitFoo functions with IndentedScope.
This makes IndentedScope the single point where we can print additional info in
the future, like e.g. AST IDs (at least when the TODOs are fixed). Minor other
cleanups.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/15060005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 13:24:45 +00:00
svenpanne@chromium.org
2bb4603cb1 Refactoring only: Removed unused argument from IndentedScope constructor.
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/14864008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 11:06:46 +00:00
verwaest@chromium.org
3d7e2912ba Fix polymorphic store.
Review URL: https://chromiumcodereview.appspot.com/14696011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 10:34:51 +00:00
verwaest@chromium.org
e5feaf31fa Turn polymorphic stores monomorphic if store sequence matches.
Review URL: https://chromiumcodereview.appspot.com/14796012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 09:39:26 +00:00
mvstanton@chromium.org
f5ad8e4469 Turn off optimize-constructed-arrays flag to investigate ARM perf issue
BUG=
R=danno@chromium.org

Review URL: https://codereview.chromium.org/14753007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 08:49:29 +00:00
danno@chromium.org
bd9274436c Bias commutative single-use register inputs and support lea adds
This improves register allocation for many common add and multiply patterns on ia32 and x64 by reducing register pressure.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/14856015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 08:37:24 +00:00
wingo@igalia.com
75d939aceb Generators save and restore stack handlers
This CL adds machinery to unwind stack handlers from the stack and store
them into a generator's operand array.  It also includes routines to
reinstate them.  Together this allows generators to yield within
try/catch and try/finally blocks.

BUG=v8:2355
R=mstarzinger@chromium.org
TEST=mjsunit/harmony/generators-iteration

Review URL: https://codereview.chromium.org/14031028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 08:08:23 +00:00
dcarney@chromium.org
d4fd9db342 fix nosnapshot test failure in 14793004, do not deprecate function
BUG=
TBR=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/14947005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 07:45:16 +00:00
ulan@chromium.org
e5a29e8ff9 Do not change environment between simulate and scope with no observable side-effects in HandlePropertyAssignment.
LChunkBuilder reconstructs the environment by applying simulates. A scope with no observable side-effects has no simulates. If the scope deoptimizes, then LChunkBuilder would miss the changes to the environment between the last simulate and the scope.

R=danno@chromium.org
BUG=v8:2671
TEST=mjsunit/regress/regress-2671.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 07:40:28 +00:00
palfia@homejinni.com
064349bae4 MIPS: Becuase of cross-context calls, hydrogen-based Array constructor needs to ensure the array constructor pointer passed in matches that of the current context.
Port r14581 (32067c11)

BUG=

Review URL: https://codereview.chromium.org/14761004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-07 23:15:27 +00:00
palfia@homejinni.com
1391e80f26 MIPS: Generators return boxed values
Port r14563 (6d01adb8)

Original commit message:
Generators now box their return values in object literals of the form

  { value: VAL, done: DONE }

where DONE is false for yield expressions, and true for return
statements.

BUG=

Review URL: https://codereview.chromium.org/15009008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-07 23:14:36 +00:00