Commit Graph

26238 Commits

Author SHA1 Message Date
machenbach
9393e59d23 [test] Skip webkit test too slow for ppc.
NOTRY=true
TBR=mbrandy@us.ibm.com

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

Cr-Commit-Position: refs/heads/master@{#31396}
2015-10-20 07:11:33 +00:00
paul.lind
89a07ba4a0 MIPS: skip webkit/dfg-int-overflow-in-loop on big-endian.
The boards on the bots do not have FPU, and therefore time out on
this test.

BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31395}
2015-10-20 06:50:03 +00:00
alph
c62e4f2deb [x64] Refactor AVX instructions declarations.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31394}
2015-10-20 06:41:31 +00:00
Benedikt Meurer
063e2316d7 Revert "[turbofan] Stage --turbo-inlining behind --turbo flag." and "[turbofan] Skip more tests that fail with --turbo-inlining."
This reverts commit 019f9408dc,
6ed05f44af and
e34c343d2a.

TBR=mstarzinger@chromium.org
BUG=v8:4493
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31393}
2015-10-20 06:23:02 +00:00
yangguo
8be20eee3b Debugger: correctly report uncaught rejections in Promise.all and Promise.race.
The debugger calls PromiseHasUserDefinedRejectHandler to recursively search the
tree of dependent promises for user-defined reject handlers. If no such reject
handler exists, rejecting the promise is considered an uncaught exception.

Promise.race and Promise.all interupt the link of promise dependency wrt the
search. This change fixes that link.

R=rossberg@chromium.org
BUG=chromium:439585
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31392}
2015-10-20 05:40:08 +00:00
alph
fa60b82b19 [x64] Replace movaps with appropriate vmov* instructions when AVX is enabled.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31391}
2015-10-20 04:58:16 +00:00
yangguo
722719fe31 [es6] stage sticky regexps and RegExp.prototype.flags.
R=littledan@chromium.org
BUG=v8:4342
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#31390}
2015-10-20 04:45:15 +00:00
Benedikt Meurer
019f9408dc [turbofan] Skip more tests that fail with --turbo-inlining.
TBR=mstarzinger@chromium.org
BUG=v8:4493
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31389}
2015-10-20 04:44:46 +00:00
Benedikt Meurer
6ed05f44af [turbofan] Skip more tests that fail with --turbo-inlining.
TBR=mstarzinger@chromium.org
BUG=v8:4493
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31388}
2015-10-20 04:35:15 +00:00
alph
706487b097 [x64] Do not use SSE instructions in DoConstructDouble when AVX is enabled.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31387}
2015-10-20 03:59:02 +00:00
mstarzinger
e34c343d2a [turbofan] Stage --turbo-inlining behind --turbo flag.
This stages the general purpose inlining mechanism in TurboFan and also
disables the remaining tests that still fail. We do this to get test
coverage early and to avoid regressing inlining as we go along.

R=bmeurer@chromium.org
BUG=v8:4493
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31386}
2015-10-20 03:54:12 +00:00
alph
19aa500567 [x64] Emit vmovss when AVX is enabled.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31385}
2015-10-19 20:35:36 +00:00
mbrandy
8fafb2916c PPC: [runtime] Implement %_ToLength via ToLengthStub.
Port e678a0f9a9

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.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=v8:4494
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31384}
2015-10-19 17:00:50 +00:00
mlippautz
af4888de13 [heap] Fix stale end_ pointer in FreeListCategory::EvictFreeListItemsInList
During eviction of FreeSpace nodes that reside on eviction pages we iterate
throug the list node-by-node, unlinking only those that reside on eviction
pages. We failed to properly update end_ if nodes were evicted are encountering
nodes that that are left as is.

BUG=chromium:539356
LOG=N
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31383}
2015-10-19 16:31:40 +00:00
aperez
66b0fbee2a ll_prof: Do not use the deprecated tempfile.mktemp()
BUG=v8:1306
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#31382}
2015-10-19 16:08:38 +00:00
adamk
b065411f81 Always give class literals a block scope
Re-land of https://crrev.com/cf13dda1ba25e8293ea143f33c6c5f6233a39c86,
fixing the issue with vector stores.

Class methods always have the class scope on their scope chain in order
to implement strong mode checks. Previously, that scope wasn't attached
to the ClassLiteral for anonymous classes (since the scope contained
no bindings).

This patch simply puts that same scope on the ClassLiteral, anonymous
or not, which simplifies other code that needs to reason about the scope
of a class and its methods.

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

