Commit Graph

26040 Commits

Author SHA1 Message Date
verwaest
307158784e Eagerly mark class prototypes as prototype.
BUG=v8:3330
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31548}
2015-10-26 08:29:59 +00:00
jarin
a3f782f260 [turbofan] Factor out platform-independent part of InstructionSelector::VisitCall.
Review URL: https://codereview.chromium.org/1411093006

Cr-Commit-Position: refs/heads/master@{#31547}
2015-10-26 07:56:29 +00:00
thechargingvolcano
ae8f79efb9 fix typos - features and closure
This patch simply fixes few typos which should have been features
and closure.

BUG=
NOTRY=true
R=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31546}
2015-10-26 07:39:35 +00:00
bmeurer
ccab8be352 [test] Re-enable typescript that is no longer failing on ia32.
R=jarin@chromium.org
BUG=v8:4493
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31545}
2015-10-26 06:00:35 +00:00
mtrofin
0b0249582a [turbofan] Centralize splitting for memory operands.
This addresses an issue where the at-start splitting used
in the splintering mechanism was in conflict with the mechanics
used in linear allocator, in particular in the initial split/spill of
ranges for memory operands. We are already doing a split-at-start in
Greedy, so this change centralizes that to the base RegisterAllocator.

Verified locally that v8:4508 is addressed by this. Also, this fixes
the failures that required the revert
5308a999eb. See trybots at
issue 1425533002.

R=bmeurer@chromium.org,jarin@chromium.org
BUG= v8:4508
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31544}
2015-10-26 05:02:55 +00:00
chunyang.dai
e8ff5181d3 Revert of X87: disable the regress-undefined-nan test case for x87. (patchset #1 id:1 of https://codereview.chromium.org/1414733004/ )
Reason for revert:
because of merge mistake, "regress/" is missed when skipping one test case for X87.

 "regress/" will be added when relanding it.

Original issue's description:
> X87: disable the regress-undefined-nan test case for x87.
>
>   The reason is when native_context_specialization flag is ture, X87 turbofan
>   will hit the known issue that X87 will change a sNaN to qNaN by default. And
>   then it will fail when bit-comparing the source (sNaN) and the result (qNaN).
>
> BUG=
>
> Committed: https://crrev.com/b3c719ebbad6c87afefa33a7d0b3f412b2e304db
> Cr-Commit-Position: refs/heads/master@{#31530}

TBR=bmeurer@chromium.org,weiliang.lin@intel.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31543}
2015-10-26 04:42:36 +00:00
zhengxing.li
9f4ff3b1cd X87: [runtime] Implement %_ToLength via ToLengthStub.
port e678a0f9a9 (r31358)

    original commit message:
    Use %_ToLength for TO_LENGTH, implemented via a ToLengthStub
    that supports a fast path for small integers. Everything else is still
    handled in the runtime.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31542}
2015-10-26 03:50:57 +00:00
zhengxing.li
1e52cd5282 X87: Added Popcnt as an optional operator and implement it on x64 and ia32.
port 053e280c88 (r31319).

    original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31541}
2015-10-26 03:29:34 +00:00
Michael Achenbach
1454135581 Whitespace change to test swarming.
Cr-Commit-Position: refs/heads/master@{#31540}
2015-10-25 07:13:01 +00:00
alph
762b425bc9 [x64] Implement vcvtsd2si AVX instruction.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31539}
2015-10-24 18:55:57 +00:00
alph
ec27fd6e39 [x64] Implement vcvtqsi2sd AVX instruction.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31538}
2015-10-24 16:49:52 +00:00
caitpotter88
b078960e70 [es7] bailout Crankshaft in VisitDoExpression
For some reason, the DisableCrankshaft() in ast-numbering.cc does not always
prevent crankshaft from happening. Bailout here rather than asserting an
unreachable condition.

