Commit Graph

31478 Commits

Author SHA1 Message Date
jarin
b4274ce38e [turbofan] Fix bad merge.
TBR=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2057063002
Cr-Commit-Position: refs/heads/master@{#36886}
2016-06-10 10:42:20 +00:00
oth
85882a6320 [interpreter] Remove OperandScale from front stages of pipeline.
BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2041913002
Cr-Commit-Position: refs/heads/master@{#36885}
2016-06-10 10:36:38 +00:00
rmcilroy
4ff921bc27 [Interpreter] Update Blink TestExpectationsIgnition.
Remove expectations which were failing due to eager compilation now that we compile lazily in Ignition, and add intersection-observer/observer-exceptions.html which has recently started failing.

BUG=v8:5096
TBR=machenbach@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2053323002
Cr-Commit-Position: refs/heads/master@{#36884}
2016-06-10 10:33:29 +00:00
cbruni
01a423e00f [--prof] Adding support for RuntimeCallTimerScope based tick separation
BUG=

Review-Url: https://codereview.chromium.org/2050713002
Cr-Commit-Position: refs/heads/master@{#36883}
2016-06-10 09:16:42 +00:00
asaka
8c1b2623cc Replace std::trunc() with trunc() to support cross-compiling
Fix-up of https://codereview.chromium.org/1965443003 required for
certain toolchains that do not support std::trunc().

BUG=

Review-Url: https://codereview.chromium.org/2056693002
Cr-Commit-Position: refs/heads/master@{#36882}
2016-06-10 08:01:47 +00:00
jarin
2890137bdc [turbofan] Introduce PlainPrimitiveToNumber.
This should solve the problem with missing checkpoints after JSToNumber
(PlainPrimitiveToNumber is marked no-write, so the frame-state
propagation should see through it.)

Unfortunately, this also duplicates the word32- and float64-truncation
magic that we have for JSToNumber in "simplified lowering".

Review-Url: https://codereview.chromium.org/2059653002
Cr-Commit-Position: refs/heads/master@{#36881}
2016-06-10 07:45:23 +00:00
bmeurer
d0c7775d7c [builtins] Introduce proper base::ieee754::log.
This switches Math.log to use an fdlibm based version of log, imported
as base::ieee754::log, and use that consistently everywhere, i.e. change
the Float64Log TurboFan operators on Intel to use the C++ implementation
as well (same for Crankshaft).

R=yangguo@chromium.org
BUG=v8:5065,v8:5086

Review-Url: https://codereview.chromium.org/2053893003
Cr-Commit-Position: refs/heads/master@{#36880}
2016-06-10 05:54:12 +00:00
yangguo
e5760c0808 [snapshot] introduce SnapshotCreator API.
And use it to implement existing the existing snapshot API.

R=jochen@chromium.org, vogelheim@chromium.org
BUG=chromium:617892

Review-Url: https://codereview.chromium.org/2046423002
Cr-Commit-Position: refs/heads/master@{#36879}
2016-06-10 05:47:47 +00:00
julien.gilli
2619ccd1a0 Move post-mortem constants from accessors table to constants table
Some post-mortem metadata constants that are not offsets to objects'
properties were incorrectly defined in the accessors table. This change
fixes it by moving them from the accessors table to the constants table.

More background is available at
https://github.com/nodejs/post-mortem/issues/27.

R=danno@chromium.org,bmeurer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2051563003
Cr-Commit-Position: refs/heads/master@{#36878}
2016-06-10 04:09:09 +00:00
v8-autoroll
7dde77ac02 Update V8 DEPS.
Rolling v8/build to 303caaa5b8500304a82fd72c4af43d82b218e218

Rolling v8/tools/clang to 717602f21eca67f87ddd66a0f690148bbe191b79

Rolling v8/tools/mb to 87ae1f0b47b310f37d174571b46e7c33717aba0c

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

Review-Url: https://codereview.chromium.org/2055163003
Cr-Commit-Position: refs/heads/master@{#36877}
2016-06-10 03:24:58 +00:00
adamk
757221e574 Remove more dead code now that legacy const is gone
Neither globals nor lookup slots can be hole-initialized anymore, thus
removing some dead code from the code generators and runtime-scopes.

Review-Url: https://codereview.chromium.org/2051073004
Cr-Commit-Position: refs/heads/master@{#36876}
2016-06-09 19:53:06 +00:00
oth
af10c45ef2 [interpreter] Compilation fix in bytecode source position tester.
TBR=rmcilroy@chromium.org
BUG=chromium:618757
LOG=N

Review-Url: https://codereview.chromium.org/2052993002
Cr-Commit-Position: refs/heads/master@{#36875}
2016-06-09 19:13:20 +00:00
jyan
565a8f94dc S390: [stubs] ToNumberStub --> ToNumber builtin.
port 406146ff5c

Original Commit Message:
  This makes sure we do not compile ToNumber stub on demand. This makes it
  easier to use during concurrent compilation.

R=jarin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2052963003
Cr-Commit-Position: refs/heads/master@{#36874}
2016-06-09 19:04:16 +00:00
lpy
2fd55667a6 Move hashmap into src/base.
We ported hashmap.h into libsampler as a workaround before, so the main focus of
this patch is to reduce code duplication. This patch moves the hashmap into
src/base as well as creates DefaultAllocationPolicy using malloc and free.

BUG=v8:5050
LOG=n

Review-Url: https://codereview.chromium.org/2010243003
Cr-Commit-Position: refs/heads/master@{#36873}
2016-06-09 18:00:31 +00:00
jyan
cb05c2df7c S390: [stubs] StringToNumberStub --> StringToNumber builtin.
port 546dd77ffc

Original Commit Message:
  Since some builtins use StringToNumberStub (so the code is always there),
  it makes more sense to have StringToNumber builtin.

R=jarin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2052833003
Cr-Commit-Position: refs/heads/master@{#36872}
2016-06-09 17:34:10 +00:00
ishell
9dc62d2721 [ic] [stubs] Remove InlineCacheState field from the code flags.
There are no ICs left that store their state in this field: vector based
ICs use feedback vector and the rest three (BinaryOpIC, CompareIC and
ToBooleanIC) reconstruct their state from the ExtraICState field.

This CL also removes unused InlineCacheState::DEBUG_STUB which was used
mostly in Code::is_debug_stub(). The latter now checks if the code is one
of the debug builtins instead.

BUG=chromium:618701
LOG=Y

Review-Url: https://codereview.chromium.org/2052763003
Cr-Commit-Position: refs/heads/master@{#36871}
2016-06-09 16:49:01 +00:00
jarin
406146ff5c [stubs] ToNumberStub --> ToNumber builtin.
This makes sure we do not compile ToNumber stub on demand. This makes it
easier to use during concurrent compilation.

Review-Url: https://codereview.chromium.org/2051113002
Cr-Commit-Position: refs/heads/master@{#36870}
2016-06-09 15:38:21 +00:00
mstarzinger
08b7bc9d65 [runtime] Deprecate RUNTIME_ASSERT from internal ops.
This removes explicit uses of the RUNTIME_ASSERT macro from some runtime
methods. The implicit ones in CONVERT_FOO_ARG_CHECKED will be addressed
in a separate CL for all runtime modules at once.

R=bmeurer@chromium.org
BUG=v8:5066

Review-Url: https://codereview.chromium.org/2057543002
Cr-Commit-Position: refs/heads/master@{#36869}
2016-06-09 15:35:26 +00:00
verwaest
e7de678a2c Speed up adding literal chars when the buffer is known to be one-byte
We have fast-paths in identifier and string scanning that know that so far they have only handled one-byte input. In that case, we can add chars to the literal buffer assuming that it's still in one-byte state, avoiding 2 branches. This seemingly reduces identifier scanning from ~5% to ~4% on octane-codeload.

BUG=

Review-Url: https://codereview.chromium.org/2044233004
Cr-Commit-Position: refs/heads/master@{#36868}
2016-06-09 15:14:55 +00:00
Adam Klein
4fc1ea142d Add vogelheim to src/parsing/OWNERS
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#36867}
2016-06-09 14:46:34 +00:00
titzer
26afd571c5 [wasm] Fix CFI failures due to Wasm threads.
R=ahaas@chromium.org,machenbach@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2055803002
Cr-Commit-Position: refs/heads/master@{#36866}
2016-06-09 14:23:52 +00:00
jyan
280b838255 S390: [gn] define V8_TARGET_ARCH_S390_LE_SIM for s390 sim build
R=machenbach@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2055703002
Cr-Commit-Position: refs/heads/master@{#36865}
2016-06-09 14:20:59 +00:00
neis
54b405ce65 [generators] Make runtime functions more robust.
Only look at the --ignition-generators flag when determining whether to use
Ignition (in compiler.cc).  In generator runtime functions, instead of looking
at the flag, determine the generator kind based on whether the generator has a
bytecode array.  This allows compiling some generator function using
full-codegen and others using Ignition, e.g when using --ignition-filter.

R=mstarzinger@chromium.org
BUG=chromium:618657,v8:4907

Review-Url: https://codereview.chromium.org/2052873002
Cr-Commit-Position: refs/heads/master@{#36864}
2016-06-09 14:20:58 +00:00
oth
769d332619 [interpreter] Filter expression positions at source.
With this change the bytecode array builder only emits expression
positions for bytecodes that can throw. This allows more peephole
optimization opportunities and results in smaller code.

BUG=v8:4280,chromium:615979
LOG=N

Review-Url: https://codereview.chromium.org/2038323002
Cr-Commit-Position: refs/heads/master@{#36863}
2016-06-09 13:33:29 +00:00
machenbach
77af83ba18 [build] Use icu data file by default
BUG=chromium:616033
LOG=y

Review-Url: https://codereview.chromium.org/2049743002
Cr-Commit-Position: refs/heads/master@{#36862}
2016-06-09 13:24:58 +00:00
machenbach
956f28b816 Revert of [mb] Switch staging bot to gyp for testing purposes (patchset #1 id:1 of https://codereview.chromium.org/2056673002/ )
Reason for revert:
Looks good. Switch back to gn.

Original issue's description:
> [mb] Switch staging bot to gyp for testing purposes
>
> This is to test the migration workflow. Will be reverted
> afterwards.
>
> BUG=chromium:616035
> NOTRY=true
> TBR=vogelheim@chromium.org, jochen@chromium.org
>
> Committed: https://crrev.com/6a5d769be2b97a9ebca8ec58496cb20aed077f18
> Cr-Commit-Position: refs/heads/master@{#36848}

TBR=vogelheim@chromium.org,jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:616035

Review-Url: https://codereview.chromium.org/2050243002
Cr-Commit-Position: refs/heads/master@{#36861}
2016-06-09 13:21:36 +00:00
machenbach
cb18c379a8 [gn] Skip gyp_v8 when gn should run
This ports logic from gyp_chromium to skip gyp by environment
variable. The variable name stays the same for chromium
and v8 as it is shared across other infra tools.

BUG=chromium:474921
NOTRY=true

Review-Url: https://codereview.chromium.org/2049683004
Cr-Commit-Position: refs/heads/master@{#36860}
2016-06-09 12:49:07 +00:00
machenbach
19fca22505 [test] Skip tail-call-megatest for tsan
This test gets slower with tsan when the print() calls
in the tests are deleted. It is also only very slow with
crankshaft not with turbofan, but we have no config atm
to only run it with turbofan.

TBR=ishell@chromium.org, ahaas@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2049993003
Cr-Commit-Position: refs/heads/master@{#36859}
2016-06-09 12:49:06 +00:00
cbruni
1ed327977d [--trace-ic] always print short form of keys
BUG=
NOTRY=Y

Review-Url: https://codereview.chromium.org/2045013005
Cr-Commit-Position: refs/heads/master@{#36858}
2016-06-09 12:38:27 +00:00
machenbach
8898fef850 Reland of [ic] Don't pollute per-map code cache with CompareIC stubs. (patchset #1 id:1 of https://codereview.chromium.org/2055793002/ )
Reason for revert:
Not the cause...

Original issue's description:
> Revert of [ic] Don't pollute per-map code cache with CompareIC stubs. (patchset #1 id:20001 of https://codereview.chromium.org/2053583002/ )
>
> Reason for revert:
> [Sheriff] Speculative revert. Tail call test timing out:
> https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/10014
>
> Original issue's description:
> > [ic] Don't pollute per-map code cache with CompareIC stubs.
> >
> > Given that
> > 1) because of code flags mismatch we are not able to fetch any CompareIC stub that was put into the cache (we put MONOMORPHIC stubs but query only UNINITIALIZED ones),
> > 2) it was already broken for a couple of years,
> > 3) we will not need to cache any stub once CompareIC becomes vector-based.
> >
> > Committed: https://crrev.com/172ddf4250e5c4b7510ce352631fb9f8eb291940
> > Cr-Commit-Position: refs/heads/master@{#36854}
>
> TBR=verwaest@chromium.org,jkummerow@chromium.org,ishell@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/1d2ee8fd10adbfa5d213462c46181fa1ca899a61
> Cr-Commit-Position: refs/heads/master@{#36856}

TBR=verwaest@chromium.org,jkummerow@chromium.org,ishell@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2051823002
Cr-Commit-Position: refs/heads/master@{#36857}
2016-06-09 12:34:10 +00:00
machenbach
1d2ee8fd10 Revert of [ic] Don't pollute per-map code cache with CompareIC stubs. (patchset #1 id:20001 of https://codereview.chromium.org/2053583002/ )
Reason for revert:
[Sheriff] Speculative revert. Tail call test timing out:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/10014

Original issue's description:
> [ic] Don't pollute per-map code cache with CompareIC stubs.
>
> Given that
> 1) because of code flags mismatch we are not able to fetch any CompareIC stub that was put into the cache (we put MONOMORPHIC stubs but query only UNINITIALIZED ones),
> 2) it was already broken for a couple of years,
> 3) we will not need to cache any stub once CompareIC becomes vector-based.
>
> Committed: https://crrev.com/172ddf4250e5c4b7510ce352631fb9f8eb291940
> Cr-Commit-Position: refs/heads/master@{#36854}

TBR=verwaest@chromium.org,jkummerow@chromium.org,ishell@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2055793002
Cr-Commit-Position: refs/heads/master@{#36856}
2016-06-09 12:26:51 +00:00
oth
a9af61d002 [interpreter] Ensure optimizations preserve source positions.
The optimization stages in the bytecode generation pipeline must
preserve source position information. Failure to preserve
source position information could result in single stepping
in the debugger misbehaving or mis-reporting in exception stack traces.

This change adds tests intended to check optimizations do not damage
source position info.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2042633002
Cr-Commit-Position: refs/heads/master@{#36855}
2016-06-09 12:04:38 +00:00
ishell
172ddf4250 [ic] Don't pollute per-map code cache with CompareIC stubs.
Given that
1) because of code flags mismatch we are not able to fetch any CompareIC stub that was put into the cache (we put MONOMORPHIC stubs but query only UNINITIALIZED ones),
2) it was already broken for a couple of years,
3) we will not need to cache any stub once CompareIC becomes vector-based.

Review-Url: https://codereview.chromium.org/2053583002
Cr-Commit-Position: refs/heads/master@{#36854}
2016-06-09 11:44:48 +00:00
ahaas
cd98c2c350 [tests] Remove prints in tail-call-megatest.js
R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2045253006
Cr-Commit-Position: refs/heads/master@{#36853}
2016-06-09 11:38:37 +00:00
mstarzinger
206cf39851 [runtime] Deprecate RUNTIME_ASSERT from object ops.
This removes explicit uses of the RUNTIME_ASSERT macro from some runtime
methods. The implicit ones in CONVERT_FOO_ARG_CHECKED will be addressed
in a separate CL for all runtime modules at once.

R=bmeurer@chromium.org
BUG=v8:5066

Review-Url: https://codereview.chromium.org/2045193002
Cr-Commit-Position: refs/heads/master@{#36852}
2016-06-09 11:22:19 +00:00
mlippautz
f4e4fd7105 Reland of "heap] Fix Sweeper::IsSweepingCompleted"
This reverts commit 0bccf3e664.

R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2049063004
Cr-Commit-Position: refs/heads/master@{#36851}
2016-06-09 11:22:18 +00:00
mlippautz
0bccf3e664 Revert of [heap] Fix Sweeper::IsSweepingCompleted (patchset #1 id:1 of https://codereview.chromium.org/2047013004/ )
Reason for revert:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/10009

Original issue's description:
> [heap] Fix Sweeper::IsSweepingCompleted
>
> R=ulan@chromium.org
>
> Committed: https://crrev.com/b4475fff4fe1c423a3c8c3b072e09becd6b2f8ed
> Cr-Commit-Position: refs/heads/master@{#36845}

TBR=ulan@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2053623002
Cr-Commit-Position: refs/heads/master@{#36850}
2016-06-09 10:28:49 +00:00
jkummerow
bf5f2b5998 [tools] Fix detect-builtins.js
- include non-default prototypes (useful for TypedArrays)
- print value of string/number properties (avoids endless recursion)

Review-Url: https://codereview.chromium.org/2048593004
Cr-Commit-Position: refs/heads/master@{#36849}
2016-06-09 10:17:32 +00:00
machenbach
6a5d769be2 [mb] Switch staging bot to gyp for testing purposes
This is to test the migration workflow. Will be reverted
afterwards.

BUG=chromium:616035
NOTRY=true
TBR=vogelheim@chromium.org, jochen@chromium.org

Review-Url: https://codereview.chromium.org/2056673002
Cr-Commit-Position: refs/heads/master@{#36848}
2016-06-09 10:06:14 +00:00
machenbach
6de74c782c [mb] Add mb config
This adds a minimal mb config to switch the v8 staging bot
to mb. External mb documentation:
https://chromium.googlesource.com/chromium/src/tools/mb/+/HEAD/docs/user_guide.md

After this is tested on the staging bot, mb configs for the
remaining bots will be provided and all bots will be
systematically switched.

BUG=chromium:616035
NOTRY=true

Review-Url: https://codereview.chromium.org/2024893002
Cr-Commit-Position: refs/heads/master@{#36847}
2016-06-09 09:12:54 +00:00
yangguo
d77963feea Add UseCounter for Date.parse's legacy parse heuristics.
R=adamk@chromium.org, jochen@chromium.org
BUG=chromium:618595

Review-Url: https://codereview.chromium.org/2050733004
Cr-Commit-Position: refs/heads/master@{#36846}
2016-06-09 09:09:59 +00:00
mlippautz
b4475fff4f [heap] Fix Sweeper::IsSweepingCompleted
R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2047013004
Cr-Commit-Position: refs/heads/master@{#36845}
2016-06-09 09:03:20 +00:00
ishell
8b52429224 [stubs] Fixed PrimaryStubCache and SecondaryStubCache tests.
Now they use a proper way of checking if the snapshot is available or not.

Review-Url: https://codereview.chromium.org/2054693002
Cr-Commit-Position: refs/heads/master@{#36844}
2016-06-09 08:07:11 +00:00
jarin
546dd77ffc [stubs] StringToNumberStub --> StringToNumber builtin.
Since some builtins use StringToNumberStub (so the code is always there),
it makes more sense to have StringToNumber builtin.

Review-Url: https://codereview.chromium.org/2050853003
Cr-Commit-Position: refs/heads/master@{#36843}
2016-06-09 07:58:27 +00:00
danno
40b5c1d41f [turbofan] Add comments to CodeAssembler
Review-Url: https://codereview.chromium.org/2056503003
Cr-Commit-Position: refs/heads/master@{#36842}
2016-06-09 07:28:20 +00:00
bmeurer
fe561a7a18 Add LICENSE.fdlibm for all the fdlibm imported sources.
R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2054543003
Cr-Commit-Position: refs/heads/master@{#36841}
2016-06-09 07:17:03 +00:00
bmeurer
eb1c9e2723 [es6] Fix prototype chain walk for instanceof.
When walking up the prototype chain during OrdinaryHasInstance, we first
check if the current prototype equals the expected one, and only
afterwards check the current prototype against null. That's obviously
wrong if we check something like Proxy, whose prototype is null.

R=yangguo@chromium.org
BUG=v8:5085

Review-Url: https://codereview.chromium.org/2041103007
Cr-Commit-Position: refs/heads/master@{#36840}
2016-06-09 06:26:03 +00:00
jarin
f2312019af [turbofan] Introduce CheckIf node (deopt without explicit frame state).
Type feedback introduced DeoptimizeIf node in representation inference
(for Int32AddWithOverflow); we found the frame state for the deopt by
walking the effect chain. Unfortunately, the effect chain can hit
effect merges introduced by simplified lowering (e.g., in LoadBuffer)
and thus fail the assertion (we refuse to go through effect phis).

This CL postpones assignment of the frame state to the effect-control
lninearizer, so that we can correctly propagate the frame state to
the deopt point. The DeoptimizeIf node with unassigned frame state is
called CheckIf.

BUG=

Review-Url: https://codereview.chromium.org/2050813003
Cr-Commit-Position: refs/heads/master@{#36839}
2016-06-09 05:41:23 +00:00
alph
81c8ce723a Remove dependencies of V8 on cpu-profiler is_profiling.
Move is_profiling to the isolate for now.

BUG=v8:4789

Review-Url: https://codereview.chromium.org/2040683002
Cr-Commit-Position: refs/heads/master@{#36838}
2016-06-09 05:25:09 +00:00
v8-autoroll
a1b80d6801 Update V8 DEPS.
Rolling v8/build to 4842479bd8da7b9e5eb027f8c15bee533f9c328f

Rolling v8/buildtools to 099f1da55bfe8caa12266371a7eb983698fb1d87

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

Review-Url: https://codereview.chromium.org/2056613002
Cr-Commit-Position: refs/heads/master@{#36837}
2016-06-09 03:22:26 +00:00