mvstanton@chromium.org [Tue, 14 May 2013 15:30:55 +0000 (15:30 +0000)]
Error found in test262 on ARM: BinaryOpStub could call out to a built-in and push parameters without an enclosing frame. This corrupted stackwalking.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14813029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 14 May 2013 15:03:27 +0000 (15:03 +0000)]
Avoid convertion to double when it is not needed.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
15162002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Tue, 14 May 2013 13:10:52 +0000 (13:10 +0000)]
Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough.
Review URL: https://codereview.chromium.org/
14676011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 14 May 2013 12:56:53 +0000 (12:56 +0000)]
Remove HIsNilAndBranch (it's now unused)
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14971005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 14 May 2013 12:04:04 +0000 (12:04 +0000)]
Don't use anonymous types declared in an anonymous union.
They are a non-standard extension (probably in C1X, IIRC), but clang is unhappy
with them when -Wnested-anon-types is enabled, which seems to be implied by
-pedantic.
With this change and the previous fix for clang, we are now -Werror clean, even
on clang 3.3.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
14850016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 14 May 2013 11:45:33 +0000 (11:45 +0000)]
Ensure that soft-deopts don't count against opt_count
This makes sure that Crankshaft doesn't disable optimization to early on hot functions that still contain unexecuted code without type information.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14738009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14658
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 14 May 2013 11:02:20 +0000 (11:02 +0000)]
Fixed linkage for Is template.
With static linkage, clang 3.3 is unhappy about unused functions
template <> inline bool Is<JSFunction>(Object* obj)
template <> inline bool Is<JSArray>(Object* obj)
in any compilation unit apart from acessors.cc.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
14836014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14657
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 14 May 2013 08:13:25 +0000 (08:13 +0000)]
Prepare push to trunk. Now working on version 3.19.2.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15159002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14654
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 14 May 2013 06:53:46 +0000 (06:53 +0000)]
BinaryOpStub::GenerateSmiStub() on 32bit would erroneously patch the IC in case of a gc requirement. Brought the behavior into line with ARM and x64. Also some cleanup to label names.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
15102006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14653
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 14 May 2013 00:28:45 +0000 (00:28 +0000)]
MIPS: Only flush SharedFunctionInfo optimized code cache when necessary
Port r14650 (
d045fbd3)
BUG=
Review URL: https://codereview.chromium.org/
15035007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14652
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 14 May 2013 00:28:01 +0000 (00:28 +0000)]
MIPS: Elide hole checks on KeyedLoads of holey double arrays
Port r14630 (
124d01e7)
Original commit message:
Improves NavierStokes by about 5%
BUG=
Review URL: https://codereview.chromium.org/
14762012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14651
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 13 May 2013 19:22:18 +0000 (19:22 +0000)]
Only flush SharedFunctionInfo optimized code cache when necessary
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14604007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14650
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Mon, 13 May 2013 17:36:26 +0000 (17:36 +0000)]
Don't flush code for generator functions.
R=mstarzinger@chromium.org
BUG=v8:2681
TEST=mjsunit/regress/regress-2681
Review URL: https://codereview.chromium.org/
14731023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14649
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 13 May 2013 16:32:32 +0000 (16:32 +0000)]
Enable harmony_typed_arrays for shared build of d8.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14927014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14648
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 13 May 2013 14:18:43 +0000 (14:18 +0000)]
Enable native implementation of array buffer and typed arrays in d8 and tests.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
15059009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 13 May 2013 14:18:05 +0000 (14:18 +0000)]
stop using AsciiValue
TBR=svenpanne@chomium.org
BUG=
Review URL: https://codereview.chromium.org/
15129002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 13 May 2013 13:48:15 +0000 (13:48 +0000)]
Consistently assume that arithmetic operations can overflow unless one can prove the opposite.
Previously, HDiv never had its CanOverflow flag cleared and HMod had
inverted logic (compared to HAdd, HSub and HMul). Minor cleanups on the way.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14617015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 13 May 2013 13:20:47 +0000 (13:20 +0000)]
Fix Win64 build
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
14978005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 13 May 2013 11:58:10 +0000 (11:58 +0000)]
Fix missing hole check for loads from Smi arrays when all uses are changes
BUG=chromium:233737
Review URL: https://codereview.chromium.org/
14978004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 13 May 2013 11:51:49 +0000 (11:51 +0000)]
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
danno@chromium.org [Mon, 13 May 2013 11:10:31 +0000 (11:10 +0000)]
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
mstarzinger@chromium.org [Mon, 13 May 2013 10:59:00 +0000 (10:59 +0000)]
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
danno@chromium.org [Mon, 13 May 2013 07:35:26 +0000 (07:35 +0000)]
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
svenpanne@chromium.org [Mon, 13 May 2013 07:32:38 +0000 (07:32 +0000)]
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
palfia@homejinni.com [Fri, 10 May 2013 22:48:41 +0000 (22:48 +0000)]
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
palfia@homejinni.com [Fri, 10 May 2013 22:47:49 +0000 (22:47 +0000)]
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
verwaest@chromium.org [Fri, 10 May 2013 17:43:04 +0000 (17:43 +0000)]
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
verwaest@chromium.org [Fri, 10 May 2013 17:17:50 +0000 (17:17 +0000)]
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
mstarzinger@chromium.org [Fri, 10 May 2013 14:04:51 +0000 (14:04 +0000)]
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
mstarzinger@chromium.org [Fri, 10 May 2013 13:50:10 +0000 (13:50 +0000)]
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
ulan@chromium.org [Fri, 10 May 2013 13:21:24 +0000 (13:21 +0000)]
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
palfia@homejinni.com [Fri, 10 May 2013 13:04:42 +0000 (13:04 +0000)]
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
mstarzinger@chromium.org [Fri, 10 May 2013 13:00:43 +0000 (13:00 +0000)]
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
wingo@igalia.com [Fri, 10 May 2013 12:59:20 +0000 (12:59 +0000)]
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
mstarzinger@chromium.org [Fri, 10 May 2013 12:48:53 +0000 (12:48 +0000)]
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
svenpanne@chromium.org [Fri, 10 May 2013 12:45:14 +0000 (12:45 +0000)]
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
verwaest@chromium.org [Fri, 10 May 2013 12:19:34 +0000 (12:19 +0000)]
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
svenpanne@chromium.org [Fri, 10 May 2013 11:32:13 +0000 (11:32 +0000)]
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
mstarzinger@chromium.org [Fri, 10 May 2013 10:39:16 +0000 (10:39 +0000)]
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
mstarzinger@chromium.org [Fri, 10 May 2013 09:52:08 +0000 (09:52 +0000)]
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
mstarzinger@chromium.org [Fri, 10 May 2013 09:47:05 +0000 (09:47 +0000)]
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
ulan@chromium.org [Fri, 10 May 2013 09:31:28 +0000 (09:31 +0000)]
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
ulan@chromium.org [Fri, 10 May 2013 09:26:53 +0000 (09:26 +0000)]
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
verwaest@chromium.org [Fri, 10 May 2013 09:12:52 +0000 (09:12 +0000)]
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
verwaest@chromium.org [Fri, 10 May 2013 09:12:30 +0000 (09:12 +0000)]
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
ulan@chromium.org [Fri, 10 May 2013 09:03:51 +0000 (09:03 +0000)]
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
verwaest@chromium.org [Fri, 10 May 2013 08:58:58 +0000 (08:58 +0000)]
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
verwaest@chromium.org [Fri, 10 May 2013 08:39:37 +0000 (08:39 +0000)]
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
ulan@chromium.org [Fri, 10 May 2013 08:13:08 +0000 (08:13 +0000)]
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
plind44@gmail.com [Wed, 8 May 2013 22:21:54 +0000 (22:21 +0000)]
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
palfia@homejinni.com [Wed, 8 May 2013 22:15:27 +0000 (22:15 +0000)]
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
mvstanton@chromium.org [Wed, 8 May 2013 16:48:27 +0000 (16:48 +0000)]
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
danno@chromium.org [Wed, 8 May 2013 16:17:23 +0000 (16:17 +0000)]
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
verwaest@chromium.org [Wed, 8 May 2013 15:02:08 +0000 (15:02 +0000)]
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
ulan@chromium.org [Wed, 8 May 2013 14:58:06 +0000 (14:58 +0000)]
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
verwaest@chromium.org [Wed, 8 May 2013 14:40:36 +0000 (14:40 +0000)]
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
verwaest@chromium.org [Wed, 8 May 2013 14:19:48 +0000 (14:19 +0000)]
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
verwaest@chromium.org [Wed, 8 May 2013 14:18:30 +0000 (14:18 +0000)]
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
svenpanne@chromium.org [Wed, 8 May 2013 13:24:45 +0000 (13:24 +0000)]
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
svenpanne@chromium.org [Wed, 8 May 2013 11:06:46 +0000 (11:06 +0000)]
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
verwaest@chromium.org [Wed, 8 May 2013 10:34:51 +0000 (10:34 +0000)]
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
verwaest@chromium.org [Wed, 8 May 2013 09:39:26 +0000 (09:39 +0000)]
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
mvstanton@chromium.org [Wed, 8 May 2013 08:49:29 +0000 (08:49 +0000)]
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
danno@chromium.org [Wed, 8 May 2013 08:37:24 +0000 (08:37 +0000)]
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
wingo@igalia.com [Wed, 8 May 2013 08:08:23 +0000 (08:08 +0000)]
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
dcarney@chromium.org [Wed, 8 May 2013 07:45:16 +0000 (07:45 +0000)]
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
ulan@chromium.org [Wed, 8 May 2013 07:40:28 +0000 (07:40 +0000)]
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
palfia@homejinni.com [Tue, 7 May 2013 23:15:27 +0000 (23:15 +0000)]
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
palfia@homejinni.com [Tue, 7 May 2013 23:14:36 +0000 (23:14 +0000)]
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
mvstanton@chromium.org [Tue, 7 May 2013 21:01:53 +0000 (21:01 +0000)]
Becuase of cross-context calls, hydrogen-based Array constructor needs to ensure
the array constructor pointer passed in matches that of the current context.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
14846017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14581
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 7 May 2013 16:28:51 +0000 (16:28 +0000)]
Revert "deprecate Context::New which returns Persistent"
This reverts r14573 because of test failures in no-snapshot mode in the
cctest/test-debug/ScriptCollectedEventContext test case.
TBR=dcarney@chromium.org,svenpanne@chromium.org
TEST=cctest/test-debug/ScriptCollectedEventContext
Review URL: https://codereview.chromium.org/
15038002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14578
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 7 May 2013 15:18:01 +0000 (15:18 +0000)]
Disable code flushing for native SharedFunctionInfo.
R=hpayer@google.com
TEST=cctest/test-api/Threading4
Review URL: https://codereview.chromium.org/
15018012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14577
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 7 May 2013 14:42:17 +0000 (14:42 +0000)]
Implement TypedArray.set function.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
14581005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14576
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 7 May 2013 14:03:50 +0000 (14:03 +0000)]
Update mjsunit tests to be complaian with ES6 implementation of typed arrays
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
14580012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14575
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 7 May 2013 14:02:31 +0000 (14:02 +0000)]
Disable flaky CPU profiler test case.
R=svenpanne@chromium.org
BUG=v8:2628
TEST=cctest/test-cpu-profiler/CollectCpuProfile
Review URL: https://codereview.chromium.org/
14767021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14574
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 7 May 2013 13:29:24 +0000 (13:29 +0000)]
deprecate Context::New which returns Persistent
BUG=
TBR=marja@chromium.org
Review URL: https://codereview.chromium.org/
14793004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14573
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 7 May 2013 13:24:04 +0000 (13:24 +0000)]
Prevent grokdump from crying about invalid input.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14660012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14572
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 7 May 2013 13:09:23 +0000 (13:09 +0000)]
Free up 11 bits in fast-mode PropertyDetails by removing the enumeration-index.
The descriptors are nowadays ordered in order of addition, so that info was
duplicated.
Review URL: https://chromiumcodereview.appspot.com/
14622005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14571
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 7 May 2013 12:37:22 +0000 (12:37 +0000)]
Add Persistent<T>::Reset which disposes the handle and redirects it to point to another object.
BUG=
R=dcarney@chromium.org, svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14788013
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14570
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 7 May 2013 12:20:33 +0000 (12:20 +0000)]
Object.observe: disable freezing changeRecords until it can be made fast
R=rossberg,adamk
BUG=
Review URL: https://codereview.chromium.org/
15017003
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14569
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 7 May 2013 12:02:15 +0000 (12:02 +0000)]
Fix braindead Handle::is_identical_to
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
14660008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14568
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 7 May 2013 11:43:43 +0000 (11:43 +0000)]
Fast-forward version number on bleeding_edge. Now working on version 3.19.0.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14580009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14567
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 7 May 2013 10:44:30 +0000 (10:44 +0000)]
add weakcallback without persistent copying
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
14908004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14566
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 7 May 2013 10:32:23 +0000 (10:32 +0000)]
Fix polymorphic to monomorphic load to take representation into account.
Review URL: https://chromiumcodereview.appspot.com/
14966005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14565
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 7 May 2013 09:48:42 +0000 (09:48 +0000)]
Perform incremental marking step after free-list allocation and clean-up incremental marking start condition.
BUG=
Review URL: https://codereview.chromium.org/
14634007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14564
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 7 May 2013 08:46:42 +0000 (08:46 +0000)]
Generators return boxed values
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=v8:2355
TEST=mjsunit/harmony/generators-iteration
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
13870007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14563
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 7 May 2013 07:23:39 +0000 (07:23 +0000)]
remove use of WriteAscii for vtune
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
14900003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14562
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 6 May 2013 16:19:27 +0000 (16:19 +0000)]
Added an extra flag that enables only ArrayBuffer.
This makes Blink experimentation easier.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
14884012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14560
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 6 May 2013 16:17:49 +0000 (16:17 +0000)]
Fix incremental marking speed accelleration and start incremental marking when old space is almost full when pretenuring objects.
BUG=
Review URL: https://codereview.chromium.org/
14714004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14559
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 6 May 2013 13:39:54 +0000 (13:39 +0000)]
Revert fix incremental marking speed accelleration and start incremental marking when old space is almost full when pretenuring objects.
BUG=
Review URL: https://codereview.chromium.org/
14988004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14558
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 6 May 2013 13:07:10 +0000 (13:07 +0000)]
Fix incremental marking speed accelleration and start incremental marking when old space is almost full when pretenuring objects.
BUG=
Review URL: https://codereview.chromium.org/
14649014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14555
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 6 May 2013 13:01:03 +0000 (13:01 +0000)]
Make v8 compilable without V8_USE_UNSAFE_HANDLES.
Without this modification, we get this error: "dereferencing type-punned pointer
will break strict-aliasing rules" (GCC strict aliasing).
Also included small CcTest sanity fixes: isolate() cannot return anything else
than default_isolate().
BUG=
TBR=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
14894006
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14554
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 6 May 2013 10:59:17 +0000 (10:59 +0000)]
Parallel compilation fix: the optimizer thread shouldn't change the allow allocation state on AssertNoAllocation scopes.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
14796014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14551
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Mon, 6 May 2013 09:27:06 +0000 (09:27 +0000)]
Fix occasional crash when lithium goes out of vregs.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
14850013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14550
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 3 May 2013 23:55:08 +0000 (23:55 +0000)]
MIPS: Pretenure ASCII cons string in high promotion mode.
Port r14540 (
c6093a6e)
BUG=
Review URL: https://codereview.chromium.org/
14678006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14549
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 3 May 2013 23:51:25 +0000 (23:51 +0000)]
MIPS: Before comparing input with a constant smi in GenerateRecordCallTarget(), make sure the input register is actually a smi.
Port r14547 (
a2e764c7)
BUG=
Review URL: https://codereview.chromium.org/
14597006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14548
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Fri, 3 May 2013 15:18:31 +0000 (15:18 +0000)]
Before comparing input with a constant smi in GenerateRecordCallTarget(), make sure the input register is actually a smi.
BUG=
Review URL: https://codereview.chromium.org/
14803005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14547
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 3 May 2013 14:58:06 +0000 (14:58 +0000)]
Cache first hint operand while building live ranges.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14771015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14546
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 3 May 2013 13:39:11 +0000 (13:39 +0000)]
Don't double unlink in DCE.
Review URL: https://chromiumcodereview.appspot.com/
14914004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14545
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Fri, 3 May 2013 13:01:28 +0000 (13:01 +0000)]
toString() on generator functions prints with function*
This CL adds a %FunctionIsGenerator runtime function, and uses it in the
function toString() implementation.
R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-runtime
Review URL: https://codereview.chromium.org/
14912002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14544
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00