BUG=546967, v8:4488
LOG=N
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31537}
2015-10-24 07:06:59 +00:00
v8-autoroll
bb43bf94d0 Update V8 DEPS.
Rolling v8/tools/clang to 66f5328417331216569e8beb244fd887f62e8997

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31536}
2015-10-24 03:25:16 +00:00
hablich
0188aeadbb Revert of Reland "Use C++ implementation of Object.definePropert{y,ies}" (patchset #2 id:20001 of https://codereview.chromium.org/1413123004/ )
Reason for revert:
Breaks test if rolled into Chromium: http://build.chromium.org/p/chromium.win/buildstatus?builder=Vista%20Tests%20%281%29&number=60441

Original issue's description:
> Reland "Use C++ implementation of Object.definePropert{y,ies}"
>
> This reverts commit 581ead5c8c.
>
> Committed: https://crrev.com/034f4a6ae14cd5c29ceddbdb8f9af179803ca793
> Cr-Commit-Position: refs/heads/master@{#31473}

TBR=verwaest@chromium.org,jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31535}
2015-10-23 19:24:23 +00:00
hablich
984f8af892 Revert of Introduce LookupIterator::Restart() and use it (patchset #2 id:20001 of https://codereview.chromium.org/1416053007/ )
Reason for revert:
Breaks test if rolled into Chromium: http://build.chromium.org/p/chromium.win/buildstatus?builder=Vista%20Tests%20%281%29&number=60441

Needed so the reverts applies cleanly and seems to be related to the offending CL.

Original issue's description:
> Introduce LookupIterator::Restart() and use it
>
> Committed: https://crrev.com/5676415b4add059b78f98a9a762d00c8d721dbcd
> Cr-Commit-Position: refs/heads/master@{#31483}

TBR=verwaest@chromium.org,jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31534}
2015-10-23 19:22:22 +00:00
hablich
dc9d2c16cd Revert of OrdinaryDefineOwnProperty: always reset the LookupIterator before storing. (patchset #1 id:1 of https://codereview.chromium.org/1415823003/ )
Reason for revert:
Breaks test if rolled into Chromium: http://build.chromium.org/p/chromium.win/buildstatus?builder=Vista%20Tests%20%281%29&number=60441

Original issue's description:
> OrdinaryDefineOwnProperty: always reset the LookupIterator before storing.
>
> Committed: https://crrev.com/7bc5ce16ee9244869384cdf17ea2feb0a9dde9bd
> Cr-Commit-Position: refs/heads/master@{#31511}

TBR=cbruni@chromium.org,jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31533}
2015-10-23 19:21:15 +00:00
hablich
a0f5d4995c Revert of GetOwnPropertyDescriptor: API-style accessors can throw, check for that. (patchset #1 id:1 of https://codereview.chromium.org/1412823003/ )
Reason for revert:
Breaks test if rolled into Chromium: http://build.chromium.org/p/chromium.win/buildstatus?builder=Vista%20Tests%20%281%29&number=60441

Original issue's description:
> GetOwnPropertyDescriptor: API-style accessors can throw, check for that.
>
> Committed: https://crrev.com/cbda86196b0b52694f50982ae3f1ac8e72056e6d
> Cr-Commit-Position: refs/heads/master@{#31522}

TBR=cbruni@chromium.org,jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31532}
2015-10-23 19:20:07 +00:00
machenbach
5308a999eb Revert of [Turbofan] Fix perf regression (patchset #1 id:1 of https://codereview.chromium.org/1412123009/ )
Reason for revert:
[sheriff] breaks benchmarks:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/4998

Original issue's description:
> [Turbofan] Fix perf regression introduced by per-range change.
>
> When the range ends just at the gap of a non-deferred block, the last
> instruction the range covers is in the predecessor. If that predecessor is
> a deferred block, before this CL, we would splinter the remainder of the
> range all the way to the end. That leads to inefficient codegen, because
> we still want a split inside the deferred block.
>
> Also, opportunistically added a trace before we splinter, for better
> diagnostics.
>
> BUG= chromium:546416
> LOG=N
>
> Committed: https://crrev.com/32b6e085e74a8fcf94a01d20740fe4fdede07a86
> Cr-Commit-Position: refs/heads/master@{#31529}

TBR=bmeurer@chromium.org,jarin@chromium.org,mtrofin@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= chromium:546416

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

Cr-Commit-Position: refs/heads/master@{#31531}
2015-10-23 17:40:22 +00:00
chunyang.dai
b3c719ebba X87: disable the regress-undefined-nan test case for x87.
The reason is when native_context_specialization flag is ture, X87 turbofan
  will hit the known issue that X87 will change a sNaN to qNaN by default. And
  then it will fail when bit-comparing the source (sNaN) and the result (qNaN).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31530}
2015-10-23 15:48:35 +00:00
mtrofin
32b6e085e7 [Turbofan] Fix perf regression introduced by per-range change.
When the range ends just at the gap of a non-deferred block, the last
instruction the range covers is in the predecessor. If that predecessor is
a deferred block, before this CL, we would splinter the remainder of the
range all the way to the end. That leads to inefficient codegen, because
we still want a split inside the deferred block.

Also, opportunistically added a trace before we splinter, for better
diagnostics.

BUG= chromium:546416
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31529}
2015-10-23 15:47:17 +00:00
rmcilroy
83bb51e5ad Add an interpreter watchlist
Review URL: https://codereview.chromium.org/1413663007

Cr-Commit-Position: refs/heads/master@{#31528}
2015-10-23 15:43:37 +00:00
neis
193410062e Fix corner-case behavior of JSObject::SetPrototype.
Setting the prototype to whatever it currently is must succeed even if
the object is not extensible.

R=verwaest@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31527}
2015-10-23 14:52:26 +00:00
mlippautz
5cf6ee3447 [heap] Fix rescanning live objects when aborting compaction.
Fix aborting compaction for pages by doing two separate passes, one that scans
all live objects, and one that later on sweeps the page.

Detailed description see bug report.

BUG=chromium:539356,chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31526}
2015-10-23 14:24:11 +00:00
littledan
0a0272dad0 Stage ES2015-style const in sloppy mode
This patch switches sloppy-mode code from legacy const semantics
to ES2015 semantics. It is unknown how much of the web will be
broken by this; likely the patch will have to be reverted before
a branch happens.

BUG=v8:3739
LOG=Y
R=rossberg,adamk

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

Cr-Commit-Position: refs/heads/master@{#31525}
2015-10-23 14:04:53 +00:00
bmeurer
daf76e6d14 [turbofan] Non-dictionary prototype maps are always stable.
We don't need to have an (untested) fallback for the case that a
prototype map is not stable when specializing a named property,
because prototype maps are always stable (which is now guarded
by a DCHECK in CompilationDependencies).  Less (dead) code is
better code.

R=verwaest@chromium.org
BUG=v8:4470
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31524}
2015-10-23 13:58:23 +00:00
hpayer
22c5e464c9 [heap] Remove debugging code of crbug/454297.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31523}
2015-10-23 13:45:47 +00:00
jkummerow
cbda86196b GetOwnPropertyDescriptor: API-style accessors can throw, check for that.
Review URL: https://codereview.chromium.org/1412823003

Cr-Commit-Position: refs/heads/master@{#31522}
2015-10-23 13:22:29 +00:00
neis
e5ae33b55b [es6] Ship --harmony-completion.
R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31521}
2015-10-23 13:11:24 +00:00
neis
5463e86497 Disable bogus test in preparation for --harmony-completion.
R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31520}
2015-10-23 12:56:50 +00:00
jochen
5587656155 Map v8::Function to JSReceiver + IsCallable
BUG=none
LOG=y
R=verwaest@chromium.org,bmeurer@chromium.org,rossberg@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng

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

Cr-Commit-Position: refs/heads/master@{#31519}
2015-10-23 12:27:06 +00:00
zhengxing.li
b5b590f511 X87: [Interpreter] Support for operator new.
port 7557dc5a70 (r31312).

    original commit message:
    This change add a new bytecode for operator new and implements it using
    the Construct() builtin.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31518}
2015-10-23 12:21:05 +00:00
bmeurer
2ab54f109e [turbofan] Add test case for stores to properties that are also present on prototype.
R=verwaest@chromium.org
BUG=v8:4470
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31517}
2015-10-23 12:09:54 +00:00
zhengxing.li
f1c0a86166 X87: CTZ instruction implemented as optional operator.
port b3334087ec (r31313).

    original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31516}
