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/1769893002
Cr-Commit-Position: refs/heads/master@{#34539}
Fixed a few errors in implementation of FastNewObjectStub::Generate
for MIPS64 that cause a hadnfull of tests to fail.
TEST=cctest/test-heap-profiler/TrackBumpPointerAllocations
BUG=
Review URL: https://codereview.chromium.org/1773533002
Cr-Commit-Position: refs/heads/master@{#34535}
Instead of using CheckFloatEq and CheckDoubleEq directly, I introduced
a macro which first stores the expected result in a volatile variable.
Here are some comments of previous CLs:
The reason is same as the CL #31808 (issue 1430943002, X87: Change the test case for X87 float operations), please refer: https://codereview.chromium.org/1430943002/.
Here is the key comments from CL #31808
Some new test cases use CheckFloatEq(...) and CheckDoubleEq(...) function for result check. When GCC compiling the CheckFloatEq() and CheckDoubleEq() function,
those inlined functions has different behavior comparing with GCC ia32 build and x87 build.
The major difference is sse float register still has single precision rounding semantic. While X87 register has no such rounding precsion semantic when directly use register value.
The V8 turbofan JITTed has exactly same result in both X87 and IA32 port.
So we add the following sentence to do type cast to keep the same precision for RunCallInt64ToFloat32/RunCallInt64ToFloat64. Such as: volatile double expect = static_cast<float>(*i).
R=titzer@chromium.org, weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/1773513002
Cr-Commit-Position: refs/heads/master@{#34534}
This is a prerequisite for teaching deoptimizer to drop possible arguments adapter frame below current input frame which is needed to support tail call inlining.
Review URL: https://codereview.chromium.org/1761303002
Cr-Commit-Position: refs/heads/master@{#34533}
Introducing the KeyAccumulator accidentally removed some crucial fast-paths.
This CL starts rewriting the KeyAccumulator, step-by-step introducing the
special cases again.
BUG=chromium:545503, v8:4758
LOG=y
Review URL: https://codereview.chromium.org/1707743002
Cr-Commit-Position: refs/heads/master@{#34532}
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}