TestNotEqualsStrict is converted to a TestEqualsStrict and logical not
by the parser. Also, CompareIC does not have an implementation for
TestNotEqualsStrict. Hence, removing this bytecode.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/1768593002
Cr-Commit-Position: refs/heads/master@{#34527}
The enum in question is (and should) no longer be used outside of the
compiler API and hence is being moved back into the Compiler class.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/1762323002
Cr-Commit-Position: refs/heads/master@{#34526}
Now that the embedder side supports v8::kGCCallbackFlagCollectAllAvailableGarbage,
this CL removes the old v8::kGCCallbackFlagForced from Heap::CollectAllAvailableGarbage.
BUG=591463
LOG=Y
Review URL: https://codereview.chromium.org/1762313002
Cr-Commit-Position: refs/heads/master@{#34517}
port 5912e0f014bd7b7d52cdc293145a912a4ecf2cf3(r34485)
original commit message:
Add StringLessThanStub, StringLessThanOrEqualStub, StringGreaterThanStub
and StringGreaterThanOrEqualStub, based on the CodeStubAssembler, and
hook them up with TurboFan (and Ignition). The stubs are currently
essentially comparable with the StringCompareStub, which is now
obsolete. We can later extend these stubs to cover more interesting
cases (i.e. two byte sequential string comparisons, etc.).
BUG=
Review URL: https://codereview.chromium.org/1768013002
Cr-Commit-Position: refs/heads/master@{#34516}
Now there is just one kind, corresponding to what was called "initial" before.
Replacement for "suspend": when the parser sees a yield in JS code, it
will turn it into a Yield node but wrap its argument in an iterator result
object. Replacement for "final": the parser simply inserts a return statement
instead.
R=littledan@chromium.org, mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1751613004
Cr-Commit-Position: refs/heads/master@{#34515}
It benefits certain algorithms in register allocation to assume the input is
SSA - understanding that ResolvePhis in the regalloc pipeline lowers
phis, thus blurring the SSA invariant.
BUG=
Review URL: https://codereview.chromium.org/1760323002
Cr-Commit-Position: refs/heads/master@{#34509}
Port 5912e0f014
Original commit message:
Add StringLessThanStub, StringLessThanOrEqualStub, StringGreaterThanStub
and StringGreaterThanOrEqualStub, based on the CodeStubAssembler, and
hook them up with TurboFan (and Ignition). The stubs are currently
essentially comparable with the StringCompareStub, which is now
obsolete. We can later extend these stubs to cover more interesting
cases (i.e. two byte sequential string comparisons, etc.).
R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/1761403002
Cr-Commit-Position: refs/heads/master@{#34508}
It seems we produce both the usual add as well as the add with
overflow, when we should only generate the overflow variant. This
invalidates SSA assumptions in 2 tests (cctest/test-run-machops/RunInt32AddWithOverflowImm and
cctest/test-run-machops/RunInt64AddWithOverflowImm).
BUG=
Review URL: https://codereview.chromium.org/1757213003
Cr-Commit-Position: refs/heads/master@{#34507}
For platforms that use function descriptors (currently AIX and
PPC64BE), log an external callback's entrypoint address rather than
its function descriptor address.
R=jkummerow@chromium.org, michael_dawson@ca.ibm.com
TEST=cctest/test-cpu-profiler/JsNativeJsSample
BUG=
Review URL: https://codereview.chromium.org/1752173003
Cr-Commit-Position: refs/heads/master@{#34505}
This scope is used to control microtasks execution when MicrotasksPolicy::kScoped is engaged.
Attempt #2. First one was reverted due to chromium breakage: SetAutorunMicrotasks(false) was broken.
BUG=chromium:585949
LOG=Y
TEST=ScopedMicrotasks
Review URL: https://codereview.chromium.org/1741893003
Cr-Commit-Position: refs/heads/master@{#34504}
This adds more comments to the V8 compiler API explaining the entry
methods within that API. It also establishes a separate method for OSR
compilation since {Compiler::GetOptimizedCode} is only used for OSR by
now.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/1769523002
Cr-Commit-Position: refs/heads/master@{#34503}
The Tracing split CL https://codereview.chromium.org/1707563002 mostly moved the location of
the TRACE call, but it added 2 very high frequency calls related to tracking V8.External.
In most benchmark and devices the added overhead is negligible except on N6 where it gets amplified.
This CL removes those 2 calls until more efficient tracing or a different technique is used.
BUG=588137
LOG=N
Review URL: https://codereview.chromium.org/1765673003
Cr-Commit-Position: refs/heads/master@{#34499}
Blink wants to distinguish GCs triggered by CollectAllAvailableGarbage
from GCs forced by testing. This CL introduces a new flag to differentiate
the two GC types.
BUG=591463
LOG=Y
Review URL: https://codereview.chromium.org/1757263003
Cr-Commit-Position: refs/heads/master@{#34494}
Crankshaft can't track operand/environment changes between arbitrary statements.
We need that to fully support do-expressions. Instead, a subset is supported
by bailing out on break statements, continue statements, and if we've made an
OSR entry within a do-expression.
This partial support is a good idea because do-expressions are a useful tool
for desugaring during parsing.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/1769463002
Cr-Commit-Position: refs/heads/master@{#34491}
Typo in implementation of FastNewObjectStub::Generate for MIPS32
cause unnecessary calls to slow Runtime::kNewObject
TEST=cctest/test-heap-profiler/TrackBumpPointerAllocations
BUG=
Review URL: https://codereview.chromium.org/1762263002
Cr-Commit-Position: refs/heads/master@{#34490}
This removes the entry point to the compiler API which allows requesting
lazily compiled full-codegen code. The aim is to eventually allow the
decisions of which baseline compiler should be used (e.g. Ignition or
full-codegen) be centralized within the compiler pipeline.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/1764963002
Cr-Commit-Position: refs/heads/master@{#34489}
This is the equivalent of the fast-path in
ApplyTransitionToDataProperty.
BUG=588893, 325923
LOG=n
Review URL: https://codereview.chromium.org/1765633003
Cr-Commit-Position: refs/heads/master@{#34488}
On 32-bit systems FXXXConvertI64 instructions are compiled to calls to
C functions. The TF node for the function call is already generated in
the wasm compiler, the lowering of the I64 parameter is done in the
Int64Lowering.
R=titzer@chromium.org, yangguo@chromium.org
Review URL: https://codereview.chromium.org/1738623003
Cr-Commit-Position: refs/heads/master@{#34487}
Add StringLessThanStub, StringLessThanOrEqualStub, StringGreaterThanStub
and StringGreaterThanOrEqualStub, based on the CodeStubAssembler, and
hook them up with TurboFan (and Ignition). The stubs are currently
essentially comparable with the StringCompareStub, which is now
obsolete. We can later extend these stubs to cover more interesting
cases (i.e. two byte sequential string comparisons, etc.).
R=epertoso@chromium.org
Review URL: https://codereview.chromium.org/1765823002
Cr-Commit-Position: refs/heads/master@{#34485}
This CL also disables inlining of calls at tail position.
This is a preparational step. Tail call elimination itself is neither enabled nor supported yet.
BUG=v8:4698
LOG=N
Review URL: https://codereview.chromium.org/1761023003
Cr-Commit-Position: refs/heads/master@{#34484}
According to https://www.w3.org/TR/html5/obsolete.html#dom-document-all
the undetectable bit (for document.all) only affects comparisons with
undefined and null. In particular comparisons with other values are not
affected, so we can actually simplify the handling of undetectable a
lot by only checking it when null or undefined might be involved (this
is actually in line with what the CompareIC does).
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/1764613004
Cr-Commit-Position: refs/heads/master@{#34483}
Reason for revert:
[Sheriff] Speculative. Seems to break a bunch of webkit tests and causes timeouts:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/5103
Please rebase upstream if intended.
Original issue's description:
> Introduce v8::MicrotasksScope.
>
> This scope is used to control microtasks execution when MicrotasksPolicy::kScoped is engaged.
>
> BUG=chromium:585949
> LOG=Y
> TEST=ScopedMicrotasks
>
> Committed: https://crrev.com/db77cec242dbdf8ee26da8232fa930270429f253
> Cr-Commit-Position: refs/heads/master@{#34472}
TBR=jochen@chromium.org,adamk@chromium.org,dgozman@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:585949
Review URL: https://codereview.chromium.org/1762943002
Cr-Commit-Position: refs/heads/master@{#34480}
port 2689548e38 (r34459)
original commit message:
These new stubs perform exactly the same job as the string equality case
for the CompareIC, but are platform independent and usable outside of
fullcodegen and Crankshaft. We use them in the StrictEqualStub and the
StrictNotEqualStub instead of falling back to the runtime immediately
for String comparisons, and we also use them in TurboFan to perform
String equality or inequality comparisons.
These stubs currently handle only internalized and one byte strings w/o
going to C++, but it should be easy to add support for more string cases
later, i.e. utilizing already flattened cons strings or comparing two
byte strings as well.
BUG=
Review URL: https://codereview.chromium.org/1760343002
Cr-Commit-Position: refs/heads/master@{#34479}