Commit Graph

17514 Commits

Author SHA1 Message Date
caitpotter88
17ba366bb8 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}
2014-12-11 17:16:27 +00:00
caitpotter88
ed29ecd838 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}
2014-12-11 15:43:08 +00:00
jochen
b7caca9f9a 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}
2014-12-11 15:25:30 +00:00
aandrey
1c4a9193cc 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}
2014-12-11 14:36:27 +00:00
dcarney
91ed586ec2 [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}
2014-12-11 14:08:18 +00:00
rossberg
7e9ca491a4 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}
2014-12-11 13:47:46 +00:00
baptiste.afsa
732c8a0966 [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}
2014-12-11 13:33:43 +00:00
jochen
aa0664e58f 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}
2014-12-11 12:58:47 +00:00
baptiste.afsa
49baecc42b [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}
2014-12-11 12:45:33 +00:00
dcarney
8897ab8930 [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}
2014-12-11 12:13:19 +00:00
danno
2f7a5af0e3 [turbofan]: Port lea changes to ia32
Review URL: https://codereview.chromium.org/747283005

Cr-Commit-Position: refs/heads/master@{#25771}
2014-12-11 11:53:00 +00:00
jochen
4c3e4f8d75 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}
2014-12-11 11:28:33 +00:00
jochen
52c14c8dc8 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}
2014-12-11 11:24:51 +00:00
yangguo
dae6dfe08b 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}
2014-12-11 11:23:37 +00:00
kozyatinskiy
affe4c03b6 [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}
2014-12-11 10:59:00 +00:00
Benedikt Meurer
2bfe09a607 [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}
2014-12-11 09:31:05 +00:00
vchigrin
f196a953c0 Fix crash in V8 during serializing objects requiring alignment.
Review URL: https://codereview.chromium.org/793753002

Cr-Commit-Position: refs/heads/master@{#25764}
2014-12-11 09:27:41 +00:00
adamk
9aab9f13d6 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}
2014-12-10 22:16:33 +00:00
mathiasb
33f0cf5acd 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}
2014-12-10 20:41:10 +00:00
dslomov
059482b70d 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}
2014-12-10 20:39:32 +00:00
adamk
4fa7ae1c07 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}
2014-12-10 20:02:59 +00:00
adamk
8877f15664 Create optimized inline versions of Map and Set initialization
Review URL: https://codereview.chromium.org/779173010

Cr-Commit-Position: refs/heads/master@{#25758}
2014-12-10 18:47:36 +00:00
Adam Klein
986e7cefe1 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}
2014-12-10 18:25:55 +00:00
jarin
8a6cbf0a86 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}
2014-12-10 18:25:38 +00:00
jarin
4de4f74cf2 Avoid number range holes in bitset types.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25754}
2014-12-10 16:39:10 +00:00
vogelheim
a0a49f523a 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}
2014-12-10 16:36:35 +00:00
vogelheim
65006b85b7 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}
2014-12-10 16:06:14 +00:00
mstarzinger
0f9d98e053 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}
2014-12-10 15:20:01 +00:00
ishell
7d13ca278a 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}
2014-12-10 15:18:52 +00:00
yangguo
25cfc5dc29 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}
2014-12-10 14:55:57 +00:00
yangguo
f65a023fac Consistently use "use strict" where possible.
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25748}
2014-12-10 14:41:05 +00:00
yangguo
d28b2a194d 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}
2014-12-10 14:20:26 +00:00
balazs.kilvady
30f2578ca2 MIPS: Fix after 'Reland remaining parts of 'Use weak cells in map checks in polymorphic ICs''.
Fix d2e54925ca

In 'MIPS: Change CmpWeakValue to a more MIPS like GetWeakValue.'
a25003cfa6
we switched to use GetWeakValue.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25746}
2014-12-10 13:14:04 +00:00
hpayer
071a28605e 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}
2014-12-10 12:24:33 +00:00
dcarney
70caf05b6a fix gcmole warning after r25737
TBR=jkummerow@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25744}
2014-12-10 12:14:23 +00:00
Benedikt Meurer
f6849d9ed4 [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}
2014-12-10 11:59:44 +00:00
dcarney
59753fb9c1 [turbofan] update register allocator with auto, nullptr and ZoneVector
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25742}
2014-12-10 11:48:33 +00:00
yangguo
7cff32a9bd Reland "Use same blob format for internal and external snapshots."
Review URL: https://codereview.chromium.org/791723004

Cr-Commit-Position: refs/heads/master@{#25741}
2014-12-10 11:46:55 +00:00
titzer
9a823cf612 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}
2014-12-10 11:45:35 +00:00
ulan
d2e54925ca 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}
2014-12-10 10:57:36 +00:00
ulan
3834b78465 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}
2014-12-10 10:28:51 +00:00
dcarney
ea11ffc65b 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}
2014-12-10 10:18:12 +00:00
dcarney
aae665862f [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}
2014-12-10 09:46:01 +00:00
d
4161b54d58 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}
2014-12-10 08:58:15 +00:00
caitpotter88
017eace733 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}
2014-12-10 08:57:08 +00:00
Benedikt Meurer
19418d76df [x64] Fix optimization for certain checked load/stores.
BUG=chromium:439743
LOG=y
TEST=mjsunit
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25731}
2014-12-10 07:49:12 +00:00
Ben L. Titzer
a068503b45 Revert "[turbofan] Fix control reducer bug with NTLs."
This reverts commit aeda76c5cf.

Reason: exposed other TurboFan bugs.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25730}
2014-12-09 16:28:20 +00:00
machenbach
da6dbe78bc Revert of Use same blob format for internal and external snapshots. (patchset #2 id:20001 of https://codereview.chromium.org/787033002/)
Reason for revert:
[sheriff] breaks http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/1293

Original issue's description:
> Use same blob format for internal and external snapshots.
>
> R=vogelheim@chromium.org

TBR=vogelheim@chromium.org,yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25729}
2014-12-09 16:19:57 +00:00
yangguo
d9de2aaa17 Revert of Do not embed constant functions in StoreTransition stub. (patchset #3 id:40001 of https://codereview.chromium.org/769733003/)
Reason for revert:
GC stress failure: http://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress%20-%201/builds/1038

Original issue's description:
> Do not embed constant functions in StoreTransition stub.
>
> BUG=v8:3629
> LOG=N

TBR=ishell@google.com,ishell@chromium.org,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3629

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

Cr-Commit-Position: refs/heads/master@{#25728}
2014-12-09 16:09:44 +00:00
yangguo
03ba4becbf Use same blob format for internal and external snapshots.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25727}
2014-12-09 15:12:27 +00:00
ulan
876a1ddd80 Do not embed constant functions in StoreTransition stub.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25726}
2014-12-09 15:11:11 +00:00
titzer
aeda76c5cf [turbofan] Fix control reducer bug with NTLs.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25725}
2014-12-09 15:09:59 +00:00
chunyang.dai
56f8ba13d5 Fix a typo error.
This error is introduced by baafb8f92e.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25724}
2014-12-09 15:08:55 +00:00
jochen
581747c869 Make it possible to turn on OBJECT_PRINT without DEBUG
BUG=none
R=machenbach@chromium.org
LOG=n
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#25723}
2014-12-09 14:20:16 +00:00
Benedikt Meurer
48a6766e78 [x86] Disable invalid checked load/store optimization.
TEST=mjsunit/compiler/regress-lena
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25722}
2014-12-09 14:16:34 +00:00
jochen
7216f37ce7 Also ignore NDEBUG for chromium code
BUG=none
R=machenbach@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25720}
2014-12-09 10:57:23 +00:00
bmeurer
baafb8f92e [turbofan] Turn JSToBoolean and JSUnaryNot into pure operators.
Also fix the pushing of JSToBoolean into Phis and generalize it to
also include pushing into Selects.

TEST=cctest,unittests

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

