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}
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}
Reason for revert:
Make MSAN arm bot flaky
Original issue's description:
> Move stack trace extraction code out of TickSample::Init
>
> Make it a part of V8 API GetStackSample function.
> Also expose external_callback_entry in SampleInfo to break dependency
> of clients on internal V8 structures.
>
> BUG=v8:4789
>
> Committed: https://crrev.com/70acfe39c07322144f5fe9b40bb584a8b1099ffd
> Cr-Commit-Position: refs/heads/master@{#36831}
TBR=yangguo@chromium.org,lpy@chromium.org,jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4789
Review-Url: https://codereview.chromium.org/2049903002
Cr-Commit-Position: refs/heads/master@{#36835}
This improves maintainability. The Compile and Wasm benchmarks,
tracking compile time, show no regression.
BUG=
Review-Url: https://codereview.chromium.org/2044283003
Cr-Commit-Position: refs/heads/master@{#36834}
This limits the use of the aforementioned helper class to only binary
and compare operations. These are the only operatins left that require
two frame state inputs on the same node.
R=jarin@chromium.org
BUG=v8:5021
Review-Url: https://codereview.chromium.org/2050673002
Cr-Commit-Position: refs/heads/master@{#36832}
Make it a part of V8 API GetStackSample function.
Also expose external_callback_entry in SampleInfo to break dependency
of clients on internal V8 structures.
BUG=v8:4789
Review-Url: https://codereview.chromium.org/2007343003
Cr-Commit-Position: refs/heads/master@{#36831}
This removes the by now obsolete threading of the helper class attaching
two frame states (before and after) to a given node. This helper is no
longer required for variable loads and stores.
R=jarin@chromium.org
BUG=v8:5021
Review-Url: https://codereview.chromium.org/2051443003
Cr-Commit-Position: refs/heads/master@{#36829}
Adding properties to prototypes is faster when we don't force their
maps into fast mode yet. Once a prototype shows up in the IC system,
its setup phase is likely over, and it makes sense to transition it
to fast properties.
This patch speeds up the microbenchmark in the bug by 20x.
Octane-Typescript sees a 3% improvement.
BUG=chromium:607010
Review-Url: https://codereview.chromium.org/2036493006
Cr-Commit-Position: refs/heads/master@{#36828}
This allows using icu data, bundled in the icudtl.dat file,
to be loaded automatically from a default location
side-by-side with the executable.
The v8 stand-alone default is still to use statically
linked ICU data, but this will be switched in a separate
follow-up CL.
BUG=chromium:616033
LOG=y
Review-Url: https://codereview.chromium.org/2042253002
Cr-Commit-Position: refs/heads/master@{#36823}
Also, make %GeneratorGetSourcePosition fail if called on a suspended Ignition generator
(rather than return nonsense). This functionality is currently not implemented.
BUG=v8:4907
Review-Url: https://codereview.chromium.org/2049663002
Cr-Commit-Position: refs/heads/master@{#36822}
This might help with some further investigations when using the IC-Explorer.
BUG=
Review-Url: https://codereview.chromium.org/2046943003
Cr-Commit-Position: refs/heads/master@{#36821}
Now that we track feedback per realm, this kind of IC is always guaranteed to be an update to the object structure.
BUG=
Review-Url: https://codereview.chromium.org/2040363003
Cr-Commit-Position: refs/heads/master@{#36819}
This speeds up .bind by >10x as measured by
function f(a,b,c) {}
for (var i = 0; i < 10000000; i++) {
f.bind(1); // or more arguments.
}
(Uses hydrogen-stubs rather than TF due to var-args + possible runtime fallback, which is still unsupported in TF.)
BUG=
Review-Url: https://codereview.chromium.org/2044113002
Cr-Commit-Position: refs/heads/master@{#36817}
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=verwaest@chromium.org
BUG=v8:5066
Review-Url: https://codereview.chromium.org/2041353003
Cr-Commit-Position: refs/heads/master@{#36815}