Cr-Commit-Position: refs/heads/master@{#31381}
2015-10-19 15:16:20 +00:00
mstarzinger
68a74034f2 [turbofan] Temporary workaround for JSInliner zone.
This is exactly what it looks like. A temporary hack that ensures we
can make forward progress with the JSInliner despite other components
have a hard time picking the correct zone. This hack is a hack!

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

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

Cr-Commit-Position: refs/heads/master@{#31380}
2015-10-19 15:09:20 +00:00
hablich
fb8a97eed9 Switch on unit test regarding -Infinity and TypedArrays
Should already work according to issue.

BUG=chromium:424619
LOG=N
R=adamk@chromium.org, littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31379}
2015-10-19 14:26:38 +00:00
cbruni
df8970a8c7 [runtime] Fancify KeyAccumulator
Separately collect element keys from property keys to avoid slow
corner-cases. Partly deal with keys generated by Proxies.

BUG=chromium:536790
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31378}
2015-10-19 13:47:43 +00:00
mstarzinger
1696275642 [debugger] Add test for Debug.scripts without listener.
This adds a test case that ensures calling Debug.scripts without any
listener attached fails gracefully. For now we are throwing the string
"illegal access", this might change in the future to be a dedicated
exception.

R=yangguo@chromium.org
TEST=mjsunit/debug-scripts-throw

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

Cr-Commit-Position: refs/heads/master@{#31377}
2015-10-19 13:34:41 +00:00
machenbach
333bf86ccb [test] Fix bot_default config for noi18n.
Fix after https://codereview.chromium.org/1413023002/

BUG=chromium:535160
LOG=n
NOTRY=true
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31376}
2015-10-19 13:26:24 +00:00
bmeurer
6367c0798e [turbofan] Use correct map for special JSObject accessors.
This fixes a small inconsistency when the accessor is on a prototype,
because the property access has to respect the holder (and not always go
to the receiver unconditionally).

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

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

Cr-Commit-Position: refs/heads/master@{#31375}
2015-10-19 13:25:21 +00:00
Michael Achenbach
cf0919b249 Whitespace change to test adding full set of simdjs tests.
Cr-Commit-Position: refs/heads/master@{#31374}
2015-10-19 12:54:43 +00:00
machenbach
8aec6fb047 Revert of Always give class literals a block scope (patchset #2 id:20001 of https://codereview.chromium.org/1413903002/ )
Reason for revert:
[Sheriff] Breaks vector stores:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug%20-%20vector%20stores/builds/536

Original issue's description:
> Always give class literals a block scope
>
> Class methods always have the class scope on their scope chain in order
> to implement strong mode checks. Previously, that scope wasn't attached
> to the ClassLiteral for anonymous classes (since the scope contained
> no bindings).
>
> This patch simply puts that same scope on the ClassLiteral, anonymous
> or not, which simplifies other code that needs to reason about the scope
> of a class and its methods.
>
> Committed: https://crrev.com/cf13dda1ba25e8293ea143f33c6c5f6233a39c86
> Cr-Commit-Position: refs/heads/master@{#31371}

TBR=mstarzinger@chromium.org,adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31373}
2015-10-19 12:17:49 +00:00
jarin
3791cf9854 [fullcode] Make intrinsic-to-stub-call handling platform independent.
Review URL: https://codereview.chromium.org/1412153002

Cr-Commit-Position: refs/heads/master@{#31372}
2015-10-19 11:59:40 +00:00
adamk
cf13dda1ba Always give class literals a block scope
Class methods always have the class scope on their scope chain in order
to implement strong mode checks. Previously, that scope wasn't attached
to the ClassLiteral for anonymous classes (since the scope contained
no bindings).

This patch simply puts that same scope on the ClassLiteral, anonymous
or not, which simplifies other code that needs to reason about the scope
of a class and its methods.

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

Cr-Commit-Position: refs/heads/master@{#31371}
2015-10-19 11:38:28 +00:00
machenbach
80df08b59f [swarming] Isolate more tests.
BUG=chromium:535160
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31370}
2015-10-19 11:37:26 +00:00
yangguo
274287d85d Move Script constructor off js builtins object.
R=cbruni@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31369}
2015-10-19 11:36:05 +00:00
hablich
6ead2bd8a1 [Release] Add hablich to autocc for staging/shipping features
LOG=N
R=machenbach@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31368}
2015-10-19 11:35:03 +00:00
machenbach
6503b71b55 [test] Skip webkit tests with isolates.
BUG=v8:4499
LOG=n
NOTRY=true
NOTREECHECKS=true
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31367}
2015-10-19 11:31:37 +00:00
rmcilroy
4d62978d63 [Interpreter] Add support for Throw.
Adds support for throwing exceptions. Adds the bytecode Throw.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31366}
2015-10-19 10:59:12 +00:00
bmeurer
a5d4608e09 [turbofan] Lower access to special JSObject field accessors.
This adds support to also optimize loads from special JSObject field
accessors, like String::length and JSArray::length.

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

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

Cr-Commit-Position: refs/heads/master@{#31365}
2015-10-19 10:58:10 +00:00
machenbach
8aae39b592 [test] Skip some webkit tests with isolates or ASAN.
BUG=v8:4499
LOG=n
NOTRY=true
NOTREECHECKS=true
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31364}
2015-10-19 10:57:06 +00:00
machenbach
1f7490b3df [swarming] Isolate bot_default.
Depends on https://codereview.chromium.org/1413023002/