Cr-Commit-Position: refs/heads/master@{#25718}
2014-12-09 07:35:12 +00:00
mstarzinger
8acf387620 Make --no-turbo-types work on all paths through the pipeline.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25717}
2014-12-09 04:47:59 +00:00
adamk
243764b04b Optimize add/set/delete operations for string keys in Maps and Sets
This was previously landed in commit 8599f5f, but failed the
collections mjsunit test on ia32 with --deopt-every-n=1. The fixed
patch adds a ClearFlag(HValue::kCanOverflow) call after every
arithmetic operation, which should remove all the deopt points in these
intrinsics.

Ideally, it seems like there should be a way to verify that there are
no deopt points for these inline optimized functions, since there's
nothing to deopt to. But I don't currently know of such a thing.

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

Cr-Commit-Position: refs/heads/master@{#25715}
2014-12-08 18:03:39 +00:00
dslomov
b4f3250712 Better message location for 'super(...)' restriction error.
R=arv@chromium.org
BUG=v8:3330
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25714}
2014-12-08 15:55:03 +00:00
dslomov
1954ad8bc1 Do not reflect uninitialized 'let' and 'const' in scope mirrors.
R=yangguo@chromium.org,aandrey@chromium.org
BUG=v8:3743
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25712}
2014-12-08 14:59:28 +00:00
mstarzinger
abe5c29077 Silence --trace-turbo a bit and behave graceful in sandbox.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25709}
2014-12-08 12:26:22 +00:00
marja
6680fd1591 Handle invalid parser cache gracefully (move invalid cache handling to embedder).
Blink already has code for handling invalid cached data. The attached test
ensures that cached data is gracefully rejected if it cannot be used.

This also unifies parser cache and code cache handling.

R=yangguo@chromium.org
BUG=439889
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25708}
2014-12-08 11:47:50 +00:00
Benedikt Meurer
a92adc5803 [turbofan] Remove obsolete pure flag.
Use the Operator::kPure flag instead, which determines whether the JS
operator has effect/control edges.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25707}
2014-12-08 11:25:46 +00:00
ulan
513d1261e1 Fix typo in r25689 (Refactor Map::ConstructionCount.)
BUG=chromium:439868
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25705}
2014-12-08 10:46:19 +00:00
dcarney
a26a5440a5 [turbofan] reuse spill slots for phis
R=jarin@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25704}
2014-12-08 10:45:13 +00:00
yangguo
58fe6e732e Clear cached line ends array when serializing script object.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25703}
2014-12-08 10:23:13 +00:00
Jochen Eisinger
7a21cf2f77 Fix compilation with verify heap on in release mode
BUG=none
TBR=rossberg@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25702}
2014-12-08 09:52:51 +00:00
jochen
97c1f4b15c Turn on DCHECKs and other debugging code if dcheck_always_on is 1
When compiling with the macro DCHECK_ALWAYS_ON defined, DCHECKs and
supporting code gets compiled and enabled.

This increases test coverage for chromium release buildbots

BUG=v8:3731
R=jkummerow@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25701}
2014-12-08 09:26:16 +00:00
Benedikt Meurer
11b52971d9 Make cpplint happy.
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25699}
2014-12-08 08:53:20 +00:00
Benedikt Meurer
1a05ece305 [turbofan] Improve typing of JSToNumber.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25698}
2014-12-08 08:28:25 +00:00
adamk
1988251044 Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #1 id:1 of https://codereview.chromium.org/777663003/)
Reason for revert:
Deopt fuzzer reports that something's still broken, reverting until
I can create a minimal repro.

Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets
>
> This was previously landed in commit 66e2f60, but failed the
> collections mjsunit test with --deopt-every-n=1 due to a typo
> in the shrinking code. This patch corrects and simplifies the
> shrinking logic, and the tests now pass.
>
> R=dslomov@chromium.org
>
> Committed: 8599f5f047

TBR=dslomov@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25696}
2014-12-05 22:25:11 +00:00
Adam Klein
8599f5f047 Optimize add/set/delete operations for string keys in Maps and Sets
This was previously landed in commit 66e2f60, but failed the
collections mjsunit test with --deopt-every-n=1 due to a typo
in the shrinking code. This patch corrects and simplifies the
shrinking logic, and the tests now pass.

R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25695}
2014-12-05 21:04:00 +00:00
arv
c8c7395644 Optimize GetPrototype
This introduces Hydrogen for %_GetPrototype. The code falls back on
runtime if the object needs access checks or if its prototype is a
hidden prototype.

BUG=None
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25694}
2014-12-05 20:36:50 +00:00
paul.lind
761891d201 MIPS64: Fix port of Refactor Map::ConstructionCount.
Port 35ff259b63.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25693}
2014-12-05 19:30:59 +00:00
balazs.kilvady
1a033e5df4 MIPS: Refactor Map::ConstructionCount.
Port 35ff259b63

Original commit message:
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25692}
2014-12-05 17:49:42 +00:00
dslomov
293f898a6f Make sure that individual shipping features can be disabled.
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25690}
2014-12-05 15:35:37 +00:00
ulan
35ff259b63 Refactor Map::ConstructionCount.
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive.

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

Cr-Commit-Position: refs/heads/master@{#25689}
2014-12-05 15:28:22 +00:00
dcarney
5ce364d817 new api for adding indexed interceptors
R=svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25688}
2014-12-05 15:21:27 +00:00
ulan
a9f692eca8 Fix %GetWeakSetValues to work correctly with GC.
This fixes mjsunit/es6/mirror-collections failure in arm64 gc-stress bot.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25687}
2014-12-05 13:27:17 +00:00
verwaest
7fb5f74d20 Allow eval in detached contexts
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25686}
2014-12-05 13:25:10 +00:00
dcarney
4c7effe56e [turbofan] disable neutering on embedded arraybuffers
R=titzer@chromium.org,

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25685}
2014-12-05 13:08:03 +00:00
dslomov
bd04e6cdad Fix the order of context binding/simulate insertion for BlockContexts.
R=jarin@chromium.org
BUG=v8:3741
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25684}
2014-12-05 13:06:50 +00:00
danno
1150cf7f9a [turbofan] Fix Corrections tankage on x64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25683}
2014-12-05 13:05:46 +00:00
mstarzinger
9ed88f1789 Switch two ZoneLists to ZoneVector in register allocator.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25682}
2014-12-05 13:04:43 +00:00
yangguo
ab234760d7 Reland "Encode reservation meta data in the snapshot blob."
CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg,v8_linux_nosnap_rel

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

Cr-Commit-Position: refs/heads/master@{#25681}
2014-12-05 13:03:30 +00:00
mstarzinger
aae8fe7550 Cleanup deoptimizer relocation slot preparation.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25680}
2014-12-05 13:02:13 +00:00
jochen
ab16c8a3a5 When generating code for ia32, make sure that there is enough reloc space
Compare with LCodeGen::FinishCode

BUG=none
R=jarin@chromium.org,mstarzinger@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25679}
2014-12-05 11:15:32 +00:00
mstarzinger
bedb774a62 Finally drop outdated misleading runtime.js comment.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25678}
2014-12-05 11:01:43 +00:00
danno
85d2db8781 [turbofan] Use "leal" in even more situations
Achieve more than parity with modes currently handled on ia32 in preparation for
porting the entire mechanism to ia32, including supporting mul of constants 3,
5 and 9 with "leal" instructions.

TEST=unittests

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

Cr-Commit-Position: refs/heads/master@{#25677}
2014-12-05 10:54:40 +00:00
Benedikt Meurer
5866c5c2f0 [x86] Slow case of TruncateDoubleToI shouldn't be inline.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25676}
2014-12-05 09:29:36 +00:00
Benedikt Meurer
b3ace35209 [turbofan] Redundant load elimination.
This is an initial version of redundant load elimination, currently
limited to LoadField operators, and implemented by walking the effect
chain.

TEST=unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25673}
2014-12-05 07:59:18 +00:00
paul.lind
13c42aa8d9 MIPS: Fixed environment handling for LFlooringDivI.
Port c16b8f6cbb

