Add the stubs for JavaScript's '<<', '>>' and '>>>' operators and lets Ignition make use of them in the respective bytecode handlers.
Review URL: https://codereview.chromium.org/1881003002
Cr-Commit-Position: refs/heads/master@{#35433}
- Additionally allow to commit late lists to an already started sweeper
BUG=chromium:581412
LOG=N
Review URL: https://codereview.chromium.org/1871423002
Cr-Commit-Position: refs/heads/master@{#35432}
This patch replaces the unused 'take_snapshot' parameter on FatalProcessOutOfMemory()
with a 'is_heap_oom' parameter. The parameter is set to true on error paths where the
JS heap is out of memory, as distinct from a malloc() failure i.e. process out of memory.
The message output to stderr or passed to embedding applications via FatalErrorCallback
is 'Javascript heap out of memory' rather than 'process out of memory'.
BUG=
R=jochen@chromium.org, verwaest@chromium.org, michael_dawson@ca.ibm.com
Review URL: https://codereview.chromium.org/1873443002
Cr-Commit-Position: refs/heads/master@{#35431}
The StringAddStub can automatically convert arbitrary inputs according
to the semantics for the addition operator, if one side is already a
string.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1881413002
Cr-Commit-Position: refs/heads/master@{#35429}
Rolling v8/buildtools to de013cf87971d0ab40596f2275a633432c908052
Rolling v8/tools/clang to 05a5cb33164e3c656a3375a1614ab350ca799215
TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
Review URL: https://codereview.chromium.org/1883703003
Cr-Commit-Position: refs/heads/master@{#35428}
* New atomic code stubs for x64, ia32, arm, arm64
* Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue
to macro-assembler-ia32 (API based on x64 macro assembler)
* Remove runtime implementation of Atomics.load, the code stub should always be
called instead
* Add new test to mjsunit atomics test; check that Smi values of different
sizes are supported when possible, else fall back to HeapNumbers
These changes were needed to add another codestub:
* Bump kStubMajorKeyBits from 7 to 8
* Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12
BUG=v8:4614
LOG=y
Review URL: https://codereview.chromium.org/1617503003
Cr-Commit-Position: refs/heads/master@{#35427}
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:
- Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
- Uses it appropriately.
- Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
- Fixes a bunch of incorrect formats.
Original CL: https://codereview.chromium.org/1869433004
Reverted in: https://codereview.chromium.org/1867383002
Reverted again in: https://codereview.chromium.org/1877823003
Reverts due to non-CQ bots:
- First: v8_win_dbg, v8_win64_dbg, v8_mac_dbg
- Second: gc mole (added to v8_linux_rel_ng for this patch)
R= jochen@chromium.org
TBR= ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org
Review URL: https://codereview.chromium.org/1872203005
Cr-Commit-Position: refs/heads/master@{#35423}
When %OptimizeOSR is used with ignition flag, the runtime function tries to
compile for OSR on interpreted functions. This cl modifies
Runtime_OptimizeOsr function to return false for interpreted frames.
BUG=v8:4280,chromium:599002
LOG=N
Review URL: https://codereview.chromium.org/1880073002
Cr-Commit-Position: refs/heads/master@{#35421}
This uses the common predicate SharedFunctionInfo::IsApiFunction to
determine flushability. Just a minor cleanup, no change in semantics.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/1878183002
Cr-Commit-Position: refs/heads/master@{#35419}
Makes browser_tests --gtest_filter=CrSettingsBrowserTest.CrSettingsTest
complete in a little over 8 seconds instead of timing out after 45s
on my box. Without this patch, the test is much slower in gn builds
than in gyp builds.
v8/ part, goes with https://codereview.chromium.org/1880693003
BUG=chromium:586511
LOG=n
Review URL: https://codereview.chromium.org/1882453002
Cr-Commit-Position: refs/heads/master@{#35415}
This ensures that GC tracer scope is nested in a trace event.
BUG=
Review URL: https://codereview.chromium.org/1881993002
Cr-Commit-Position: refs/heads/master@{#35413}
When the embedder sets the heap tracer, V8, during marking, will collect all reachable wrappers, and then ask embedder to trace its heap. The embedder is expected to call PersistentBase::RegisterExternalReference with all wrappers reachable from the given ones. This fixed point iteration happens in MarkCompact::ProcessEphemeralMarking.
For more efficient object visiting during marking, we need a special JS_API_OBJECT_TYPE (in tandem with already existing JS_SPECIAL_API_OBJECT_TYPE) and corresponding visitor (JSApiObjectVisitor).
BUG=chromium:468240
LOG=no
Review URL: https://codereview.chromium.org/1844413002
Cr-Commit-Position: refs/heads/master@{#35412}
This is a convenience API that an embedder can use to do final checks on
the return value. Note that this creates a new handle and thus defeats
the performance optimization done for ReturnValue - an embedder should
only use this in non-performance critical code paths.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/1875263003
Cr-Commit-Position: refs/heads/master@{#35409}
Reason for revert:
Blocks roll. See https://codereview.chromium.org/1877003002/ for detailed messages.
You should be able to repro this with Linux ASAN.
Original issue's description:
> Visit the Optimized Code Map on first call rather than closure creation.
>
> This is useful for escape analysis, and helps upcoming changes to
> type feedback gathering.
>
> BUG=
>
> Committed: https://crrev.com/9336f4cc6d25d39a128176679a70dbd13a6d946e
> Cr-Commit-Position: refs/heads/master@{#35395}
TBR=mstarzinger@chromium.org,bmeurer@chromium.org,mvstanton@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1878063004
Cr-Commit-Position: refs/heads/master@{#35404}
Reason for revert:
Did not fail on another roll including this CL ..
Original issue's description:
> Revert of [compiler] Make feedback vector cope with flag changes. (patchset #1 id:1 of https://codereview.chromium.org/1869693003/ )
>
> Reason for revert:
> Blocks current roll: https://codereview.chromium.org/1876713002/ according to bisect: https://codereview.chromium.org/1872353002/#ps80001
>
> Original issue's description:
> > [compiler] Make feedback vector cope with flag changes.
> >
> > This fixes corner cases where the layout of feedback vectors baked into
> > the snapshot is different from the expected layout, depending on some
> > runtime flags. We make sure the feedback vector is regenereated for
> > functions that are not compiled. Flag changes of this kind are only
> > allowed when code is not serialized.
> >
> > An alternative solution would be to not serialize the feedback vector
> > for such cases in the first place. That solution however would have a
> > higher overhead, as it would required the serializer to be able to
> > recognize feedback vectors while generating a snapshot.
> >
> > R=mvstanton@chromium.org
> > TEST=mjsunit/regress/regress-crbug-600995
> > BUG=chromium:600995
> > LOG=n
> >
> > Committed: https://crrev.com/460bff5fb6af2bd79e610f89afdf6da9dba3cf0c
> > Cr-Commit-Position: refs/heads/master@{#35339}
>
> TBR=mvstanton@chromium.org,mstarzinger@chromium.org
>
> BUG=chromium:600995
> LOG=N
> NOTRY=true
>
> Committed: https://crrev.com/78049e9c4837f053575d6c71e53ae12fec99f1aa
> Cr-Commit-Position: refs/heads/master@{#35392}
TBR=mvstanton@chromium.org,mstarzinger@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:600995
Review URL: https://codereview.chromium.org/1876973002
Cr-Commit-Position: refs/heads/master@{#35398}
This logic mirrors what KeyedLoadICs are doing already.
BUG=chromium:602184
LOG=n
Review URL: https://codereview.chromium.org/1876793003
Cr-Commit-Position: refs/heads/master@{#35397}
This is useful for escape analysis, and helps upcoming changes to
type feedback gathering.
BUG=
Review URL: https://codereview.chromium.org/1670143002
Cr-Commit-Position: refs/heads/master@{#35395}
Otherwise they can't be found in the megamorphic cache, leading to repeated misses.
BUG=chromium:596825
LOG=n
Review URL: https://codereview.chromium.org/1874303002
Cr-Commit-Position: refs/heads/master@{#35393}
Reason for revert:
Blocks current roll: https://codereview.chromium.org/1876713002/ according to bisect: https://codereview.chromium.org/1872353002/#ps80001
Original issue's description:
> [compiler] Make feedback vector cope with flag changes.
>
> This fixes corner cases where the layout of feedback vectors baked into
> the snapshot is different from the expected layout, depending on some
> runtime flags. We make sure the feedback vector is regenereated for
> functions that are not compiled. Flag changes of this kind are only
> allowed when code is not serialized.
>
> An alternative solution would be to not serialize the feedback vector
> for such cases in the first place. That solution however would have a
> higher overhead, as it would required the serializer to be able to
> recognize feedback vectors while generating a snapshot.
>
> R=mvstanton@chromium.org
> TEST=mjsunit/regress/regress-crbug-600995
> BUG=chromium:600995
> LOG=n
>
> Committed: https://crrev.com/460bff5fb6af2bd79e610f89afdf6da9dba3cf0c
> Cr-Commit-Position: refs/heads/master@{#35339}
TBR=mvstanton@chromium.org,mstarzinger@chromium.org
BUG=chromium:600995
LOG=N
NOTRY=true
Review URL: https://codereview.chromium.org/1876103002
Cr-Commit-Position: refs/heads/master@{#35392}
This moves the computation of the {expected_nof_properties} for a shared
function to where the object is actually being allocated. This is done
after parsing when the literal has been populated already. The expected
number of properties is not mutated after parsing.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/1873173002
Cr-Commit-Position: refs/heads/master@{#35391}
Adds a ModulusStub for the modulo operator and lets TurboFan and Ignition make use of it.
Review URL: https://codereview.chromium.org/1876793002
Cr-Commit-Position: refs/heads/master@{#35389}
This makes sure that --hydrogen-filter only filters for Crankshaft, not
for TurboFan compilations. For TurboFan there is --turbo-filter as a
separate flag already. There no longer is a single flag to filter both
compilers at the same time, one can still specify both flags however.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/1871343003
Cr-Commit-Position: refs/heads/master@{#35388}
We had exactly one test case for --noturbo-types, so it's likely that
the generic pipeline (without types) was already broken for quite some
time, plus no one expressed interest in maintaining it, plus it
complicates the JSGenericLowering integration. So decision is to kill
it.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1872333002
Cr-Commit-Position: refs/heads/master@{#35387}