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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
- 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}
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}
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}
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}
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}