TEST=mjsunit/regress/regress-437765
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25671}
2014-12-04 23:50:41 +00:00
adamk
13fd4a529a Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #5 id:70001 of https://codereview.chromium.org/773993002/)
Reason for revert:
Caused test failures in mjsunit/es6/collections with --deopt-every-n-times=1

Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets

TBR=dslomov@chromium.org,arv@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25670}
2014-12-04 21:37:24 +00:00
adamk
66e2f60bf9 Optimize add/set/delete operations for string keys in Maps and Sets
Review URL: https://codereview.chromium.org/773993002

Cr-Commit-Position: refs/heads/master@{#25668}
2014-12-04 20:07:54 +00:00
arv
44149ae751 Make template scan related function take a template<bool> parameter
This is for performance. Having to do the test in every Advance was too
expensive.

BUG=438991, v8:3230
LOG=N
R=dslomov@chromium.org, marja

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

Cr-Commit-Position: refs/heads/master@{#25667}
2014-12-04 19:24:34 +00:00
vogelheim
b27431d52f Cleanup: Remove NativesCollection<.>::*Raw* methods.
These methods for used for compressed libraries, where GetSource* functions
contained the compressed sources and [GS]etRawSource* the uncompressed
sources. This is dead code since the API no longer supports compression.

(If you need/want compressed sources, use the external startup data and
 compress/uncompress on the Embedder's side.)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25666}
2014-12-04 18:51:22 +00:00
adamk
6230641b83 Optimize testing for an index's existence in packed Arrays
This patch introduces a new inline runtime function,
%_HasFastPackedElements(), and uses it both in the implementation
of the 'in' operator and in the array builtins to speed
up testing for the existence of an index in an array.

In testing with the microbenchmark on the attached bug,
for example, the runtime goes from 326ms to 66ms.

A reviewer might ask whether the HAS_INDEX macro is worthwhile,
and I tried the same example without it, which pushed the
microbenchmark up to 157ms. So it seems it's worth it to
avoid the function call to IN() if we know we're dealing
with arrays and numbers.

BUG=v8:3701
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25665}
2014-12-04 18:46:46 +00:00
Dusan Milosavljevic
f62ab8d061 MIPS; Improve checked load/store operators for constant offset and length.
TEST=
BUG=
R=balazs.kilvady@imgtec.com, paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25664}
2014-12-04 17:28:08 +00:00
jochen
0197a15f3c Explicitly track whether incremental marking was activated
In the gc-tracer, we check whether we're marking to figure out which
part of the mark compact we're in. If we aborted incremental marking for
whatever reason, the check fails and we might later run into trouble

BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25663}
2014-12-04 16:44:33 +00:00
balazs.kilvady
a25003cfa6 MIPS: Change CmpWeakValue to a more MIPS like GetWeakValue.
This approach saves one instruction by eliminating the use of Subu as a
pseudo-comparison.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25662}
2014-12-04 16:29:16 +00:00
arv
edf3dab466 ES6 template literals: Fix issue with template after rbrace
If we hade }` the right brace was always treated as part of the
template literal. We should only treat the right brace as part of
the literal when we continue to parse the template literal after a
placeholder.

BUG=v8:3734
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25661}
2014-12-04 14:50:17 +00:00
jochen
f5a027dc70 Check whether the marking deque overflowed in ProcessEphemeralMarking
Otherwise, we might exit to early when we call ProcessEphemeralMarking
with an empty, overflown deque

BUG=none
R=hpayer@chromium.org,erik.corry@gmail.com
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25660}
2014-12-04 14:09:35 +00:00
arv
eb5049b14d Stage ES6 template literals
BUG=v8:3230
LOG=Y
R=dslomov@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25659}
2014-12-04 12:25:01 +00:00
Benedikt Meurer
73b4af7aa6 [turbofan] Narrow upper bounds during typed lowering.
This is a temporary solution, which optionally narrows upper bounds of
nodes when changing the operator of a node.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25658}
2014-12-04 11:19:40 +00:00
ulan
b98a37113d Do not embed function in DirectLoadGlobalFunctionPrototype.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25657}
2014-12-04 10:52:49 +00:00
Benedikt Meurer
2bf048f46c [turbofan] Reduce context accesses during typed lowering.
TEST=unittests
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25656}
2014-12-04 10:50:58 +00:00
machenbach
ccf68a7b92 Revert of Encode reservation meta data in the snapshot blob. (patchset #3 id:40001 of https://codereview.chromium.org/781443002/)
Reason for revert:
[sheriff] Breaks http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064/builds/1540

Original issue's description:
> Encode reservation meta data in the snapshot blob.
>
> This also makes reserving multiple chunks per object space possible.
>
> R=vogelheim@chromium.org

TBR=vogelheim@chromium.org,baixo@chromium.org,yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25654}
2014-12-04 10:31:33 +00:00
weiliang.lin
a8fbf3ac24 [x64] check sahf correctly
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25653}
2014-12-04 10:13:20 +00:00
yangguo
aa3ceb8b71 Encode reservation meta data in the snapshot blob.
This also makes reserving multiple chunks per object space possible.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25652}
2014-12-04 09:50:39 +00:00
aandrey
a0ac642bc3 Fix Promise.resolve/Promise.reject unnecessarily scheduling a microtask.
R=rossberg@chromium.org, yangguo@chromium.org, adamk@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25650}
2014-12-04 08:53:32 +00:00
cdai2
ed95aaaba4 X87: Use weak cells to embed maps in store handler.
port 3fc9c9b665

original commit message:

  Use weak cells to embed maps in store handler.
  BUG=v8:3629
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#25649}
2014-12-04 04:32:07 +00:00
chunyang.dai
3881b64532 X87: CheckPrototypes uses weak cells to embed maps.
port 062a032f50

original commit message:

  CheckPrototypes uses weak cells to embed maps.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25648}
2014-12-04 02:59:59 +00:00
balazs.kilvady
ddcb9b6d1a MIPS: Use weak cells to embed maps in store handler.
Port 3fc9c9b665

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25647}
2014-12-03 18:33:13 +00:00
titzer
9143a224db Reland "[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer."
This reverts commit 918ef9d712.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25646}
2014-12-03 17:53:43 +00:00
balazs.kilvady
e7efc885d4 MIPS: CheckPrototypes uses weak cells to embed maps.
Port 062a032f50

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25645}
2014-12-03 17:37:15 +00:00
Ben L. Titzer
918ef9d712 Revert "[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer."
This reverts commit a48ad24a7c.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25643}
2014-12-03 15:03:27 +00:00
wingo
21b23e6966 Move more don't-crankshaft computation to numbering pass
The "do I inline?" decision needs many of the same inputs as the "should
I even try to crankshaft?" decision.  This change consolidates these
checks in the numbering pass.  It also removes the is_generator() check,
as that's already handled when visiting the initial Yield expression.

R=svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25642}
2014-12-03 14:52:42 +00:00
balazs.kilvady
68c800ef9d MIPS64: [turbofan] Add checked load/store operators.
Port c516d4f094

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25641}
2014-12-03 14:18:34 +00:00
arv
d67e573dbe Simplify template literal raw string creation
BUG=v8:3710
LOG=Y
R=dslomov@chromium.org, marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25640}
2014-12-03 14:17:23 +00:00
ulan
3fc9c9b665 Use weak cells to embed maps in store handler.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25639}
2014-12-03 13:36:59 +00:00
mstarzinger
740d0a987a Prevent redundant node revisit in ControlEquivalence.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25638}
2014-12-03 13:24:55 +00:00
hpayer
74321d5558 Restart idle round on context disposal.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25637}
2014-12-03 13:14:00 +00:00
Dusan Milosavljevic
8138bb5b85 MIPS: Improve pushing arguments on stack.
TEST=
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25636}
2014-12-03 13:10:09 +00:00
Dusan Milosavljevic
57957b480c MIPS: Fix ambiguous double constant loading after adding checked load/store operators.
The V8_INFINITY macro expands to constant expression of type float.

TEST=mjsunit/constant-folding-2
BUG=
R=balazs.kilvady@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25635}
2014-12-03 12:51:14 +00:00
ulan
062a032f50 CheckPrototypes uses weak cells to embed maps.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25634}
2014-12-03 12:34:32 +00:00
titzer
a48ad24a7c [turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer.
R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25633}
2014-12-03 11:52:03 +00:00
bmeurer
e564b3fe06 [turbofan] Initial work on cleaning up the Node class.
- Remove use_count_, only used for debug builds and tests.
- Use BitField instead of the unreliable C++ bit fields.
- Improve memory layout.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25632}
2014-12-03 10:33:52 +00:00
hpayer
708610e965 Print finalize incremental marking event in idle notification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25631}
2014-12-03 10:03:30 +00:00
hpayer
7ec1c3616e Slow down incremental marking on main thread when idle notification is active.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25630}
2014-12-03 09:37:07 +00:00
yangguo
07584119ca Serializer: cache recent back references for shorter encoding.
And some refactorings.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25629}
2014-12-03 09:12:37 +00:00
Benedikt Meurer
2983d84e5c [turbofan] Combine additional Word32And with Int32Add and negative power of two.
- (y << L + x) & (-1 << L) => (x & (-1 << L)) + y << L
- (x + y << L) & (-1 << L) => (x & (-1 << L)) + y << L

TEST=unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25627}
2014-12-03 07:35:03 +00:00
paul.lind
a07045af54 MIPS: [turbofan] Add checked load/store operators.
Port c516d4f094

Partial port to un-break the build. There are a few failing
tests, and the code is suboptimal for smaller offsets.

Fixes and mips64 port will come in another CL.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25626}
2014-12-03 00:28:24 +00:00
adamk
34d9be2e58 Optimize non-mutation Map and Set operations for String keys
Review URL: https://codereview.chromium.org/757143002

Cr-Commit-Position: refs/heads/master@{#25625}
2014-12-02 23:06:55 +00:00
vogelheim
881a921bb2 Fix NativesCollection<.>::GetScriptName in natives-external.cc
As there's no associated bug, here's the issue:
- Some ES6 functionality in Chrome is presently broken; this fixes it.
- The natives (built-in libraries) can be accessed by their 'name'.
  This is used to active ES6 flags.
- Strangely enough, there's an id and a name, where the name is derived
  from the id as "native %s.js", with %s for the id.
- NativesCollection<.>::GetScriptName uses the name.
- NativesCollection<.>::GetIndex uses the id.
- Example:
  NativesCollection<EXPERIMENTAL>::GetIndex("harmony-string") -> 3
  NativesCollection<EXPERIMENTAL>::GetScriptName(3) -> "native harmony-string.js"
- Nobody knows why; it's quite mysterious.
- When introducing the "external startup data", I didn't fully understand this
  and used the id in both places.
- When the "external startup data" was turned on in Chrome, ES6 features broke
  in Chrome since the libraries could no longer be found.
- This CL fixes this and makes the external startup data behave just like the
  built-in version.

R=dslomov
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25624}
2014-12-02 18:53:34 +00:00
baptiste.afsa
80012d0b96 [turbofan] Enable DivIsSafe flag for arm64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25623}
2014-12-02 18:45:38 +00:00
mstarzinger
5db82a57b6 Switch CFGBuilder to use NodeMarker.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25622}
2014-12-02 16:51:55 +00:00
mstarzinger
f9e4527f32 Restrict floating control to minimal control-connected component.
R=jarin@chromium.org
TEST=cctest/test-scheduler/NestedFloatingDiamondWithChain

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

Cr-Commit-Position: refs/heads/master@{#25621}
2014-12-02 15:56:30 +00:00
mstarzinger
0672b64d1c Make generic algorithm a little less generic.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25620}
2014-12-02 15:38:00 +00:00
weiliang.lin
4f3d27e64f [ia32] Introduce FMA3 instructions on scalar data elements.
port 83a635e0d7

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25619}
2014-12-02 15:30:09 +00:00
jochen
4fcc2dca7e Trace how long it takes to compute the weak closure during mark-compact
BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25618}
2014-12-02 15:09:27 +00:00
dslomov
dba8e83b41 Stage ES6 classes and object literal extensions.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3330
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25617}
2014-12-02 14:54:40 +00:00
danno
f6e5bc1642 Clean up node iteration
- Create a first-class Edge type.
- Separate node and edge iterators
- Make iterators only responsible for iteration
- Make it possible to modify the use edge iterator while iterating.
- Add the ability to update inputs to Edges directly.

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

Cr-Commit-Position: refs/heads/master@{#25616}
2014-12-02 14:38:58 +00:00
ulan
2ac522ab15 Reland parts of 'Use weak cells in map checks in polymorphic ICs'
This relands macroassembler instructions and weak cell caching and
does not include parts that caused "Linux ASan LSan" test failures.

BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25615}
2014-12-02 14:25:26 +00:00
svenpanne
c16b8f6cbb Fixed environment handling for LFlooringDivI on ARM.
Beautiful code... :-}

BUG=chromium:437765
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25613}
2014-12-02 13:47:19 +00:00
Benedikt Meurer
5a37253b1a [turbofan] Use the temporary zone for the VN cache.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25611}
2014-12-02 12:45:19 +00:00
Benedikt Meurer
0a020550c6 [turbofan] Cache the Branch operator(s).
TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25610}
2014-12-02 12:41:44 +00:00
Benedikt Meurer
a94a612220 [turbofan] Cache the JSStoreProperty operator(s).
TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25609}
2014-12-02 11:40:32 +00:00
hpayer
ee798e203f Perform smaller marking steps incrementally in idle notification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25607}
2014-12-02 11:25:07 +00:00
jochen
49859dc3bb After moving unreachable weak global handles only process harmony collections
Groups and implicit references are no longer relevant at this point.

Also add tests that fail if the first or second round of ephemeral
marking is omitted

BUG=none
R=mstarzinger@chromium.org,hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25606}
2014-12-02 11:24:00 +00:00
titzer
10750f0e80 [turbofan] Enable stage 1.
R=danno@chromium.org,bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25604}
2014-12-02 11:07:26 +00:00
marja
0a0e6c8c81 ES6 unicode extensions, part 1.
Allows \u{xxxxx} in variable names and string literals (not yet in regexps).

Everything's behind the --harmony-unicode flag.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25603}
2014-12-02 10:58:19 +00:00
titzer
027cbf8d7f [turbofan] Initialize less frequently used types in typer.cc lazily.
R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25602}
2014-12-02 10:43:13 +00:00
marja
007028cded Parser: Removing debug code.
The mystery crash never reappeared once the debugging code was in place.

R=jochen@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25601}
2014-12-02 10:31:54 +00:00
titzer
77c6ee0c04 [turbofan] Make context specialization into a reducer.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25600}
2014-12-02 10:02:46 +00:00
Hannes Payer
81ec9916ba Fix idle time trace printing.
BUG=
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25599}
2014-12-02 09:27:55 +00:00
yurys
f434123a16 Add GetIdentityHash to v8::Name object API
v8::Object already has GetIdentityHash on it. This change adds its counterpart to v8::Name.

BUG=chromium:437416
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25598}
2014-12-02 09:13:30 +00:00
machenbach
d9c83f6bd0 Revert of Use weak cells in map checks in polymorphic ICs. (patchset #8 id:140001 of https://codereview.chromium.org/753993003/)
Reason for revert:
[Sheriff] Speculative revert for breaking chromium asan (roll blocker):
http://build.chromium.org/p/client.v8/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/1683

Original issue's description:
> Use weak cells in map checks in polymorphic ICs.
>
> BUG=v8:3663
> LOG=N

TBR=mvstanton@chromium.org,akos.palfi@imgtec.com,weiliang.lin@intel.com,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3663

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

Cr-Commit-Position: refs/heads/master@{#25597}
2014-12-02 08:17:05 +00:00
machenbach
58553437fa Revert of MIPS: Use weak cells in map checks in polymorphic ICs. (patchset #1 id:1 of https://codereview.chromium.org/767623003/)
Reason for revert:
Need to revert the ported CL:
https://codereview.chromium.org/771033003/

Original issue's description:
> MIPS: Use weak cells in map checks in polymorphic ICs.
>
> Port 45a36948e1
>
> Fix typo in the mips ports.
>
> BUG=

TBR=ulan@chromium.org,danno@chromium.org,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com,gergely.kis@imgtec.com,dusan.milosavljevic@imgtec.com,paul.lind@imgtec.com
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25596}
2014-12-02 08:15:34 +00:00
weiliang.lin
2ad1c224b8 [ia32] Introduce vex prefix version of float64 arithmetic binop
port 50c4d8826b

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25595}
2014-12-02 08:09:53 +00:00
bmeurer
34874b98b3 [turbofan] Workaround inconsistency of the type system.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25594}
2014-12-02 07:30:44 +00:00
bmeurer
d45ed61f43 Get rid of the unused __my_bool__ macro.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25593}
2014-12-02 07:25:51 +00:00
Benedikt Meurer
c516d4f094 [turbofan] Add checked load/store operators.
TEST=mjsunit,cctest,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25591}
2014-12-02 04:49:11 +00:00
paul.lind
ce5246756f MIPS: Use weak cells in map checks in polymorphic ICs.
Port 45a36948e1

Fix typo in the mips ports.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25590}
2014-12-01 22:26:48 +00:00
dslomov
573401a422 harmony-classes: Fix some issues with syntactic restriction on super(...).
R=arv@chromium.org
BUG=v8:3330
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25589}
2014-12-01 20:13:54 +00:00
hpayer
d452d8fe8d Use just one marking deque.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25588}
2014-12-01 17:03:08 +00:00
titzer
ba04cddf43 [turbofan] Add a PhaseScope for initialization.
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25587}
2014-12-01 16:15:49 +00:00
ishell
c81e9f5970 Do not call Heap::IterateAndMarkPointersToFromSpace() for unboxed double fields.
BUG=chromium:437143
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25585}
2014-12-01 14:19:29 +00:00
titzer
31c6427717 [turbofan] NodeMarker in ControlReducer.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25583}
2014-12-01 11:50:52 +00:00
Weiliang Lin
50c4d8826b [x64] introduce vex prefix version of float64 arithmetic binop
BUG=
R=bmeurer@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25582}
2014-12-01 10:45:18 +00:00
ulan
45a36948e1 Use weak cells in map checks in polymorphic ICs.
BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25581}
2014-12-01 10:41:14 +00:00
danno
91ec654bf9 [turbofan]: Use "leal" more prevasively on x64
Only use "addl" and "subl" in cases that have been measured to be
faster (currently only immediate operations).

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

Cr-Commit-Position: refs/heads/master@{#25580}
2014-12-01 10:04:42 +00:00
halton.huo
82d0f800a2 Fix clang++ warnings on -Wtautological-constant-out-of-range-compare
BUG=v8:3730
LOG=N
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25579}
2014-12-01 09:17:32 +00:00
jochen
b8c667729c Make sure we have non-zero idle time even after rounding to size_t
BUG=v8:3728
R=machenbach@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25578}
2014-12-01 09:15:18 +00:00
dslomov
9e02e98771 Introduce a kill-switch for shipping features.
R=rossberg@chromium.org
TBR=hpayer@chromium.org

Committed: d628562086

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

Cr-Commit-Position: refs/heads/master@{#25577}
2014-11-28 20:07:18 +00:00
mstarzinger
a2564da19c Remove deprecated NodeData class.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25575}
2014-11-28 18:38:44 +00:00
dslomov
557bf53b79 Revert of Introduce a kill-switch for shipping features. (patchset #2 id:20001 of https://codereview.chromium.org/763273002/)
Reason for revert:
Reverted for breaking nosnap: http://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20nosnap/builds/1003/steps/Check/logs/Threading3

Original issue's description:
> Introduce a kill-switch for shipping features.
>
> R=rossberg@chromium.org
>
> Committed: d628562086

TBR=rossberg@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25574}
2014-11-28 18:27:55 +00:00
dslomov
a2b5c7abae Stage @@toStringTag (--harmony-tostring)
R=rossberg@chromium.org,caitpotter88@gmail.com
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25573}
2014-11-28 15:41:47 +00:00
mstarzinger
70093d719c De-generify the GenericNode.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25572}
2014-11-28 15:21:44 +00:00
aandrey
cec0acad38 Expose generator object internal properties via mirrors.
BUG=v8:3292
R=yangguo@chromium.org, wingo@igalia.com
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25571}
2014-11-28 14:49:08 +00:00
Dmitry Lomov
d628562086 Introduce a kill-switch for shipping features.
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25570}
2014-11-28 14:32:17 +00:00
mstarzinger
02210179d6 De-generify the GenericGraph.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25569}
2014-11-28 14:21:13 +00:00
Dusan Milosavljevic
1d42a9db5c MIPS64: Fix MULT in simulator to conform the spec.
TEST=mjsunit/numops-fuzz-part4
BUG=
R=balazs.kilvady@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25568}
2014-11-28 13:35:06 +00:00
Ben L. Titzer
6f60c0d3b8 [turbofan] Add NodeMarker and use it in the GraphReducer.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25567}
2014-11-28 13:04:59 +00:00
yangguo
4893c0e3d8 Serializer: use opcode to signal new chunk.
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25566}
2014-11-28 12:07:49 +00:00
mstarzinger
e6b4b8dc55 Remove deprecated pieces from generic algorithm.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25565}
2014-11-28 11:57:15 +00:00
hpayer
5ef3698903 Use incremental marking deque in idle notification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25564}
2014-11-28 11:54:08 +00:00
dcarney
660de644ae add fast path for hashing small cons strings
R=yangguo@chromium.org
LOG=N

BUG=437280

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

Cr-Commit-Position: refs/heads/master@{#25562}
2014-11-28 11:07:44 +00:00
mstarzinger
0de87ac84e Remove duplicate code for searching SharedFunctionInfo.
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25561}
2014-11-28 11:06:35 +00:00
hpayer
297935b34f Use deadline in IdleNotification.
BUG=417668
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25560}
2014-11-28 10:59:24 +00:00
Dmitry Lomov
16d9146ac4 Fix nosnap build
TBR=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25557}
2014-11-28 06:22:57 +00:00
chunyang.dai
5d4f77fd76 X87: Flesh out vector ic state query and set mechanisms.
port c142994f74

original commit message:

    Flesh out vector ic state query and set mechanisms.

    The IC system now fully integrates the vector concept and can
    handle loads and keyed loads vector-based.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25556}
2014-11-28 04:18:10 +00:00
dslomov
65aa17b9c3 harmony-classes: Implement 'super(...)' call syntactic restriction.
R=rossberg@chromium.org,arv@chromium.org
BUG=v8:3330
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25555}
2014-11-28 04:08:58 +00:00
Balazs Kilvady
b56afa23e3 MIPS: Flesh out vector ic state query and set mechanisms.
Port c142994f74

Original commit message:
The IC system now fully integrates the vector concept and can
handle loads and keyed loads vector-based.

BUG=
R=akos.palfi@imgtec.com

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

Patch from Balazs Kilvady <balazs.kilvady@imgtec.com>.

Cr-Commit-Position: refs/heads/master@{#25554}
2014-11-27 23:40:28 +00:00
Michael Stanton
c142994f74 Flesh out vector ic state query and set mechanisms.
The IC system now fully integrates the vector concept and can
handle loads and keyed loads vector-based.

BUG=
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25552}
2014-11-27 16:36:40 +00:00
titzer
76178f1ddb [turbofan] Avoid repeatedly revisiting inputs in GraphReducer.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25551}
2014-11-27 16:24:19 +00:00
dslomov
34702e9d59 Set @@toStringTag on GeneratorFunction prototype.
R=caitpotter88@gmail.com
BUG=v8:3502
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25550}
2014-11-27 16:09:43 +00:00
caitpotter88
93cd816c07 Make TemplateLiteral hashing algorithm more memory efficient
Previously, a separate string to be hashed (in order to help determine the need to
use a cached Template Call Site) was built up by joining UTF8 spans within a template.

Now, the hash key is generated from the original spans, removing the need to allocate a new
buffer and copy bytes into it.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25549}
2014-11-27 15:48:01 +00:00
mstarzinger
5081f4cc93 Remove deprecated constant helpers from JSGenericLowering.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25548}
2014-11-27 14:13:57 +00:00
mstarzinger
ffca7c0369 Fix reduction result for branches in generic lowering.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25547}
2014-11-27 13:44:36 +00:00
hpayer
0b6773fa07 Just account for context disposal garbage collections in context disposal stats counters.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25546}
2014-11-27 13:11:04 +00:00
Hannes Payer
5c3d1cbf75 Re-land: Distinguish beween final incremental mark-compact and full mark-compact event in IdleNotification.
BUG=
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25545}
2014-11-27 12:39:57 +00:00
hpayer
b1527e1d5c Just finalize incremental marking when marking is done in idle notification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25544}
2014-11-27 12:16:34 +00:00
mstarzinger
9f1bc698ad Start immediate dominator propagation at entry to floating control.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25543}
2014-11-27 12:00:34 +00:00
mstarzinger
9724ede898 Switch backedge table in scheduler to use ZoneVector.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25542}
2014-11-27 11:53:27 +00:00
balazs.kilvady
a03943880c MIPS: harmony-scoping: make assignment to 'const' a late error.
Port 6ac4de87a8

Original commit message:
Per TC39 Nov 2014 decision.

This patch also changes behavior for "legacy const": assignments to sloppy const in strict mode is now also a type error. This fixes v8:2243 and also brings us in compliance with other engines re assignment to function names (see updated webkit test), but might have bigger implications.
That change can easily be reverted by changing Variable::IsSignallingAssignmentToConst.

BUG=v8:3713,v8:2243
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25541}
2014-11-27 11:21:10 +00:00
jochen
217c45b106 Introduce a new growth criterion for the new space behind a flag
With this flag, we grow if more than 10% survived the last scavenge.

BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25540}
2014-11-27 10:52:58 +00:00
hpayer
3adebeaaa8 Just print interesting idle notification events in --trace-idle-notification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25539}
2014-11-27 10:50:47 +00:00
dcarney
50ef0690b2 Add interceptor support for symbols
a revival of https://codereview.chromium.org/467013003

R=rossberg@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25537}
2014-11-27 10:21:39 +00:00
dslomov
cd4cc1ba36 Ship harmony-strings
R=rossberg@chromium.org, yangguo@chromium.org
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25536}
2014-11-27 10:17:18 +00:00
ishell
916d56d09e Fast-to-slow migration should wipe out in-object space if it exists in the object after migration.
BUG=chromium:436816
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25535}
2014-11-27 10:10:55 +00:00
yangguo
4590e4f4d6 Ensure double alignment when deserializing.
R=rmcilroy@chromium.org
BUG=chromium:436510
LOG=N
TEST=compile with V8_OOL_CONSTANT_POOL=1, run d8 with --verify-heap --test

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

Cr-Commit-Position: refs/heads/master@{#25534}
2014-11-27 09:22:28 +00:00
dcarney
60af073ad8 [turbofan] add initial move optimizer
R=bmeurer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25533}
2014-11-27 09:21:06 +00:00
Chunyang Dai
f89acb647f X87: harmony-scoping: make assignment to 'const' a late error.
port 6ac4de87a8

original commit message:
  harmony-scoping: make assignment to 'const' a late error.

  Per TC39 Nov 2014 decision. This patch also changes behavior for "legacy const":
  assignments to sloppy const in strict mode is now also a type error. This fixes
  v8:2243 and also brings us in compliance with other engines re assignment to function
  names (see updated webkit test), but might have bigger implications. That change can
  easily be reverted by changing Variable::IsSignallingAssignmentToConst.

BUG=
R=dslomov@chromium.org, weiliang.lin@intel.com

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

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

Cr-Commit-Position: refs/heads/master@{#25532}
2014-11-27 07:10:51 +00:00
mstarzinger
61c861998e Move linked list for RPO order into BasicBlock itself.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25531}
2014-11-26 17:39:18 +00:00
ishell
1a2e4b265a Map::CopyGeneralizeAllRepresentations() left incorrect layout descriptor in a new map.
BUG=chromium:436820
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25530}
2014-11-26 17:37:05 +00:00
caitpotter88
0ea30611f3 Fix raw TemplateLiteral spans with non-ascii characters
BUG=v8:3710

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

Cr-Commit-Position: refs/heads/master@{#25529}
2014-11-26 17:15:54 +00:00
titzer
9da4998204 Abort optimization in corner case.
The %OptimizeFunctionOnNextCall sledgehammer can cause a function to be
marked for optimization before it's ever been compiled by fullcode.
This can lead to the situation where a function doesn't have optimization
disabled until we try to compile it optimized.

Basically, the assert should just handle this case more gracefully.

R=yangguo@chromium.org
BUG=436893
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25528}
2014-11-26 16:57:52 +00:00
jarin
97cab985b8 Do not try to inline if the function has an illegal redeclaration.
R=mvstanton@chromium.org
BUG=chromium:436896
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25527}
2014-11-26 16:32:46 +00:00
mstarzinger
4d71e0f413 Reuse CFGBuilder in the scheduler to save memory.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25525}
2014-11-26 14:19:41 +00:00
hpayer
c43687657f Make GCTracer not reentrant.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25524}
2014-11-26 14:11:51 +00:00
mstarzinger
2bd931e6e2 Some micro-optimizations in the scheduler.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25523}
2014-11-26 13:13:46 +00:00
Ben L. Titzer
bbc5a6c023 Fix Windows 32.
TBR=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25522}
2014-11-26 13:06:46 +00:00
titzer
da22163d35 [turbofan] Implement jump threading after register allocation.
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25521}
2014-11-26 12:41:55 +00:00
dslomov
a498e93b0e Stage ES6 block scoping.
R=rossberg@chromium.org
BUG=v8:2198
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25520}
2014-11-26 12:28:43 +00:00
dslomov
626f110f0b Introduce legacy const slots in correct context.
R=rossberg@chromium.org
BUG=chromium:410030
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25519}
2014-11-26 12:16:30 +00:00
dcarney
4695abcafa Don't use ConsStringIterator to compute string hashes
R=yangguo@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25518}
2014-11-26 11:53:34 +00:00
rodolph.perfetta
55614cfe69 [turbofan] Recognize rotate right.
Extended the rotate left detection code.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25517}
2014-11-26 11:49:43 +00:00
dslomov
6ac4de87a8 harmony-scoping: make assignment to 'const' a late error.
Per TC39 Nov 2014 decision.

This patch also changes behavior for "legacy const": assignments to sloppy const in strict mode is now also a type error. This fixes v8:2243 and also brings us in compliance with other engines re assignment to function names (see updated webkit test), but might have bigger implications.
That change can easily be reverted by changing Variable::IsSignallingAssignmentToConst.

BUG=v8:3713,v8:2243
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25516}
2014-11-26 11:21:23 +00:00
Benedikt Meurer
560b0c4534 [arm] Fix recognition of VNEG.
TEST=mjsunit,unittests
R=svenpanne@chromium.org

Committed: 2aed882fe7

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

Cr-Commit-Position: refs/heads/master@{#25515}
2014-11-26 11:18:58 +00:00
machenbach
86f6123ade Revert of [arm] Fix recognition of VNEG. (patchset #3 id:40001 of https://codereview.chromium.org/762493006/)
Reason for revert:
Breaks arm compilation.

Original issue's description:
> [arm] Fix recognition of VNEG.
>
> TEST=mjsunit,unittests
> R=svenpanne@chromium.org
>
> Committed: 2aed882fe7

TBR=svenpanne@chromium.org,bmeurer@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25514}
2014-11-26 11:07:23 +00:00
Benedikt Meurer
2aed882fe7 [arm] Fix recognition of VNEG.
TEST=mjsunit,unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25513}
2014-11-26 10:46:37 +00:00
Weiliang Lin
83a635e0d7 [x64] Introduce FMA3 instructions on scalar data elements.
R=bmeurer@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25509}
2014-11-26 05:31:55 +00:00
titzer
819955b278 [turbofan] Use special constant type for RPO block number operands.
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25508}
2014-11-26 05:16:47 +00:00
jochen
30b43a8aac Document that Isolate::GetCurrent() must not be called before initialization
Also, add a check for debug mode.

BUG=none
R=dcarney@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25507}
2014-11-26 05:15:30 +00:00
Benedikt Meurer
a01f4d871a Revert "Distinguish beween final incremental mark-compact and full mark-compact event in IdleNotification."
This reverts commit d15d453fa5 for
breaking cctest/test-api/Threading3.

TBR=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25506}
2014-11-26 05:12:36 +00:00
yangguo
39d0b85430 Force inline Stirng::GetCharVector<>.
R=mvstanton@chromium.org
BUG=chromium:436447

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

Cr-Commit-Position: refs/heads/master@{#25504}
2014-11-25 15:30:03 +00:00
dslomov
f1d8668e38 harmony-scoping: Catch variable should be VAR, not LET
R=rossberg@chromium.org
BUG=v8:2858
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25503}
2014-11-25 14:48:39 +00:00
svenpanne
11a950fcf7 Fixed race condition in HBranch::observed_input_representation.
Non-numeric static local variables are not thread-safe, and the case
at hand was a premature optimization anyway: The generated code for
the check in question is exactly the same when unfolded.

BUG=chromium:420483

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

Cr-Commit-Position: refs/heads/master@{#25502}
2014-11-25 14:47:32 +00:00
hpayer
d15d453fa5 Distinguish beween final incremental mark-compact and full mark-compact event in IdleNotification.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25501}
2014-11-25 13:41:57 +00:00
yangguo
33853f73a7 Partially revert "Optimize function across closures."
BUG=chromium:434447

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

Cr-Commit-Position: refs/heads/master@{#25500}
2014-11-25 13:22:04 +00:00
yangguo
7904576039 Refactor use of Isolate::use_crankshaft.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25499}
2014-11-25 12:48:06 +00:00
yangguo
2ed39d936a Reset code age on the cloned code when serializing.
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25498}
2014-11-25 12:03:41 +00:00
balazs.kilvady
a4c9cc46dc MIPS64: Load prototype from map in PropertyHandlerCompiler::CheckPrototypes.
Port 100db75808

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25497}
2014-11-25 11:38:10 +00:00
jarin
322bb23e82 [turbofan] Insert appropriate conversions for typed array stores.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25496}
2014-11-25 08:40:29 +00:00
hpayer
e01e35fc2f Reduce context disposal gc overhead.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25494}
2014-11-24 19:19:16 +00:00
verwaest
7cf17a9e5e Don't double smi-tag the mask used to check read-only / field mode in the dictionary-store-stub on X64
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25493}
2014-11-24 19:16:26 +00:00
jarin
d9cabb9b22 [turbofan] Fix matching of the lea instruction.
Resets the scaled exponent to 0 when the scaling match fails.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25491}
2014-11-24 17:45:33 +00:00
ulan
100db75808 Load prototype from map in PropertyHandlerCompiler::CheckPrototypes.
BUG=v8:3629
LOG=N
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25490}
2014-11-24 17:44:25 +00:00
yangguo
1a2a18b66c Remove v8::StartupData::compressed_size.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25487}
2014-11-24 16:14:34 +00:00
yangguo
270dccf6db Correctly find shared function info for debugging when compiling eagerly.
R=ulan@chromium.org
BUG=v8:3717
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25486}
2014-11-24 15:43:35 +00:00
Michael Stanton
54b0109d42 Make use of post-scoping information to compute feedback vector requirements.
This avoids allocating vector ic slots that we don't use.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25485}
2014-11-24 15:00:07 +00:00
ishell
d8a5616809 Dictionary-mode PropertyDetails printing fixed.
BUG=chromium:435974
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25484}
2014-11-24 14:55:46 +00:00
ishell
1f5f088969 Reland of "Enable inobject double fields unboxing for 64-bit archs."
Review URL: https://codereview.chromium.org/751643005

Cr-Commit-Position: refs/heads/master@{#25483}
2014-11-24 14:54:38 +00:00
ishell
25b8efffa3 Reland of "TransitionArray::Search() now returns insertion index if the entry was not found."
Review URL: https://codereview.chromium.org/739013004

Cr-Commit-Position: refs/heads/master@{#25482}
2014-11-24 14:31:36 +00:00
baixo
0e5c107c66 Ensure external snapshot is only set once.
BUG=421063

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

Cr-Commit-Position: refs/heads/master@{#25481}
2014-11-24 12:44:39 +00:00
Benedikt Meurer
94f5b78b96 [turbofan] Combine Word32And with Int32Add and negative power of two.
TEST=unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25479}
2014-11-24 12:30:30 +00:00
hpayer
1d0d520e77 Don't verify evacuation when it is not completed.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25478}
2014-11-24 11:58:34 +00:00
Ben L. Titzer
a56900a975 [turbofan] Dump graph in RPO order as text.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25477}
2014-11-24 11:55:17 +00:00
yangguo
14a3b9188d Fix RegExp.source for uncompiled regexp.
R=jkummerow@chromium.org
BUG=435825
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25476}
2014-11-24 11:21:52 +00:00
baptiste.afsa
9b5c279b9f [turbofan] Recognize sign extension of 8-bit and 16-bit values on arm64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25475}
2014-11-24 11:00:15 +00:00
andrew_low
c1bfc3485d Fix alignment of Code::kConstantPoolOffset.
This is needed for 64bit alignment sensitive platforms (PowerPC)
Exposed bugs with new GC compare and swap changes updating the
field.

Example failing test:
out/ppc64.debug/cctest  test-decls/ExistsInPrototype

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25472}
2014-11-24 10:22:17 +00:00
dcarney
3bfc3ae702 remove some isolate::currents from api.cc
R=svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25471}
2014-11-24 09:45:00 +00:00
ishell
d6cd4eab84 Revert of Enable inobject double fields unboxing for 64-bit archs. (patchset #3 id:40001 of https://codereview.chromium.org/753503002/)
Reason for revert:
GCMole and gc-stress issues.

Original issue's description:
> Enable inobject double fields unboxing for 64-bit archs.

TBR=verwaest@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25470}
2014-11-22 20:33:03 +00:00
ishell
726eb9d51c Enable inobject double fields unboxing for 64-bit archs.
Review URL: https://codereview.chromium.org/753503002

Cr-Commit-Position: refs/heads/master@{#25469}
2014-11-22 17:30:27 +00:00
dslomov
4d4ed236d8 harmony-scoping: Disallow cross-script assignment to const
R=rossberg@chromium.org
BUG=v8:2198
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25468}
2014-11-21 18:09:33 +00:00
mstarzinger
7aad1d2e42 Revert "Remove deprecated ShouldSelfOptimize machinery."
This reverts commit 9da92c1a33 because of performance regressions.

R=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25467}
2014-11-21 17:28:38 +00:00
danno
4f1cc51555 [turbofan]: remove optimization of adds/subs to inc and dec
They generally cause regressions on most modern Intel chips. Replace them with
addl/subl.

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

Cr-Commit-Position: refs/heads/master@{#25466}
2014-11-21 13:18:46 +00:00
dcarney
ac3c4d40f5 [turbofan] put late ssa deconstruction in register allocator behind a flag
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25465}
2014-11-21 13:14:00 +00:00
yangguo
9b8d40594a Rip out bzip compression for native sources.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25464}
2014-11-21 12:45:20 +00:00
jochen
34363bf5aa Introduce a flag to change the new space growth factor
A useful value would be 4, so we get 1, 4, 16MB (instead of the default
value 2 which leads to 1, 2, 4, 8, 16)

BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25462}
2014-11-21 12:14:29 +00:00
dcarney
dad405a258 [turbofan] put spill slot reuse behind a flag
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25461}
2014-11-21 11:33:05 +00:00
mstarzinger
9da92c1a33 Remove deprecated ShouldSelfOptimize machinery.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25459}
2014-11-21 11:23:52 +00:00
yangguo
61bee5c898 Correctly escape RegExp source.
R=ulan@chromium.org
BUG=v8:3229
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25457}
2014-11-21 10:50:24 +00:00
Michael Stanton
cf572694fe Assert to protect against polymorphic string loads fires on valid stores.
BUG=435477
LOG=N
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25456}
2014-11-21 10:29:08 +00:00
Michael Stanton
3d58b82add Fix for 435073: CHECK failure in CHECK(p->IsSmi()) failed.
The bug was an error when copying arrays in crankshaft. If it's a holey smi
array, the copy must be done as FAST_HOLEY_ELEMENTS to prevent representation
changes from being inserted that deopt on encountering the hole.

Also, prevent inlining array pop() and shift() if the length is read-only.

BUG=435073
LOG=N
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25455}
2014-11-21 10:14:19 +00:00
Baptiste Afsa
fada2a08e5 [turbofan] Avoid useless zero-extension on arm64.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25454}
2014-11-21 10:00:57 +00:00
dcarney
0ed433ce30 dump compiler stats from d8 on direct exit from js
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25453}
2014-11-21 09:53:12 +00:00
chunyang.dai
4c11d75dbd Fix the compilation issue for turbofan unsupported backend which
is introduced by aed26c05a5.
( [turbofan] Clean up and factor out branch generation logic.)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25452}
2014-11-21 09:22:42 +00:00
Akos Palfi
9182813fb0 MIPS: [turbofan] Clean up and factor out branch generation logic.
Port aed26c05a50b2a1257ef8accc67143825f2e1f60

BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25451}
2014-11-21 01:16:54 +00:00
caitpotter88
ad86a1a27a Cache template literal callSiteObj
BUG=v8:3230
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25450}
2014-11-20 22:37:55 +00:00
baixo
4d48e1b7ac Do not put D8 and TEST natives into the external snapshot.
D8 natives, in particular, will cause Windows static builds to not link due to another definition in the generated file d8-js.cc.

BUG=421063

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

Cr-Commit-Position: refs/heads/master@{#25449}
2014-11-20 21:04:26 +00:00
dslomov
5aed61cc38 Rename String.prototype.contains to 'includes'.
Per TC39 Nov 2014 decison.

R=arv@chromium.org,yangguo@chromium.org
LOG=Y

Committed: b5379216e2

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

Cr-Commit-Position: refs/heads/master@{#25448}
2014-11-20 19:21:36 +00:00
ulan
dc88962350 Do not bailout from optimizing functions that use f(x, arguments)
if there is not enough type-feedback to detect that f is Function.prototype.apply.

BUG=v8:3709
LOG=N
TEST=mjsunit/regress/regress-3709

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

Cr-Commit-Position: refs/heads/master@{#25447}
2014-11-20 17:07:44 +00:00
titzer
87e9d839a2 [turbofan] Clean up and factor out branch generation logic.
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25446}
2014-11-20 16:23:19 +00:00
mstarzinger
bf11bf4758 Remove superflous SharedFunctionInfo::uses_super call.
R=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25445}
2014-11-20 16:22:04 +00:00
yangguo
c64b47f552 When optimizing deserialized code, make sure IC state is preserved.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25444}
2014-11-20 16:20:56 +00:00
Dan Carney
be782ea773 [turbofan] use double temp registers for stack-stack swap on arm64
TBR=vogelheim@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25443}
2014-11-20 16:11:34 +00:00
ulan
d703e87531 Reserve code range block for evacuation.
If we run out of code range, then GC wouldn't be able to compact code space,
because it wouldn't be able to allocate a new page. This can cause code space
fragmentation and OOM crashes.

BUG=chromium:430118
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25441}
2014-11-20 14:52:35 +00:00
dcarney
b11825fe94 [turbofan] More aggressive reuse of spill slots in the register allocator.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25440}
2014-11-20 14:41:08 +00:00
Daniel Clifford
5a494cf00c [turbofan]: More optimizations to add and subtract operations on x64
- Use "leal" for subtraction of integer constant when non-constant input to
  subtract is used more than once.
- Use "incl", "decl", and "addl" when they are smaller/cheaper than their
  leal/addl/subl equivalant.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25439}
2014-11-20 13:48:46 +00:00
Rodolph Perfetta
481772acdd [turbofan] remove redundant '& 0x1F' for shifts.
JavaScript shifts perform an implicit '& 0x1F' on their right operand, this
patch removes it when the underlying architecture already does it.

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25438}
2014-11-20 13:09:26 +00:00
mstarzinger
6d41045ba4 Enable TurboFan for Win64 targets.
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25437}
2014-11-20 11:51:11 +00:00
Andreas Rossberg
4f63564700 Fix lower bound violation
R=jarin@chromium.org
BUG=433332
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25436}
2014-11-20 11:22:49 +00:00
Andreas Rossberg
1808badc2d Disable classes in sloppy mode unless --harmony-sloppy is set
Also clean up flag names a little.

Baseline: https://codereview.chromium.org/713413003/

R=arv@chromium.org, dslomov@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25435}
2014-11-20 10:52:03 +00:00
yangguo
529ff0cfbf Implement log10 via fdlibm port.
R=rtoy@chromium.org
BUG=v8:3579
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25433}
2014-11-20 09:37:27 +00:00
machenbach
b3acdf5347 Revert of Rename String.prototype.contains to 'includes'. (patchset #1 id:1 of https://codereview.chromium.org/742963002/)
Reason for revert:
Breaks test262-es6:
http://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/1289

Original issue's description:
> Rename String.prototype.contains to 'includes'.
>
> Per TC39 Nov 2014 decison.
>
> R=arv@chromium.org,yangguo@chromium.org
> LOG=Y
>
> Committed: b5379216e2

TBR=arv@chromium.org,yangguo@chromium.org,dslomov@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25432}
2014-11-20 09:03:54 +00:00
jochen
821736a674 Remove --clever-optimizations
We should always be clever

BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25431}
2014-11-20 08:54:42 +00:00
dslomov
2dae17fb87 Rename String.prototype.contains to 'includes'.
Per TC39 Nov 2014 decison.

R=arv@chromium.org,yangguo@chromium.org
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25430}
2014-11-20 00:32:13 +00:00
dslomov
69990745f7 Remove Weak{Map,Set}.prototype.clear.
Per Nov 2014 TC39 decision.

R=adamk@chromium.org
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25429}
2014-11-19 21:53:01 +00:00