machenbach [Thu, 18 Dec 2014 15:49:48 +0000 (07:49 -0800)]
Revert of [turbofan] simplify gap ordering (patchset #2 id:20001 of https://codereview.chromium.org/
810013002/)
Reason for revert:
Revert for breaking emscripten bullet with turbofan on android arm64.
Original issue's description:
> [turbofan] simplify gap ordering
>
> BUG=
>
> Committed: https://crrev.com/
70b5eb47b39acbf31746f4a116a9b3ce2730218a
> Cr-Commit-Position: refs/heads/master@{#25865}
TBR=bmeurer@chromium.org,dcarney@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
815743002
Cr-Commit-Position: refs/heads/master@{#25888}
ulan [Thu, 18 Dec 2014 15:44:19 +0000 (07:44 -0800)]
Retain maps for several garbage collections
This keeps dying maps alive for FLAG_retain_maps_for_n_gc garbage collections to increase chances of them being reused for new objects in future.
BUG=v8:3664
LOG=N
TEST=cctest/test-heap/MapRetaining
Review URL: https://codereview.chromium.org/
794583003
Cr-Commit-Position: refs/heads/master@{#25887}
machenbach [Thu, 18 Dec 2014 15:01:05 +0000 (07:01 -0800)]
Revert of [turbofan] Skip printing of empty gap moves. (patchset #1 id:1 of https://codereview.chromium.org/
812983002/)
Reason for revert:
Needed to revert https://chromium.googlesource.com/v8/v8/+/
70b5eb47b39acbf31746f4a116a9b3ce2730218a
Original issue's description:
> [turbofan] Skip printing of empty gap moves.
>
> R=bmeurer@chromium.org
> BUG=
TBR=bmeurer@chromium.org,titzer@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
816703002
Cr-Commit-Position: refs/heads/master@{#25886}
jkummerow [Thu, 18 Dec 2014 14:50:01 +0000 (06:50 -0800)]
Reduce impact of HParameter inputs on HPhi representation selection
This is a follow-up to r25153.
BUG=v8:3766
LOG=n
Review URL: https://codereview.chromium.org/
807273003
Cr-Commit-Position: refs/heads/master@{#25885}
machenbach [Thu, 18 Dec 2014 14:42:06 +0000 (06:42 -0800)]
Revert of [turbofan] remove control field from instruction (patchset #1 id:1 of https://codereview.chromium.org/
810023002/)
Reason for revert:
Needed to revert https://chromium.googlesource.com/v8/v8/+/
70b5eb47b39acbf31746f4a116a9b3ce2730218a
Original issue's description:
> [turbofan] remove control field from instruction
>
> R=titzer@chromium.org
> BUG=
>
> Committed: https://crrev.com/
7b9cb2eb3764d0c807c669e397fc3b84fbefb175
> Cr-Commit-Position: refs/heads/master@{#25866}
TBR=titzer@chromium.org,dcarney@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
814043002
Cr-Commit-Position: refs/heads/master@{#25884}
ulan [Thu, 18 Dec 2014 14:04:56 +0000 (06:04 -0800)]
Temporarily disable mjsunit/debug-stepframe for GC stress until
crash is fixed.
BUG=v8:3776
LOG=N
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
812283004
Cr-Commit-Position: refs/heads/master@{#25883}
ulan [Thu, 18 Dec 2014 13:09:37 +0000 (05:09 -0800)]
Monomorphic and polymorphic ICs with cleared maps should not go megamorphic.
BUG=v8:3663
TEST=cctest/test-heap/MonomorphicStaysMonomorphicAfterGC
LOG=N
Review URL: https://codereview.chromium.org/
816653002
Cr-Commit-Position: refs/heads/master@{#25882}
hpayer [Thu, 18 Dec 2014 12:50:02 +0000 (04:50 -0800)]
Make sure backing store pointer in handles get cleared after use in factory.
BUG=442710
LOG=n
Review URL: https://codereview.chromium.org/
813023002
Cr-Commit-Position: refs/heads/master@{#25881}
svenpanne [Thu, 18 Dec 2014 11:12:57 +0000 (03:12 -0800)]
Fixed -fsanitize=float-cast-overflow problems.
BUG=v8:3773
LOG=y
Review URL: https://codereview.chromium.org/
809293003
Cr-Commit-Position: refs/heads/master@{#25880}
jochen [Thu, 18 Dec 2014 11:01:42 +0000 (03:01 -0800)]
Don't use AddSubstring for external natives
The input string is not necessarily zero terminated
BUG=chromium:443230
R=adamk@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
795383003
Cr-Commit-Position: refs/heads/master@{#25879}
titzer [Thu, 18 Dec 2014 09:41:43 +0000 (01:41 -0800)]
[turbofan] Skip printing of empty gap moves.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
812983002
Cr-Commit-Position: refs/heads/master@{#25878}
jochen [Thu, 18 Dec 2014 08:56:43 +0000 (00:56 -0800)]
Crash with an error message when ICU data files are missing
Before, we'd just crash.
BUG=v8:3348
R=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
807313003
Cr-Commit-Position: refs/heads/master@{#25877}
machenbach [Thu, 18 Dec 2014 08:44:04 +0000 (00:44 -0800)]
Add script to check for clusterfuzz issues.
BUG=443153
LOG=n
NOTRY=true
Review URL: https://codereview.chromium.org/
811073002
Cr-Commit-Position: refs/heads/master@{#25876}
Benedikt Meurer [Thu, 18 Dec 2014 08:42:43 +0000 (09:42 +0100)]
[turbofan] Further reduction of Word32And with Int32Add.
- (y * (K << L) + x) & (-1 << L) => (x & (-1 << L)) + y * (K << L)
- (x + y * (K << L)) & (-1 << L) => (x & (-1 << L)) + y * (K << L)
TEST=unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
811293002
Cr-Commit-Position: refs/heads/master@{#25875}
Benedikt Meurer [Thu, 18 Dec 2014 07:47:22 +0000 (08:47 +0100)]
[turbofan] Also run MachineOperatorReducer in SimplifiedLoweringPhase.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
809313002
Cr-Commit-Position: refs/heads/master@{#25874}
erikcorry [Wed, 17 Dec 2014 23:13:12 +0000 (15:13 -0800)]
Mozilla test status: Assign bug number to quadratic assembler arm64 issue & misc regexp cleanup
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
810053002
Cr-Commit-Position: refs/heads/master@{#25873}
machenbach [Wed, 17 Dec 2014 19:47:00 +0000 (11:47 -0800)]
Revert of ES6 computed property names (patchset #1 id:1 of https://codereview.chromium.org/
792233008/)
Reason for revert:
[sheriff] Still crashes on win32 (XP):
http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%201/builds/1380
Original issue's description:
> ES6 computed property names
>
> This adds support for computed property names, under the flag
> --harmony-computed-property-names, for both object literals and
> classes.
>
> This is a revert of the revert,
a76419f0f497db156eb1010e9b4be398951280cb.
>
> This changes to do an early bailout in
> HOptimizedGraphBuilder::VisitObjectLiteral instead of doing that in the later
> loop.
>
> BUG=v8:3754
> LOG=Y
> TBR=dslomov@chromium.org
TBR=dslomov@chromium.org,arv@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3754
Review URL: https://codereview.chromium.org/
811593004
Cr-Commit-Position: refs/heads/master@{#25872}
Michael Achenbach [Wed, 17 Dec 2014 19:43:24 +0000 (20:43 +0100)]
Whitespace change to trigger bots.
Cr-Commit-Position: refs/heads/master@{#25871}
Michael Achenbach [Wed, 17 Dec 2014 19:10:20 +0000 (20:10 +0100)]
Whitespace change to trigger bots.
Cr-Commit-Position: refs/heads/master@{#25870}
Michael Achenbach [Wed, 17 Dec 2014 19:07:35 +0000 (20:07 +0100)]
Whitespace change to trigger bots.
Cr-Commit-Position: refs/heads/master@{#25869}
arv [Wed, 17 Dec 2014 18:38:38 +0000 (10:38 -0800)]
ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.
This is a revert of the revert,
a76419f0f497db156eb1010e9b4be398951280cb.
This changes to do an early bailout in
HOptimizedGraphBuilder::VisitObjectLiteral instead of doing that in the later
loop.
BUG=v8:3754
LOG=Y
TBR=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
792233008
Cr-Commit-Position: refs/heads/master@{#25868}
dcarney [Wed, 17 Dec 2014 15:09:50 +0000 (07:09 -0800)]
[turbofan] move assembly order to InstructionBlock
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
805263003
Cr-Commit-Position: refs/heads/master@{#25867}
dcarney [Wed, 17 Dec 2014 14:10:38 +0000 (06:10 -0800)]
[turbofan] remove control field from instruction
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
810023002
Cr-Commit-Position: refs/heads/master@{#25866}
dcarney [Wed, 17 Dec 2014 13:37:45 +0000 (05:37 -0800)]
[turbofan] simplify gap ordering
BUG=
Review URL: https://codereview.chromium.org/
810013002
Cr-Commit-Position: refs/heads/master@{#25865}
dcarney [Wed, 17 Dec 2014 12:13:47 +0000 (04:13 -0800)]
[turbofan] use START and END gap positions for constraints
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
798363007
Cr-Commit-Position: refs/heads/master@{#25864}
Benedikt Meurer [Wed, 17 Dec 2014 11:34:27 +0000 (12:34 +0100)]
[turbofan] Improve reduction of Word32And and Int32Add.
TEST=unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
816433002
Cr-Commit-Position: refs/heads/master@{#25863}
hpayer [Wed, 17 Dec 2014 11:17:30 +0000 (03:17 -0800)]
Revert of Shrink initial old generation size based on new space survival rate. (patchset #7 id:140001 of https://codereview.chromium.org/
785593002/)
Reason for revert:
Performance regressions.
Original issue's description:
> Shrink initial old generation size based on new space survival rate.
>
> BUG=
>
> Committed: https://crrev.com/
37f9bb72b9c7ea4eccef6cb6533b3c42792fb5e6
> Cr-Commit-Position: refs/heads/master@{#25850}
TBR=jochen@chromium.org,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
813733002
Cr-Commit-Position: refs/heads/master@{#25862}
Benedikt Meurer [Wed, 17 Dec 2014 10:31:43 +0000 (11:31 +0100)]
[turbofan] Recursively reduce new inputs of changed nodes.
The GraphReducer should recurse into new inputs after a node was
changed. Most of the reducers already assume this behavior, and it
mostly worked by accident in many cases.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
800073004
Cr-Commit-Position: refs/heads/master@{#25861}
jochen [Wed, 17 Dec 2014 10:30:45 +0000 (02:30 -0800)]
Allocate memory for external snapshot paths in d8
R=marja@chromium.org
BUG=chromium:442804
LOG=n
Review URL: https://codereview.chromium.org/
791713003
Cr-Commit-Position: refs/heads/master@{#25860}
bmeurer [Wed, 17 Dec 2014 09:51:05 +0000 (01:51 -0800)]
Revert of [turbofan] Correctify TruncateFloat64ToInt32 reduction in MachineOperatorReducer. (patchset #1 id:1 of https://codereview.chromium.org/
801263002/)
Reason for revert:
Can cause reduce cycles, needs more investigation
Original issue's description:
> [turbofan] Correctify TruncateFloat64ToInt32 reduction in MachineOperatorReducer.
>
> TEST=unittests
> R=svenpanne@chromium.org
>
> Committed: https://chromium.googlesource.com/v8/v8/+/
6e7ceee4d02a81f167d47d8c6dc57a226b8d98d4
TBR=svenpanne@chromium.org
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
794473003
Cr-Commit-Position: refs/heads/master@{#25859}
erik.corry [Wed, 17 Dec 2014 08:23:18 +0000 (00:23 -0800)]
Allow timeout on regexp test
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
798713004
Cr-Commit-Position: refs/heads/master@{#25858}
Benedikt Meurer [Wed, 17 Dec 2014 08:05:17 +0000 (09:05 +0100)]
[turbofan] Handle collisions properly in value numbering.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
795433003
Cr-Commit-Position: refs/heads/master@{#25857}
v8-autoroll [Wed, 17 Dec 2014 04:29:19 +0000 (20:29 -0800)]
Update V8 DEPS.
Rolling v8/tools/clang to
90fb65e7a9a5c9d6d9613dfb0e78921c52ca9cfc
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
795843004
Cr-Commit-Position: refs/heads/master@{#25856}
caitpotter88 [Tue, 16 Dec 2014 21:08:11 +0000 (13:08 -0800)]
Fix ArrayConcat for JSValues/JSFunctions/JSRegExps with @@isConcatSpreadable
LOG=N
BUG=v8:3764, v8:3765
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
799803003
Cr-Commit-Position: refs/heads/master@{#25855}
arv [Tue, 16 Dec 2014 20:07:27 +0000 (12:07 -0800)]
ES6: Update unscopables to match spec
The spec ended up using Get(unscopables, propertyName) and
comparing the result to undefined instead of using Has.
BUG=v8:3632
LOG=Y
R=adamk, dslomov@chromium.org
Review URL: https://codereview.chromium.org/
807893002
Cr-Commit-Position: refs/heads/master@{#25854}
arv [Tue, 16 Dec 2014 19:38:46 +0000 (11:38 -0800)]
Revert of ES6 computed property names (patchset #1 id:1 of https://codereview.chromium.org/
807173002/)
Reason for revert:
Crashes Win32. It was not flake.
Original issue's description:
> ES6 computed property names
>
> This adds support for computed property names, under the flag
> --harmony-computed-property-names, for both object literals and
> classes.
>
> This is a revert of the revert,
a76419f0f497db156eb1010e9b4be398951280cb with
> no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots
> try again.
>
> BUG=v8:3754
> LOG=Y
> TBR=dslomov@chromium.org
TBR=dslomov@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3754
Review URL: https://codereview.chromium.org/
807033003
Cr-Commit-Position: refs/heads/master@{#25853}
erikcorry [Tue, 16 Dec 2014 17:46:32 +0000 (09:46 -0800)]
Speed up ARM64 debug assembler more
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
810473004
Cr-Commit-Position: refs/heads/master@{#25852}
arv [Tue, 16 Dec 2014 17:29:31 +0000 (09:29 -0800)]
ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.
This is a revert of the revert,
a76419f0f497db156eb1010e9b4be398951280cb with
no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots
try again.
BUG=v8:3754
LOG=Y
TBR=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
807173002
Cr-Commit-Position: refs/heads/master@{#25851}
hpayer [Tue, 16 Dec 2014 16:25:25 +0000 (08:25 -0800)]
Shrink initial old generation size based on new space survival rate.
BUG=
Review URL: https://codereview.chromium.org/
785593002
Cr-Commit-Position: refs/heads/master@{#25850}
ulan [Tue, 16 Dec 2014 15:35:27 +0000 (07:35 -0800)]
ARM: check immediate overflow in branch and mov_label_offset in release mode to catch crashes earlier.
BUG=chromium:440913
LOG=N
Review URL: https://codereview.chromium.org/
810763002
Cr-Commit-Position: refs/heads/master@{#25849}
erik.corry [Tue, 16 Dec 2014 15:17:13 +0000 (07:17 -0800)]
Fix quadratic test in debug-mode ARM64 assembler
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
812593002
Cr-Commit-Position: refs/heads/master@{#25848}
dslomov [Tue, 16 Dec 2014 15:09:46 +0000 (07:09 -0800)]
Make sure FunctionToMethod is lazily compiled.
R=arv@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/
808723002
Cr-Commit-Position: refs/heads/master@{#25847}
Jakob Kummerow [Tue, 16 Dec 2014 14:28:38 +0000 (15:28 +0100)]
Bump the limit for test-heap/TestSizeOfRegExpCode
R=erik.corry@gmail.com
Review URL: https://codereview.chromium.org/
808773003
Cr-Commit-Position: refs/heads/master@{#25846}
jkummerow [Tue, 16 Dec 2014 14:24:51 +0000 (06:24 -0800)]
Add tools/find-commit-for-patch.py
It searches for a commit that a given patch can cleanly be applied to.
Review URL: https://codereview.chromium.org/
799273003
Cr-Commit-Position: refs/heads/master@{#25845}
jkummerow [Tue, 16 Dec 2014 14:21:25 +0000 (06:21 -0800)]
Follow-up to r25822: only internalize short strings optimistically
BUG=chromium:442703
LOG=n
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
809723002
Cr-Commit-Position: refs/heads/master@{#25844}
svenpanne [Tue, 16 Dec 2014 14:20:15 +0000 (06:20 -0800)]
More -fsanitize=vptr fixes.
This actually fixes 3 different issues when accessing Operand1:
* Object vs. HeapObject
* Wrong defaults for equals/hash
* silently dropping const
TEST=test/mjsunit/regress/regress-441099.js
BUG=chromium:441099
LOG=y
Review URL: https://codereview.chromium.org/
812563002
Cr-Commit-Position: refs/heads/master@{#25843}
ishell [Tue, 16 Dec 2014 13:22:23 +0000 (05:22 -0800)]
Introduced PropertyType ACCESSOR_FIELD.
Review URL: https://codereview.chromium.org/
805453002
Cr-Commit-Position: refs/heads/master@{#25842}
dcarney [Tue, 16 Dec 2014 13:09:15 +0000 (05:09 -0800)]
[turbofan] enable stack slot reuse
BUG=
Review URL: https://codereview.chromium.org/
793683002
Cr-Commit-Position: refs/heads/master@{#25841}
Benedikt Meurer [Tue, 16 Dec 2014 12:59:00 +0000 (13:59 +0100)]
[turbofan] Cache conversions inserted during typed lowering.
This greatly reduces the number of nodes in the graph (by more than 20x in
some extreme cases) for the Emscripten python interpreter main function.
BUG=v8:3763
LOG=y
TEST=cctest,mjsunit,unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
802353003
Cr-Commit-Position: refs/heads/master@{#25840}
erik.corry [Tue, 16 Dec 2014 12:33:20 +0000 (04:33 -0800)]
Limit code size generated for very large regexps
R=jkummerow@chromium.org, yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
799403003
Cr-Commit-Position: refs/heads/master@{#25839}
marja [Tue, 16 Dec 2014 12:14:09 +0000 (04:14 -0800)]
RegExpParser: Fix Reset()ting to the end.
The bug would occur when we try to Reset() to a position already at the end.
This happens e.g., when the regexp ends with \u. What used to happen in that
case: 1) Advance past \ and u (to the end) (which wouldn't increase next_pos_
enough) 2) Try to parse 4 hex digits 3) When that failed, Reset() to the
position which should've been at the end but wasn't.
To be able to properly Reset() to a position at the end, we need to allow
next_pos_ to move beyond the end (since position() is next_pos_ - 1).
Minimal repro case:
var r = /foo\u/
r.test("foou") // should be true, was false.
(Note that \u not followed by 4 hex didits should be interpreted as an identity
escape. It already worked unless \u was at the end of the regexp.)
BUG=v8:3756
LOG=NO
Review URL: https://codereview.chromium.org/
802313003
Cr-Commit-Position: refs/heads/master@{#25838}
titzer [Tue, 16 Dec 2014 09:36:16 +0000 (01:36 -0800)]
[turbofan] First version of loop analysis: loop finder on the soup of nodes.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
803993002
Cr-Commit-Position: refs/heads/master@{#25837}
Benedikt Meurer [Tue, 16 Dec 2014 07:56:05 +0000 (08:56 +0100)]
[turbofan] Always align loop headers at 16-byte boundaries.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
811713002
Cr-Commit-Position: refs/heads/master@{#25836}
Sven Panne [Tue, 16 Dec 2014 07:40:00 +0000 (08:40 +0100)]
Log V8 version in profiler log file
Patch from issue
800293002 authored by ben@strongloop.com
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
806143002
Cr-Commit-Position: refs/heads/master@{#25835}
Benedikt Meurer [Tue, 16 Dec 2014 07:31:46 +0000 (08:31 +0100)]
[base] Add iterator_range helper class.
TEST=unittests
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
810683003
Cr-Commit-Position: refs/heads/master@{#25834}
chunyang.dai [Tue, 16 Dec 2014 07:13:52 +0000 (23:13 -0800)]
X87: [turbofan] Remove the no-context hack for JSToNumber.
port
d211608a3eb7ef3da4d04fd4f5a8540dedbd1faa
original commit message:
[turbofan] Remove the no-context hack for JSToNumber.
The ToNumberStub is now able to handle all plain primitives (Numbers,
Booleans, Null, Undefined and Strings) without context access.
BUG=
Review URL: https://codereview.chromium.org/
810683002
Cr-Commit-Position: refs/heads/master@{#25833}
Benedikt Meurer [Tue, 16 Dec 2014 05:39:30 +0000 (06:39 +0100)]
[turbofan] Relax effects and context for JSToNumber(x:plain-primitive).
Relanded with fix for always returning Change for PlainPrimitive even
if there was no change. The performance regression on primes.js and
corrections.js is due to unlucky loop header alignment; will be addressed
separately.
TEST=unittests
R=svenpanne@chromium.org
Committed: https://chromium.googlesource.com/v8/v8/+/
75484e8d16866eba7aa9c3b87841cd6ce2f466b8
Review URL: https://codereview.chromium.org/
799413002
Cr-Commit-Position: refs/heads/master@{#25832}
bmeurer [Tue, 16 Dec 2014 04:44:58 +0000 (20:44 -0800)]
Revert of [turbofan] Relax effects and context for JSToNumber(x:plain-primitive). (patchset #1 id:1 of https://codereview.chromium.org/
799413002/)
Reason for revert:
Performance regressions on primes and corrections benchmarks.
Original issue's description:
> [turbofan] Relax effects and context for JSToNumber(x:plain-primitive).
>
> TEST=unittests
> R=svenpanne@chromium.org
>
> Committed: https://chromium.googlesource.com/v8/v8/+/
75484e8d16866eba7aa9c3b87841cd6ce2f466b8
TBR=svenpanne@chromium.org
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
806103002
Cr-Commit-Position: refs/heads/master@{#25831}
v8-autoroll [Tue, 16 Dec 2014 04:28:38 +0000 (20:28 -0800)]
Update V8 DEPS.
Rolling v8/tools/clang to
6538d768c1dd43ad3942574cfc5ba90a8e1e0517
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
803183005
Cr-Commit-Position: refs/heads/master@{#25830}
jkummerow [Mon, 15 Dec 2014 19:57:37 +0000 (11:57 -0800)]
Add infrastructure to keep track of references to prototypes.
There are no users of this infrastructure yet, so it's behind an off-by-default flag.
Review URL: https://codereview.chromium.org/
768633002
Cr-Commit-Position: refs/heads/master@{#25829}
caitpotter88 [Mon, 15 Dec 2014 19:08:32 +0000 (11:08 -0800)]
Use proper ToLength() operation in %ArrayConcat()
LOG=N
R=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
799853003
Cr-Commit-Position: refs/heads/master@{#25828}
rmcilroy [Mon, 15 Dec 2014 17:00:58 +0000 (09:00 -0800)]
[GN] Output external snapshot blobs in out directory.
The snapshot and natives blob files should be output in the out directory
instead of the gen directory so that they can be picked up by the
executable.
BUG=421063
LOG=N
Review URL: https://codereview.chromium.org/
805813004
Cr-Commit-Position: refs/heads/master@{#25827}
dslomov [Mon, 15 Dec 2014 16:43:49 +0000 (08:43 -0800)]
Ship ES6 classes.
R=arv@chromium.org
BUG=v8:3330
LOG=Y
Review URL: https://codereview.chromium.org/
808433002
Cr-Commit-Position: refs/heads/master@{#25826}
arv [Mon, 15 Dec 2014 16:38:31 +0000 (08:38 -0800)]
Revert of ES6 computed property names (patchset #9 id:160001 of https://codereview.chromium.org/
795573005/)
Reason for revert:
Crashes on Win32
http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%201/builds/1357
Test: mjsunit/harmony/computed-property-names
Flags: --stress-opt --always-opt
Command: build\Release\d8.exe --test --random-seed=-
233815021 --stress-opt --always-opt --nohard-abort --nodead-code-elimination --nofold-constants --harmony-computed-property-names test\mjsunit\mjsunit.js test\mjsunit\harmony\computed-property-names.js
Run #1
Exit code: -
1073741819
Result: CRASH
Expected outcomes: PASS
Run #2
Exit code: -
1073741819
Result: CRASH
Expected outcomes: PASS
Run #3
Exit code: -
1073741819
Result: CRASH
Expected outcomes: PASS
Original issue's description:
> ES6 computed property names
>
> This adds support for computed property names, under the flag
> --harmony-computed-property-names, for both object literals and
> classes.
>
> BUG=v8:3754
> LOG=Y
TBR=dslomov@chromium.org,wingo@igalia.com
NOTREECHECKS=true
NOTRY=true
BUG=v8:3754
Review URL: https://codereview.chromium.org/
809433002
Cr-Commit-Position: refs/heads/master@{#25825}
balazs.kilvady [Mon, 15 Dec 2014 16:01:52 +0000 (08:01 -0800)]
MIPS: [turbofan] Remove the no-context hack for JSToNumber.
Port
d211608a3eb7ef3da4d04fd4f5a8540dedbd1faa
Original commit message:
The ToNumberStub is now able to handle all plain primitives (Numbers,
Booleans, Null, Undefined and Strings) without context access.
TEST=cctest,mjsunit,unittests
BUG=
Review URL: https://codereview.chromium.org/
803973002
Cr-Commit-Position: refs/heads/master@{#25824}
jkummerow [Mon, 15 Dec 2014 15:57:48 +0000 (07:57 -0800)]
Add fast path for array indices to Runtime_HasOwnProperty
Review URL: https://codereview.chromium.org/
803833004
Cr-Commit-Position: refs/heads/master@{#25823}
jkummerow [Mon, 15 Dec 2014 15:46:01 +0000 (07:46 -0800)]
Internalize strings being stored into uninitialized property cells
Review URL: https://codereview.chromium.org/
804993002
Cr-Commit-Position: refs/heads/master@{#25822}
arv [Mon, 15 Dec 2014 15:27:07 +0000 (07:27 -0800)]
ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.
BUG=v8:3754
LOG=Y
Review URL: https://codereview.chromium.org/
795573005
Cr-Commit-Position: refs/heads/master@{#25821}
jochen [Mon, 15 Dec 2014 14:28:26 +0000 (06:28 -0800)]
Take the build level into account for the version hash
build is the third number of the V8 version, and very likely to change
(in contrast to the patch level which typically is zero on canaries).
BUG=chromium:440984
R=mvstanton@chromium.org,yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
802363002
Cr-Commit-Position: refs/heads/master@{#25820}
hpayer [Mon, 15 Dec 2014 14:01:57 +0000 (06:01 -0800)]
Reland Call DisableInlineAllocation() in heap setup when flag inline_new is off.
BUG=
Review URL: https://codereview.chromium.org/
806783002
Cr-Commit-Position: refs/heads/master@{#25819}
Benedikt Meurer [Mon, 15 Dec 2014 13:42:37 +0000 (14:42 +0100)]
[turbofan] Relax effects and context for JSToNumber(x:plain-primitive).
TEST=unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
799413002
Cr-Commit-Position: refs/heads/master@{#25818}
fedor.indutny [Mon, 15 Dec 2014 13:36:13 +0000 (05:36 -0800)]
Hydrogen: fix keyed loads with string keys
Keyed loads should not unconditionally be compiled to element loads. Update KeyedLoadICs to keep track of the key type, so that Hydrogen can emit ICs for string-keyed loads it doesn't have inline support for.
BUG=v8:3167
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
755513003
Cr-Commit-Position: refs/heads/master@{#25817}
ishell [Mon, 15 Dec 2014 12:13:08 +0000 (04:13 -0800)]
LayoutDescriptorHelper is now able to calculate the length of contiguous regions of tagged/non-tagged fields.
This functionality is now used by both object visitor and store buffer.
TEST=cctest/test-unboxed-doubles
Review URL: https://codereview.chromium.org/
726713003
Cr-Commit-Position: refs/heads/master@{#25816}
hpayer [Mon, 15 Dec 2014 11:39:20 +0000 (03:39 -0800)]
Revert of Call DisableInlineAllocation() in heap setup when flag inline_new is off. (patchset #1 id:1 of https://codereview.chromium.org/
790353006/)
Reason for revert:
Fix Windows nosnap.
Original issue's description:
> Call DisableInlineAllocation() in heap setup when flag inline_new is off.
>
> BUG=
TBR=ulan@chromium.org,mstarzinger@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
794053003
Cr-Commit-Position: refs/heads/master@{#25815}
bmeurer [Mon, 15 Dec 2014 11:14:03 +0000 (03:14 -0800)]
[turbofan] Remove the no-context hack for JSToNumber.
The ToNumberStub is now able to handle all plain primitives (Numbers,
Booleans, Null, Undefined and Strings) without context access.
TEST=cctest,mjsunit,unittests
Review URL: https://codereview.chromium.org/
801333002
Cr-Commit-Position: refs/heads/master@{#25814}
hpayer [Mon, 15 Dec 2014 11:12:54 +0000 (03:12 -0800)]
Call DisableInlineAllocation() in heap setup when flag inline_new is off.
BUG=
Review URL: https://codereview.chromium.org/
790353006
Cr-Commit-Position: refs/heads/master@{#25813}
Benedikt Meurer [Mon, 15 Dec 2014 07:46:02 +0000 (08:46 +0100)]
[turbofan] Correctify TruncateFloat64ToInt32 reduction in MachineOperatorReducer.
TEST=unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
801263002
Cr-Commit-Position: refs/heads/master@{#25812}
Benedikt Meurer [Mon, 15 Dec 2014 07:37:26 +0000 (08:37 +0100)]
[turbofan] Remove obsolete contains_js_nodes_ field.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
806653003
Cr-Commit-Position: refs/heads/master@{#25811}
adamk [Mon, 15 Dec 2014 04:33:05 +0000 (20:33 -0800)]
Use C++11 nullptr in Hydrogen to replace static_cast<HValue*>(NULL)
Review URL: https://codereview.chromium.org/
805523002
Cr-Commit-Position: refs/heads/master@{#25810}
mathiasb [Sat, 13 Dec 2014 22:36:21 +0000 (14:36 -0800)]
Make `RegExp.prototype.flags` getter configurable
TEST=mjsunit/harmony
BUG=v8:3751
LOG=N
Review URL: https://codereview.chromium.org/
788053003
Cr-Commit-Position: refs/heads/master@{#25809}
caitpotter88 [Fri, 12 Dec 2014 18:38:40 +0000 (10:38 -0800)]
Implement ES6 @@isConcatSpreadable / Array.prototype.concat
Add support for Symbol.isConcatSpreadable in Array.prototype.concat. This enables spreading non-Array objects with the symbol.
LOG=N
R=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
771483002
Cr-Commit-Position: refs/heads/master@{#25808}
danno [Fri, 12 Dec 2014 18:16:51 +0000 (10:16 -0800)]
[turbofan]: Fix x64 regression during ia32 lea port
Review URL: https://codereview.chromium.org/
795353008
Cr-Commit-Position: refs/heads/master@{#25807}
adamk [Fri, 12 Dec 2014 18:15:43 +0000 (10:15 -0800)]
Stop sending Object.observe notifications for API accessor properties
Such properties never notified prior to r21558, but the combination of
that change and r23163 led to sending notifications when they were
set via Object.defineProperty (but not when set via other means).
This also allows some cleanup in v8natives.js and objects.cc,
both of which were doing unnecessary contortions to produce the right
change records.
BUG=v8:3745
LOG=n
Review URL: https://codereview.chromium.org/
791243002
Cr-Commit-Position: refs/heads/master@{#25806}
rmcilroy [Fri, 12 Dec 2014 17:56:46 +0000 (09:56 -0800)]
Fix OS::GetCurrentThreadId to work when building Android on Mac.
The Mac version of GetCurrentThreadId should be used when building the host
build of V8 on Android for Mac.
Review URL: https://codereview.chromium.org/
799943003
Cr-Commit-Position: refs/heads/master@{#25805}
Daniel Vogelheim [Fri, 12 Dec 2014 17:33:26 +0000 (18:33 +0100)]
Whitespace change to trigger bots.
BUG=
Review URL: https://codereview.chromium.org/
804543002
Cr-Commit-Position: refs/heads/master@{#25804}
ishell [Fri, 12 Dec 2014 15:35:57 +0000 (07:35 -0800)]
StoreMode enum values renamed.
FORCE_FIELD -> FORCE_IN_OBJECT,
ALLOW_AS_CONSTANT -> ALLOW_IN_DESCRIPTOR.
Review URL: https://codereview.chromium.org/
799723003
Cr-Commit-Position: refs/heads/master@{#25803}
ishell [Fri, 12 Dec 2014 15:27:38 +0000 (07:27 -0800)]
Using PropertyKind in transitions instead of PropertyType.
Review URL: https://codereview.chromium.org/
801813002
Cr-Commit-Position: refs/heads/master@{#25802}
dcarney [Fri, 12 Dec 2014 14:26:07 +0000 (06:26 -0800)]
Revert of revert r25736 (patchset #2 id:20001 of https://codereview.chromium.org/
803493002/)
Reason for revert:
performance bots were unchanged by the original revert
Original issue's description:
> revert r25736
>
> R=bmeurer@chromium.org
>
> BUG=
TBR=bmeurer@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
787183003
Cr-Commit-Position: refs/heads/master@{#25801}
Michael Stanton [Fri, 12 Dec 2014 13:56:11 +0000 (14:56 +0100)]
Hydrogen code stubs for vector-based ICs.
This patch finally allows running and passing tests with vector-based
Load and KeyedLoad ICs.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
767743002
Cr-Commit-Position: refs/heads/master@{#25800}
v8-autoroll [Fri, 12 Dec 2014 13:18:12 +0000 (05:18 -0800)]
Update V8 DEPS.
Rolling v8/buildtools to
4995faa4a7ad968f1fa1917c26edd5cea295582f
Rolling v8/tools/clang to
3569efa494f668b68bd13835ab4f197f6a51b84a
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
801783003
Cr-Commit-Position: refs/heads/master@{#25799}
ishell [Fri, 12 Dec 2014 13:05:56 +0000 (05:05 -0800)]
PropertyType is divided into PropertyKind and PropertyStoreMode.
Review URL: https://codereview.chromium.org/
786193004
Cr-Commit-Position: refs/heads/master@{#25798}
ishell [Fri, 12 Dec 2014 12:39:54 +0000 (04:39 -0800)]
Map and Descriptor printing enhanced a bit.
Review URL: https://codereview.chromium.org/
801783002
Cr-Commit-Position: refs/heads/master@{#25797}
svenpanne [Fri, 12 Dec 2014 12:36:03 +0000 (04:36 -0800)]
Fixed an ordering issue found by UBSan_vptr.
We managed to access the scope_ member of CompilationInfo before its
containing object was actually constructed.
Rule of thumb: When constructing an object, never ever pass around
pointers to members which come later in the member initializer list,
you simply can't see locally if this might cause trouble or not.
Review URL: https://codereview.chromium.org/
796363002
Cr-Commit-Position: refs/heads/master@{#25796}
dcarney [Fri, 12 Dec 2014 12:03:23 +0000 (04:03 -0800)]
revert r25736
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
803493002
Cr-Commit-Position: refs/heads/master@{#25795}
dcarney [Fri, 12 Dec 2014 11:15:13 +0000 (03:15 -0800)]
[turbofan] improve register allocator testing framework
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
800493002
Cr-Commit-Position: refs/heads/master@{#25794}
Benedikt Meurer [Fri, 12 Dec 2014 10:45:18 +0000 (11:45 +0100)]
[turbofan] Quickfix for invalid number truncation of typed array loads.
TEST=mjsunit/compiler/regress-int32array-outofbounds-nan
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
803483002
Cr-Commit-Position: refs/heads/master@{#25793}
svenpanne [Fri, 12 Dec 2014 10:44:12 +0000 (02:44 -0800)]
Consistently use only one of virtual/OVERRIDE/FINAL.
FINAL implies OVERRIDE, which in turn implies virtual, so there's no need to use
more than one of these. The Google C++ style guide even requires this, see
http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Inheritance.
While we're here, port r24662 to x87.
The net result is that v8 compiles again with a current clang.
BUG=v8:3753
LOG=y
Review URL: https://codereview.chromium.org/
797943002
Cr-Commit-Position: refs/heads/master@{#25792}
machenbach [Fri, 12 Dec 2014 10:11:23 +0000 (02:11 -0800)]
Remove legacy python deps.
BUG=
Review URL: https://codereview.chromium.org/
794113004
Cr-Commit-Position: refs/heads/master@{#25791}
Benedikt Meurer [Fri, 12 Dec 2014 07:43:55 +0000 (08:43 +0100)]
[turbofan] Various cleanups.
- Decouple JSBuiltinReducer from JSTypedLowering.
- Unify JSTypedLowering::ReduceJSToXXX() lowering.
- Cleanup several includes and forward declarations.
- Unify helper methods.
TEST=cctest
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
797903003
Cr-Commit-Position: refs/heads/master@{#25790}
caitpotter88 [Fri, 12 Dec 2014 05:14:18 +0000 (21:14 -0800)]
Perf tests for Template Literals
Review URL: https://codereview.chromium.org/
769113002
Cr-Commit-Position: refs/heads/master@{#25789}