2015-10-23 11:37:12 +00:00
hpayer
20df4b7fcf [heap] Add store and slots buffer clearing timers to --trace-gc-nvp.
Review URL: https://codereview.chromium.org/1412123006

Cr-Commit-Position: refs/heads/master@{#31515}
2015-10-23 11:20:41 +00:00
bmeurer
505efa5a72 Reland of [turbofan] Fix and enable property stores. (patchset #1 id:1 of https://codereview.chromium.org/1414743005/ )
Reason for revert:
It is fixed.

Original issue's description:
> Revert of [turbofan] Fix and enable property stores. (patchset #2 id:20001 of https://codereview.chromium.org/1424523002/ )
>
> Reason for revert:
> [Sheriff] Breaks benchmarks:
> http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug%20-%20avx2/builds/3164
>
> Original issue's description:
> > [turbofan] Fix and enable property stores.
> >
> > Fix lookup for storing to properties, and also make sure we don't embed
> > deprecated map (using Map::TryUpdate).
> >
> > R=jarin@chromium.org
> > BUG=v8:4470
> > LOG=n
> >
> > Committed: https://crrev.com/70158828b3db8e582344272c6c11a957f4d8b2c8
> > Cr-Commit-Position: refs/heads/master@{#31509}
>
> TBR=jarin@chromium.org,bmeurer@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:4470
>
> Committed: https://crrev.com/50e5a7275f2bc93a8ae731acda0f7ac6e5e97c3c
> Cr-Commit-Position: refs/heads/master@{#31513}

TBR=jarin@chromium.org,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4470

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

Cr-Commit-Position: refs/heads/master@{#31514}
2015-10-23 11:18:05 +00:00
machenbach
50e5a7275f Revert of [turbofan] Fix and enable property stores. (patchset #2 id:20001 of https://codereview.chromium.org/1424523002/ )
Reason for revert:
[Sheriff] Breaks benchmarks:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug%20-%20avx2/builds/3164

Original issue's description:
> [turbofan] Fix and enable property stores.
>
> Fix lookup for storing to properties, and also make sure we don't embed
> deprecated map (using Map::TryUpdate).
>
> R=jarin@chromium.org
> BUG=v8:4470
> LOG=n
>
> Committed: https://crrev.com/70158828b3db8e582344272c6c11a957f4d8b2c8
> Cr-Commit-Position: refs/heads/master@{#31509}

TBR=jarin@chromium.org,bmeurer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4470

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

Cr-Commit-Position: refs/heads/master@{#31513}
2015-10-23 11:16:02 +00:00
Benedikt Meurer
d061d1236b [turbofan] Properly deal with empty access info list for JSStoreNamed.
TBR=jarin@chromium.org
BUG=v8:4470
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31512}
2015-10-23 11:15:25 +00:00
jkummerow
7bc5ce16ee OrdinaryDefineOwnProperty: always reset the LookupIterator before storing.
Review URL: https://codereview.chromium.org/1415823003

Cr-Commit-Position: refs/heads/master@{#31511}
2015-10-23 10:48:25 +00:00
yangguo
05a6009544 Simplify IdentityMap.
This removes the requirement for handles as arguments, but also removes
concurrency support, which is not being used at the moment.

Supporting concurrency could be done by introducing a sibling class to
IdentityMap that includes RelocationLock on method calls.

R=bmeurer@chromium.org, ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31510}
2015-10-23 10:33:14 +00:00
bmeurer
70158828b3 [turbofan] Fix and enable property stores.
Fix lookup for storing to properties, and also make sure we don't embed
deprecated map (using Map::TryUpdate).

R=jarin@chromium.org
BUG=v8:4470
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31509}
2015-10-23 10:30:15 +00:00
mlippautz
d6235fc478 [heap] Add concurrency-safe refilling to compaction spaces
BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31508}
2015-10-23 10:27:45 +00:00
neis
8e89e8203b Adapt tests in preparation of shipping --harmony-completion.
R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31507}
2015-10-23 10:26:01 +00:00
zhengxing.li
22100599bf X87: Bailout for large object allocations in full code EmitFastOneByteArrayJoin.
port 24622f5f12 (r31257).

    original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31506}
2015-10-23 10:13:04 +00:00
zhengxing.li
9826a77f33 X87: VectorICs: use a vector slot to aid in array literal processing.
port f2f46aff8b (r31242).

    original commit message:
    The lack of a vector slot for the keyed store operation in filling in
    non-constant array literal properties led to undesirable contortions in
    compilers downwind of full-codegen. The use of a single slot to initialize all
    the array elements is sufficient.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31505}
2015-10-23 10:05:04 +00:00
zhengxing.li
562047df0f X87: Vector ICs: Get rid of stack arguments on ia32 transitioning stores.
port 2d4aeaad2f (r31204).

    original commit message:
    The stack manipulation was expensive. Two virtual registers are better.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31504}
2015-10-23 09:50:28 +00:00
zhengxing.li
b64c1f02ad X87: [builtins] Make sure argument count is always valid for C++ builtins.
port 9c8262f11e (r31120).

    original commit message:
    When calling into C++ builtins, we need to make sure that the argument
    count register contains the correct number of arguments, otherwise the
    CEntryStub will not be able to leave the stack in the correct state.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31503}
2015-10-23 09:43:08 +00:00
zhengxing.li
c38e429035 X87: [Interpreter] Add CallRuntime support to the interpreter.
port 75f6ad74b2 (r31089).

    original commit message:
    Adds support for calling runtime functions from the interpreter. Adds the
    CallRuntime bytecode which takes a Runtime::FunctionId of the function to call
    and the arguments in sequential registers. Adds a InterpreterCEntry builtin
    to enable the interpreter to enter C++ code based on the functionId.

    Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall
    and groups all the interpreter builtins together.

    BUG=v8:4280
    LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31502}
2015-10-23 09:42:03 +00:00
neis
d91e9e4f1d Restructure Object::SetProperty and related functions.
This is in preparation of implementing Reflect.set.

R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31501}
2015-10-23 09:41:27 +00:00
cbruni
1c50fc1162 Show builtin name when printing Code objects.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31500}
2015-10-23 09:19:44 +00:00
yangguo
11cd1f77ae Move RootIndexMap out of serializer file.
This is in preparation of using it elsewhere.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31499}
2015-10-23 08:28:38 +00:00