BUG=chromium:535160
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31363}
2015-10-19 09:52:47 +00:00
mvstanton
2f2302f08b VectorICs: Bugfix in KeyedStore dispatcher.
The dispatcher failed to MISS properly when configured as a monomorphic
keyed string store, causing a crash.

BUG=v8:4495
LOG=N
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31362}
2015-10-19 09:51:46 +00:00
Michael Achenbach
c01c54951b Whitespace change to test adding webkit to more test configs.
Cr-Commit-Position: refs/heads/master@{#31361}
2015-10-19 09:37:00 +00:00
machenbach
c8f7583a48 [test] Run webkit tests as part of default testing on the bots.
The test suite is ran in 60% of the bots anyway and the
step is very short. For swarming, it's better to run this
together in one step as each step triggers a different bot.

BUG=chromium:535160
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31360}
2015-10-19 08:55:13 +00:00
machenbach
3e014cb319 [test] Pull benchmarks as a dependency.
BUG=chromium:535160
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31359}
2015-10-19 08:42:16 +00:00
bmeurer
e678a0f9a9 [runtime] Implement %_ToLength via ToLengthStub.
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.

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel
BUG=v8:4494
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31358}
2015-10-19 08:35:18 +00:00
verwaest
51cb4481a9 [IC] Ensure we don't transition receivers when there's a data property in the hidden prototype chain.
BUG=chromium:542647
R=cbruni@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31357}
2015-10-19 08:29:50 +00:00
bmeurer
f6a886d571 [turbofan] Rename JSGlobalSpecialization to JSNativeContextSpecialization.
R=jarin@chromium.org
BUG=v8:4470
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31356}
2015-10-19 08:21:07 +00:00
mstarzinger
dbae315a10 [turbofan] Remove locally constructed simplified builders.
This removes all locally constructed SimplifiedOperatorBuilder instances
and uses the one passed along the JSGraph. It ensures that the correct
zone is used to allocate operators, no matter where the reducer is used.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31355}
2015-10-19 08:05:27 +00:00
bmeurer
66ca9c8381 [turbofan] Compute more precise type for ObjectIsSmi if possible.
The typer can infer true/false for ObjectIsSmi if the argument has a
fixed/known representation (i.e. is either known to be smi or heap
object).

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31354}
2015-10-19 07:47:35 +00:00
jarin
f9a9c6be0e [turbofan] Introduce lazy bailout, masked as a call.
This introduces an explicit lazy bailout. It is wrapped in the call
node, mostly because the lazy deoptimization processing is married
to the call processing in the instruction selector and the code generator.

It is still a terrible hack.

R=bmeurer@chromium.org,mstarzinger@chromium.org
BUG=chromium:543994,v8:4195
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31353}
2015-10-19 06:21:26 +00:00
bmeurer
e1088b27b5 [turbofan] Initial support for monomorphic/polymorphic property loads.
Native context specialization now lowers monomorphic and
polymorphic accesses to data and constant data properties on
object and/or prototype chain. We don't deal with accessors
yet, and we also completely ignore proxies (which is compatible
with what Crankshaft does).

The code is more or less the straightforward implementation. We
will need to refactor that and extract common patterns once the
remaining bits for full load/store support is in.

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

Committed: https://crrev.com/3a0bf860b7177f7abef01ff308a53603389d958e
Cr-Commit-Position: refs/heads/master@{#31340}

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

Cr-Commit-Position: refs/heads/master@{#31352}
2015-10-19 05:24:51 +00:00
alph
fc4da977a8 [x64] Make use of vucomiss and vucomisd when AVX is enabled.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31351}
2015-10-18 18:06:13 +00:00
alph
a57c62f679 [x64] Emit vmovmskpd when AVX is enabled.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31350}
2015-10-18 16:12:35 +00:00
alph
9131cf7ec2 [x64] Emit vcvtss2sd & vcvtsd2ss when AVX is enabled.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31349}
2015-10-18 16:11:31 +00:00
alph
0138b2652f [x64] Emit vcvttsd2si[q] when AVX is enabled.
BUG=v8:4406
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31348}
2015-10-18 15:43:41 +00:00
jarin
106aecf262 [turbofan] Redundant branch elimination.
Removes a branch that checks for a condition that has been checked on dominators of the branch.

This introduces a new reducer that propagates the list of checked conditions (and their boolean values) through the control flow graph. If it encounters a branch checking a condition with a known value, the branch is eliminated.

The analysis relies on loops being reducible: if a condition has been checked on all paths to loop entry, then it is checked in the loop (regardless what of the conditions checked inside the loop).

The implementation is fairly naive and could be improved:

- all the operation on the condition lists could be made allocation-free when revisited.

- we could try to use a map structure rather than a linked list (to make
lookups faster).

- the merging of control flow could be changed to take into account
  conditions from non-dominating paths (as long as all paths check
  the condition).

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

Cr-Commit-Position: refs/heads/master@{#31347}
2015-10-17 17:50:26 +00:00