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}
jochen [Thu, 11 Dec 2014 19:10:29 +0000 (11:10 -0800)]
Temporarily remove warning about inconsistent overrides
Otherwise, V8 won't compile with the latest clang anymore
BUG=v8:3753
R=machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
797583004
Cr-Commit-Position: refs/heads/master@{#25788}
baptiste.afsa [Thu, 11 Dec 2014 17:54:22 +0000 (09:54 -0800)]
[turbofan] Second round of optimisation for unordered comparisons on arm/arm64.
Avoid explicitly branching to the false label on unordered when the condition
on the true branch will not catch the unordered case and let the code fall
through.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
794203003
Cr-Commit-Position: refs/heads/master@{#25787}
jarin [Thu, 11 Dec 2014 17:50:02 +0000 (09:50 -0800)]
Reland of "Avoid number range holes in bitset types."
This reverts commit
8a6cbf0a8632f39bc5bf740db672aa543e3e0f88.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
788313002
Cr-Commit-Position: refs/heads/master@{#25786}
caitpotter88 [Thu, 11 Dec 2014 17:16:21 +0000 (09:16 -0800)]
Implement Array.from()
A helpful utility which converts iterables and array-like objects into Arrays
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
LOG=Y
BUG=v8:3336
R=arv@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
363833006
Cr-Commit-Position: refs/heads/master@{#25785}
vogelheim [Thu, 11 Dec 2014 16:41:46 +0000 (08:41 -0800)]
Fix builds w/ component=="shared_library" and v8_use_external_startup_data==1.
R=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
794213002
Cr-Commit-Position: refs/heads/master@{#25784}
dslomov [Thu, 11 Dec 2014 15:53:57 +0000 (07:53 -0800)]
Update tests in preparation for shipping classes.
R=arv@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/
788773003
Cr-Commit-Position: refs/heads/master@{#25783}
caitpotter88 [Thu, 11 Dec 2014 15:43:01 +0000 (07:43 -0800)]
Add materialized literals for tagged templates in preparser
LOG=N
R=arv@chromium.org, dslomov@chromium.org, marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
792083002
Cr-Commit-Position: refs/heads/master@{#25782}
mostynb [Thu, 11 Dec 2014 15:27:38 +0000 (07:27 -0800)]
move v8_use_external_startup_data to standalone.gypi
This allows the setting to be overridable by embedders,
at the cost of forcing embedders that don't build v8
using standalone.gypi to add this setting to their build
config.
BUG=chromium:421063
LOG=Y
Review URL: https://codereview.chromium.org/
794583002
Cr-Commit-Position: refs/heads/master@{#25781}
jochen [Thu, 11 Dec 2014 15:25:23 +0000 (07:25 -0800)]
When reading the map from a live object, use a barrier load
It could happen that we shrink a live object on the main thread (e.g.
MigrateFastToSlow) while we're sweeping the same page. The main
thread first creates a filler object that the release-stores the new
map. Therefore it's important to barrier load the map word of live
objects from the sweeper thread.
BUG=none
R=ulan@chromium.org,hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
797623002
Cr-Commit-Position: refs/heads/master@{#25780}
v8-autoroll [Thu, 11 Dec 2014 14:47:57 +0000 (06:47 -0800)]
Update V8 DEPS.
Rolling v8/buildtools/clang_format/script to
81edd558fea5dd7855d67a1dc61db34ae8c1fd63
Rolling v8/buildtools to
05dd6a24723170d7c6ff35b537ee02947f619891
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
797613002
Cr-Commit-Position: refs/heads/master@{#25779}
aandrey [Thu, 11 Dec 2014 14:36:21 +0000 (06:36 -0800)]
Add a missing DebugPromiseEvent in promise.js
DevTools expects 2 events on Promise.resolve()/Promise.reject():
creation & settlement. The first one was missing.
R=ulan@chromium.org, yangguo@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
792383003
Cr-Commit-Position: refs/heads/master@{#25778}
dcarney [Thu, 11 Dec 2014 14:08:06 +0000 (06:08 -0800)]
[turbofan] update SpillRange to use ZoneVector
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
793323002
Cr-Commit-Position: refs/heads/master@{#25777}
rossberg [Thu, 11 Dec 2014 13:47:40 +0000 (05:47 -0800)]
Introduce unsigned representation types
To make space in the type bitset, remove Function, RegExp, and Buffer
types for now, since they aren't really relied upon anyway.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
795993002
Cr-Commit-Position: refs/heads/master@{#25776}
baptiste.afsa [Thu, 11 Dec 2014 13:33:28 +0000 (05:33 -0800)]
[turbofan] Avoid some redundant checks of unordered comparison on arm/arm64.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
793303002
Cr-Commit-Position: refs/heads/master@{#25775}
jochen [Thu, 11 Dec 2014 12:58:36 +0000 (04:58 -0800)]
Disable generating of code cache if the debugger is loaded
BUG=440880
R=yangguo@chromium.org,dcarney@chromium.org,vogelheim@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
796823002
Cr-Commit-Position: refs/heads/master@{#25774}
baptiste.afsa [Thu, 11 Dec 2014 12:45:27 +0000 (04:45 -0800)]
[turbofan] Mark arm64 cbz/cbnz tbz/tbnz instructions as branch instructions.
The instruction selector now selects pseudo instructions: CompareAndBranch or
TestAndBranch which are associated with their continuations so that generic
code in the code generator will treat them as branch instruction and will be
able to apply optimization like avoiding branches when the code can falltrhough.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
798553002
Cr-Commit-Position: refs/heads/master@{#25773}
dcarney [Thu, 11 Dec 2014 12:13:08 +0000 (04:13 -0800)]
[turbofan] commit allocated registers early
R=bmeurer@chromium.org
BUG=441107
LOG=N
Review URL: https://codereview.chromium.org/
795043003
Cr-Commit-Position: refs/heads/master@{#25772}
danno [Thu, 11 Dec 2014 11:52:48 +0000 (03:52 -0800)]
[turbofan]: Port lea changes to ia32
Review URL: https://codereview.chromium.org/
747283005
Cr-Commit-Position: refs/heads/master@{#25771}
jochen [Thu, 11 Dec 2014 11:28:25 +0000 (03:28 -0800)]
remove Isolate::debugger_initialized_
It's never used.
BUG=none
R=dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
797543002
Cr-Commit-Position: refs/heads/master@{#25770}
jochen [Thu, 11 Dec 2014 11:24:44 +0000 (03:24 -0800)]
Disable invalid DCHECK_EQ in serializer.cc
BUG=none
R=mvstanton@chromium.org,yangguo@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
791363002
Cr-Commit-Position: refs/heads/master@{#25769}
yangguo [Thu, 11 Dec 2014 11:23:26 +0000 (03:23 -0800)]
Implement Math.log2 via ported extract from fdlibm.
Adapted from Raymond Toy's (rtoy@chromium.org) port, extracted from fdlibm's pow implementation.
R=rtoy@chromium.org
BUG=v8:3579
LOG=N
Review URL: https://codereview.chromium.org/
786823003
Cr-Commit-Position: refs/heads/master@{#25768}
kozyatinskiy [Thu, 11 Dec 2014 10:58:48 +0000 (02:58 -0800)]
[V8] Report v8::AfterCompile and v8::CompileError to listener on pause
V8 didn't report compile events on pause before this patch. These events can be important for listener. For example, DevTools allows user to execute some JS code on pause and needs to show correct stack trace in message from it.
BUG=396013
R=yurys@chromium.org
Review URL: https://codereview.chromium.org/
781623004
Cr-Commit-Position: refs/heads/master@{#25767}
machenbach [Thu, 11 Dec 2014 10:13:29 +0000 (02:13 -0800)]
Switch icu repo to icu.git in v8 DEPS.
This ports https://codereview.chromium.org/
769413004 to v8
DEPS.
BUG=chromium:438401
LOG=n
TBR=jshin@chromium.org
Review URL: https://codereview.chromium.org/
796813002
Cr-Commit-Position: refs/heads/master@{#25766}
Benedikt Meurer [Thu, 11 Dec 2014 09:30:55 +0000 (10:30 +0100)]
[turbofan] Fix typing of typed array loads/stores.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
794113002
Cr-Commit-Position: refs/heads/master@{#25765}
vchigrin [Thu, 11 Dec 2014 09:27:29 +0000 (01:27 -0800)]
Fix crash in V8 during serializing objects requiring alignment.
Review URL: https://codereview.chromium.org/
793753002
Cr-Commit-Position: refs/heads/master@{#25764}
adamk [Wed, 10 Dec 2014 22:16:12 +0000 (14:16 -0800)]
Create optimized versions of the Map/Set clear method
This completes the first round of optimizations for Map and Set.
All non-key-dependent methods now have a Hydrogen version, and
for keyed methods, string versions are optimized.
Review URL: https://codereview.chromium.org/
796503002
Cr-Commit-Position: refs/heads/master@{#25763}
mathiasb [Wed, 10 Dec 2014 20:41:00 +0000 (12:41 -0800)]
Implement the `RegExp.prototype.flags` getter
TEST=mjsunit/harmony
BUG=v8:3751
LOG=N
Review URL: https://codereview.chromium.org/
770333005
Cr-Commit-Position: refs/heads/master@{#25762}
dslomov [Wed, 10 Dec 2014 20:39:21 +0000 (12:39 -0800)]
Ship ES6 block scoping.
R=rossberg@chromium.org
BUG=v8:2198
LOG=Y
Review URL: https://codereview.chromium.org/
792543002
Cr-Commit-Position: refs/heads/master@{#25761}
dslomov [Wed, 10 Dec 2014 20:09:32 +0000 (12:09 -0800)]
Update strict mode function declaration tests before block scoping.
R=arv@chromium.org,marja@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/
788143004
Cr-Commit-Position: refs/heads/master@{#25760}
adamk [Wed, 10 Dec 2014 20:02:48 +0000 (12:02 -0800)]
Optimize Object.seal and Object.preventExtensions
They both now run fast (due to utilizing transitions instead of always
creating new maps) and sealed or non-extensible objects can stay in
fast mode after transitioning.
This almost entirely reuses the code for transitioning objects
frozen by Object.freeze(), with the added benefit of freeing
up a bit on the map (we no longer keep track of frozen-ness,
as that bit wasn't used for anything interesting).
BUG=v8:3662,chromium:115960
LOG=y
Review URL: https://codereview.chromium.org/
776143005
Cr-Commit-Position: refs/heads/master@{#25759}
adamk [Wed, 10 Dec 2014 18:47:24 +0000 (10:47 -0800)]
Create optimized inline versions of Map and Set initialization
Review URL: https://codereview.chromium.org/
779173010
Cr-Commit-Position: refs/heads/master@{#25758}
Adam Klein [Wed, 10 Dec 2014 18:25:41 +0000 (10:25 -0800)]
Ensure class prototype objects have the right Map::constructor field
The null constructor they had previously could be observed as crashes in
the V8 API's Object::CreationContext() method and in Object.observe.
BUG=v8:3750
LOG=n
R=arv@chromium.org, dslomov@chromium.org
Review URL: https://codereview.chromium.org/
787763005
Cr-Commit-Position: refs/heads/master@{#25757}
jarin [Wed, 10 Dec 2014 18:25:14 +0000 (10:25 -0800)]
Revert of Avoid number range holes in bitset types. (patchset #5 id:80001 of https://codereview.chromium.org/
759013003/)
Reason for revert:
For breaking the waterfall (run-json-stringify test).
Original issue's description:
> Avoid number range holes in bitset types.
>
> BUG=
TBR=rossberg@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
794663002
Cr-Commit-Position: refs/heads/master@{#25756}
ulan [Wed, 10 Dec 2014 16:57:21 +0000 (08:57 -0800)]
Skip slow webkit/array-iterate-backwards in arm64.debug/gc-stress mode.
BUG=
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
795633002
Cr-Commit-Position: refs/heads/master@{#25755}
jarin [Wed, 10 Dec 2014 16:39:02 +0000 (08:39 -0800)]
Avoid number range holes in bitset types.
BUG=
Review URL: https://codereview.chromium.org/
759013003
Cr-Commit-Position: refs/heads/master@{#25754}
vogelheim [Wed, 10 Dec 2014 16:36:29 +0000 (08:36 -0800)]
Make d8 default to standard location for external snapshots.
This makes tests runnable with the external snapshot, and should be the
last step before enabling external snapshot on >=1 bots.
R=yangguo
BUG=
Review URL: https://codereview.chromium.org/
780333004
Cr-Commit-Position: refs/heads/master@{#25753}
vogelheim [Wed, 10 Dec 2014 16:06:00 +0000 (08:06 -0800)]
Fix mirror-script and debug-script tests when using external natives.
R=yangguo
BUG=
Review URL: https://codereview.chromium.org/
792733003
Cr-Commit-Position: refs/heads/master@{#25752}
mstarzinger [Wed, 10 Dec 2014 15:19:53 +0000 (07:19 -0800)]
Make loop assignment analysis a separate phase.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
770373003
Cr-Commit-Position: refs/heads/master@{#25751}
ishell [Wed, 10 Dec 2014 15:18:44 +0000 (07:18 -0800)]
Reland of "TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name."
Review URL: https://codereview.chromium.org/
793453004
Cr-Commit-Position: refs/heads/master@{#25750}
yangguo [Wed, 10 Dec 2014 14:55:51 +0000 (06:55 -0800)]
Disallow object/function templates when creating snapshots.
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
791033002
Cr-Commit-Position: refs/heads/master@{#25749}
yangguo [Wed, 10 Dec 2014 14:40:54 +0000 (06:40 -0800)]
Consistently use "use strict" where possible.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
789163002
Cr-Commit-Position: refs/heads/master@{#25748}
yangguo [Wed, 10 Dec 2014 14:20:12 +0000 (06:20 -0800)]
Extract non-IO part of mksnapshot into an API method.
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
789213002
Cr-Commit-Position: refs/heads/master@{#25747}
balazs.kilvady [Wed, 10 Dec 2014 13:13:53 +0000 (05:13 -0800)]
MIPS: Fix after 'Reland remaining parts of 'Use weak cells in map checks in polymorphic ICs''.
Fix
d2e54925caa8b14988a46a912a8b061bf4c6cbf3
In 'MIPS: Change CmpWeakValue to a more MIPS like GetWeakValue.'
a25003cfa6eac88635c12b51ec6ad74fed0d91a1
we switched to use GetWeakValue.
BUG=
Review URL: https://codereview.chromium.org/
782273004
Cr-Commit-Position: refs/heads/master@{#25746}
hpayer [Wed, 10 Dec 2014 12:24:28 +0000 (04:24 -0800)]
Use nobarrier load in store buffer duplicate removal to annotate harmless race.
BUG=
Review URL: https://codereview.chromium.org/
787383002
Cr-Commit-Position: refs/heads/master@{#25745}
dcarney [Wed, 10 Dec 2014 12:14:12 +0000 (04:14 -0800)]
fix gcmole warning after r25737
TBR=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
794563002
Cr-Commit-Position: refs/heads/master@{#25744}
Benedikt Meurer [Wed, 10 Dec 2014 11:59:29 +0000 (12:59 +0100)]
[turbofan] Fix cycles introduced by pushing ToNumbers into phis.
TEST=cctest
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
790123002
Cr-Commit-Position: refs/heads/master@{#25743}
dcarney [Wed, 10 Dec 2014 11:48:28 +0000 (03:48 -0800)]
[turbofan] update register allocator with auto, nullptr and ZoneVector
BUG=
Review URL: https://codereview.chromium.org/
789083005
Cr-Commit-Position: refs/heads/master@{#25742}
yangguo [Wed, 10 Dec 2014 11:46:27 +0000 (03:46 -0800)]
Reland "Use same blob format for internal and external snapshots."
Review URL: https://codereview.chromium.org/
791723004
Cr-Commit-Position: refs/heads/master@{#25741}
titzer [Wed, 10 Dec 2014 11:45:20 +0000 (03:45 -0800)]
Reland "[turbofan] Fix control reducer bug with NTLs."
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
789083004
Cr-Commit-Position: refs/heads/master@{#25740}
ulan [Wed, 10 Dec 2014 10:57:30 +0000 (02:57 -0800)]
Reland remaining parts of 'Use weak cells in map checks in polymorphic ICs'
BUG=v8:3663
LOG=N
Review URL: https://codereview.chromium.org/
792543003
Cr-Commit-Position: refs/heads/master@{#25739}
ulan [Wed, 10 Dec 2014 10:28:41 +0000 (02:28 -0800)]
Reland 'Do not embed constant functions in StoreTransition stub.'
BUG=v8:3629
LOG=N
Review URL: https://codereview.chromium.org/
787153002
Cr-Commit-Position: refs/heads/master@{#25738}
dcarney [Wed, 10 Dec 2014 10:18:00 +0000 (02:18 -0800)]
ExecutableAccessorInfo::clear_setter should set a null foreign pointer
R=jkummerow@chromium.org
BUG=433458
LOG=N
Review URL: https://codereview.chromium.org/
759683004
Cr-Commit-Position: refs/heads/master@{#25737}
dcarney [Wed, 10 Dec 2014 09:45:49 +0000 (01:45 -0800)]
[turbofan] delay inserting spill slots for parent ranges.
R=jarin@chromium.org,
BUG=
Review URL: https://codereview.chromium.org/
785993002
Cr-Commit-Position: refs/heads/master@{#25736}
d [Wed, 10 Dec 2014 08:58:04 +0000 (00:58 -0800)]
Add Array.prototype.includes
Requires adding a SameValueZero implementation.
LOG=Y
BUG=v8:3575
R=dslomov@chromium.org, arv@chromium.org
TEST=added to test262
Review URL: https://codereview.chromium.org/
771863002
Cr-Commit-Position: refs/heads/master@{#25735}
caitpotter88 [Wed, 10 Dec 2014 08:56:56 +0000 (00:56 -0800)]
Rename shadowing `pos` variable in ParseTemplateLiteral()
LOG=N
R=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
785233005
Cr-Commit-Position: refs/heads/master@{#25734}
dslomov [Wed, 10 Dec 2014 08:55:45 +0000 (00:55 -0800)]
Pass --noharmony-scoping to tests validating that we throw on 'const' in strict mode.
R=marja@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/
784323002
Cr-Commit-Position: refs/heads/master@{#25733}