Commit Graph

53171 Commits

Author SHA1 Message Date
Ulan Degenbaev
731ff0b897 [heap] Add V8_NOEXCEPT annotation for GCCallbackTuple
Bug: v8:8616
Change-Id: I0998b437712037277b81eb5d04b734826aabcd46
Reviewed-on: https://chromium-review.googlesource.com/c/1391754
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58529}
2019-01-03 16:50:10 +00:00
Junliang Yan
66910ffd83 PPC/s390: remove code-stubs related build files
R=jgruber@chromium.org, joransiu@ca.ibm.com

Change-Id: If31804509eaca51c0606409873dc180df4fb49f3
Reviewed-on: https://chromium-review.googlesource.com/c/1393301
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58528}
2019-01-03 16:16:44 +00:00
Clemens Hammacher
9f90c8dc43 [wasm] Force GC earlier to avoid running OOM
We currently trigger a GC when creating a module while the remaining
uncommitted code space is below 32MB. For bigger modules, this is not
enough. Instead, make this limit relative: Trigger GC if we fall below
50% of the available code space, and re-adjust this limit after each GC
to avoid repeated GCs that do not free anything.

R=ahaas@chromium.org

Bug: v8:8624
Change-Id: I7abfad3b57663d528a26d29232ad6bc2dc63cef4
Reviewed-on: https://chromium-review.googlesource.com/c/1391753
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58527}
2019-01-03 16:07:53 +00:00
Georg Neis
ef29f4b9a5 [turbofan] Improve UpdateType debug output.
This is a partial reland of d3d13e4bb1, which
made an incorrect assumption about how the typer visits the graph.

Bug: chromium:906567
Change-Id: I55b70fdf7e655973e6ae33b64e127252c745517f
Reviewed-on: https://chromium-review.googlesource.com/c/1394549
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58526}
2019-01-03 16:00:43 +00:00
Junliang Yan
4812f2afdf PPC/s390: [nojit] Add a kCallBuiltinPointer call kind
Port f323a5f415

Original Commit Message:

    Currently, Torque's builtin pointers store a Code target underneath and
    callsites generate a kArchCallCodeObject opcode. When embedded builtins
    are enabled, the call thus first calls the on-heap trampoline, which
    finally jumps to the target off-heap builtin code.

    This will no longer be possible in jitless mode, since on-heap code must
    not be executable.

    As a step towards changing the way builtin pointers are called
    (function pointers will hold the builtin index as a Smi, and callsites
    look up the off-heap target address and jump there), this CL adds a
    dedicated opcode for builtin pointer calls to the compiler pipeline.

    The calling mechanism itself is unchanged, changes there will happen
    in a follow-up.

R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I2d2229227e1c62e7c2515d4f5cb3d4dae49b3dd4
Reviewed-on: https://chromium-review.googlesource.com/c/1393913
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58525}
2019-01-03 15:44:51 +00:00
Clemens Hammacher
0f8676445b [Liftoff] Use int for liftoff register codes
The number of registers is very small, so any integer type is big
enough anyway. Just use the simplest one, which is int.

R=ahaas@chromium.org

Bug: v8:6600
Change-Id: I9762a5c934848b810b7937ee603cd183f883d557
Reviewed-on: https://chromium-review.googlesource.com/c/1394548
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58524}
2019-01-03 15:29:50 +00:00
Junliang Yan
3bf55e7889 PPC: fix offset overflow and dcheck failure
R=joransiu@ca.ibm.com

Change-Id: I0587b286f3132347172f353cbce405158ef1c403
Reviewed-on: https://chromium-review.googlesource.com/c/1393910
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58523}
2019-01-03 14:53:31 +00:00
Clemens Hammacher
20b6330037 [Liftoff] Keep consistent register mapping in non-merged regions
We currently de-duplicate used registers also in regions which do not
need merging. In those regions though it can never happen that we need
to pass different values from any merge input. Apart from introducing
unnecessary register moves, this also causes a DCHECK to fail, because
we might later want to merge back different registers into one.

Assume this initial stack state (where each letter is a register):
[A B B C]
If in any child block the two Bs get de-duplicated so something like
[A B D C]
then we run into trouble when merging back this state into the parent
state, because both B and D would need to be put into B.
In this case we can statically infer that B and D must hold the same
value anyway, but having this situation does not make much sense in the
first place, so the DCHECK fires correctly.

R=titzer@chromium.org

Bug: v8:8423, chromium:917412
Change-Id: I24c36b062e04a134cf7051725afab98126753f31
Reviewed-on: https://chromium-review.googlesource.com/c/1392190
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58522}
2019-01-03 14:37:48 +00:00
Clemens Hammacher
14faced4c0 [Liftoff] Fix moving stack values
On x64 the {kScratchRegister} cannot be held in a {LiftoffRegister},
since it is not a valid cache register. Also, the code unnecessarily
checked whether there is an unused cache register, but then didn't use
it. Simplify the logic to always use the scratch register, just
distinguish between 4-byte and 8-byte moves.
On ia32 we did not move 64-bit values correctly if we didn't have
unused registers and needed to move via the stack.

R=titzer@chromium.org

Bug: v8:6600, chromium:917588, chromium:917450
Change-Id: I0bbe946c6ac8fca62f85711ae47afdac9c02ae6b
Reviewed-on: https://chromium-review.googlesource.com/c/1391755
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58521}
2019-01-03 14:25:47 +00:00
Clemens Hammacher
42a42a68ba [presubmit] Do not check for V8_NOEXCEPT in include/
We don't have our macros available there, so we should not enforce
V8_NOEXCEPT on types declared in include/v8.h or other files in
include/.

R=mlippautz@chromium.org

Bug: v8:8616
No-Try: true
Change-Id: I51550a072a7957921c6cbd7e0866093f0462ff4e
Reviewed-on: https://chromium-review.googlesource.com/c/1394547
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58520}
2019-01-03 13:33:40 +00:00
Georg Neis
09ca8f76f6 Revert "[turbofan] Improve UpdateType debug output."
This reverts commit d3d13e4bb1.

Reason for revert: Makes an incorrect assumption.

Original change's description:
> [turbofan] Improve UpdateType debug output.
> 
> R=​jarin@chromium.org
> 
> Bug: chromium:906567
> Change-Id: Ic99c7a240ecb37c7b032b388f604d3f256d335b3
> Reviewed-on: https://chromium-review.googlesource.com/c/1392196
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58497}

TBR=jarin@chromium.org,neis@chromium.org

Change-Id: I1bfc6d38f1c6cb67ef403d8be84070aa2c0effb6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:906567
Reviewed-on: https://chromium-review.googlesource.com/c/1394546
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58519}
2019-01-03 13:05:01 +00:00
Clemens Hammacher
4339f5f179 [base] Refactor STATIC_CHAR_VECTOR into a template
Templates are nicer than macros, and in this case it's not more complex.

R=tebbi@chromium.org

Bug: v8:8562
Change-Id: I3aea7b4138f144166418c0827dd7c58ea459c670
Reviewed-on: https://chromium-review.googlesource.com/c/1392200
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58518}
2019-01-03 12:55:15 +00:00
Clemens Hammacher
0b25bbbe5f Remove deprecated 'throw()' specifier
This specifier is deprecated and will be removed in C++20. Replace it
with V8_NOEXCEPT where is makes sense and remove it otherwise. Also
remove redundant constructors.

R=tebbi@chromium.org

Bug: v8:8562
Change-Id: I1335dcac5cac14b62b655cfd507decd4de653043
Reviewed-on: https://chromium-review.googlesource.com/c/1392204
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58517}
2019-01-03 12:54:10 +00:00
Clemens Hammacher
5ea59597cf [Liftoff] Remove all computation of "half indexes"
Instead, always pass an index and an enum pointing to either half.

R=titzer@chromium.org

Bug: v8:6600, v8:8562
Change-Id: I7e73bd97bfc7ebf644b242980aa0a73cd5f18949
Reviewed-on: https://chromium-review.googlesource.com/c/1392189
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58516}
2019-01-03 12:09:09 +00:00
Mythri
fa844bdbee Set the correct scope when initializing parameters.
If the parameter list contains class declarations we should use the
block scope corresponding to the class when rewriting the initializers.

Bug: chromium:917988
Change-Id: I7fcd44a264b7c0113cbd821b759e0bee6c9345a0
Reviewed-on: https://chromium-review.googlesource.com/c/1392240
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58515}
2019-01-03 10:18:11 +00:00
Clemens Hammacher
84bda68fff [Liftoff][mips] Clean up "half stack slot" accesses
Bring mips in line with the ia32 and arm implementions. Instead of
computing the "half index" manually, pass the index and an enum
pointing to either half.

R=titzer@chromium.org

Bug: v8:6600
Change-Id: Id8812114df84fbddd4aa2570306526d291bface6
Reviewed-on: https://chromium-review.googlesource.com/c/1392188
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58514}
2019-01-03 10:02:57 +00:00
Clemens Hammacher
26a78061af Remove trap handler fallback for sanitizers
Since https://crrev.com/c/1335572, our sanitizers allow to set custom
segfault handlers. Thus remove special code that was added to handle
sanitizers that prevent installation of segfault handlers. Instead,
CHECK that the signal handler was installed correctly.

R=ahaas@chromium.org, mseaborn@chromium.org, mark@chromium.org

Bug: chromium:830894
Change-Id: I3bd66e33efdceb3e8469f3f4a09fbde90cb3d7ec
Reviewed-on: https://chromium-review.googlesource.com/c/1392199
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58513}
2019-01-03 09:53:17 +00:00
Leszek Swirski
00a2481a24 [ignition] Move destructuring assignments to bytecode generation
Instead of de-sugaring destructuring assignment in the parser (using the
pattern rewriter), pass the Object/ArrayLiterals through to the bytecode
generator, which can desugar them in-place.

This allows us to decrease the amount of AST node creation, and improve
the generated bytecode using domain-specific knowledge. As a side effect
we partially fix an old execution ordering spec bug.

Currently only implemented for assignments, not declarations, as the
latter has some additional complexity.

Bug: v8:4951
Change-Id: I3d69d232bea2968ef20df68a74014d9e05808cfe
Reviewed-on: https://chromium-review.googlesource.com/c/1375660
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58512}
2019-01-03 09:41:27 +00:00
Frank Tang
74d00a9b34 [Intl] Implement ApplyOptionsToTag in Intl.Locale
Bug: v8:7684
Change-Id: Ibe7db0ef1baacb33d07a45234e6bda4f69e95643
Reviewed-on: https://chromium-review.googlesource.com/c/1381732
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58511}
2019-01-03 06:17:10 +00:00
v8-ci-autoroll-builder
d86cc0935d Update V8 DEPS.
Rolling v8/build: 67f9fae..2df3750

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/16717a6..24bb5c4

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: I19b8cb8c1d1e748ba91b2214570dda8b6e8e4300
Reviewed-on: https://chromium-review.googlesource.com/c/1394288
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58510}
2019-01-03 06:16:05 +00:00
Junliang Yan
3e7fa30ba2 PPC/s390: [builtins] Remove InternalArray and reduce InternalPackedArray constructors.
Port 640d3adf5f

Original Commit Message:

    InternalPackedArray now only has one constructor variant that expects no
    arguments (Chrome's only usage of InternalPackedArray). As such, these TFC
    builtins are no longer used and were removed:
    - InternalArrayNoArgumentConstructor_Holey
    - InternalArraySingleArgumentConstructor_Packed
    - InternalArraySingleArgumentConstructor_Holey

    On x64.release, this reduces builtins size by ~1.2KB.

R=peter.wm.wong@gmail.com, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I46d86178c33e47acf2fb75fd3de743686641caa1
Reviewed-on: https://chromium-review.googlesource.com/c/1393825
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58509}
2019-01-03 02:47:00 +00:00
Junliang Yan
3136b4f5ba PPC/s390: [SFI] Add support for flushing old Bytecode from SharedFunctionInfos.
Port a55803a15d

Original Commit Message:

    This change makes the SFI to bytecode link pseudo-weak. The marking visitors
    check whether the bytecode is old, and if so, don't mark it and instead
    push the SFI onto a bytecode_flushing_candidates worklist. Once marking
    is complete, this list is walked, and for any of the candidates who's bytecode
    has not been marked (i.e., is only referenced by the shared function info),
    the bytecode is flushed and the SFI has the function data replaced with
    an UncompiledData (which overwrites the flushed bytecode array).

    Since we don't track JSFunctions, these can still think the underlying
    function is compiled, and so calling them will invoke
    InterpreterEntryTrampoline. As such, logic is added to
    InterpreterEntryTrampoline to detect flushed functions, and enter
    CompileLazy instead.

R=rmcilroy@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:8395
LOG=N

Change-Id: I4a913d318363a584d79aa6d7f4ee09f04a89bbbe
Reviewed-on: https://chromium-review.googlesource.com/c/1393824
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58508}
2019-01-03 02:17:30 +00:00
Fabrice de Gans-Riberi
f225a474bc Add support for different host/target platform in mksnapshot.
This Mac/Fuchsia build was broken as the generated assembly file must
follow Linux-style calling conventions.

Change-Id: I05d946e77690e97f05d57a3d5ba04cd2e63fbb9d
Reviewed-on: https://chromium-review.googlesource.com/c/1377230
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58507}
2019-01-03 01:41:14 +00:00
Frank Tang
5182e1ad11 Revert "[Intl] Validate u extension type"
This reverts commit 8d0942499c.

Reason for revert: Cause Memory regression

TBR=gsathya@chromium.org

Original change's description:
> [Intl] Validate u extension type
>
> Fix intl402/*/ignore-invalid-unicode-ext-values
> Add tests for other valid/invalid -u- ext values.
>
> Bug: v8:7481
> Change-Id: I429effd071bb03599a1e767bb2a9e9918a91b850
> Reviewed-on: https://chromium-review.googlesource.com/c/1351307
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58173}

TBR=cira@chromium.org,jshin@chromium.org,gsathya@chromium.org,ftang@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:7481
Change-Id: Idabf2183684f264271ebe2b8c0ca10ae8e30d811
Reviewed-on: https://chromium-review.googlesource.com/c/1393499
Reviewed-by: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58506}
2019-01-03 01:40:09 +00:00
Sathya Gunasekaran
707bfecad0 [dict] Fix printing of dicts
These are FixedArrays, not ObjectHashTable

Change-Id: I8f5a4d8c16bc0f566719815fbea6be51b6bd8ec5
Reviewed-on: https://chromium-review.googlesource.com/c/1387864
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58505}
2019-01-02 21:01:52 +00:00
Junliang Yan
4af9ec6a9d PPC/s390: Reland "[nojit] Remove code stubs"
Port 24e766168b

Original Commit Message:

    This is a reland of f849396c3a

    Original change's description:
    > [nojit] Remove code stubs
    >
    > All stubs have been migrated to builtins. This CL removes most related
    > code.
    >
    > Bug: v8:7777, v8:5784
    > Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad
    > Reviewed-on: https://chromium-review.googlesource.com/c/1365284
    > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
    > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
    > Reviewed-by: Yang Guo <yangguo@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#58093}

R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ie05463245c24975804a8bb7ffdf902c70e042127
Reviewed-on: https://chromium-review.googlesource.com/c/1393302
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58504}
2019-01-02 20:08:17 +00:00
Junliang Yan
65c11d3938 PPC/s390: [nojit] Migrate JSEntry variants to builtins
Port b89d4249c0

Original Commit Message:

    This migrates the JSEntryStub to three dedicated builtins:

    JSEntry
    JSConstructEntry
    JSRunMicrotasksEntry

    correct macro assembler method to load and store external references
    through the kRootRegister).
    kRootRegister is initialized, so we first reserve the slot and later
    load its value.

R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ib84feca5e88d032307b5fab42377c56d074faf7f
Reviewed-on: https://chromium-review.googlesource.com/c/1393296
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58503}
2019-01-02 19:50:37 +00:00
Tobias Tebbi
554dcb70a8 [torque] infrastructore to inline macros in the IR
This CL doesn't change anything, but builds the infrastructure to inline
selected macros into the Torque IR.

Bug: v8:7793
Change-Id: Icdaa014633edfb314f9263c1a8ad84de4a9e9f97
Reviewed-on: https://chromium-review.googlesource.com/c/1392202
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58502}
2019-01-02 19:28:45 +00:00
Clemens Hammacher
224d87d77b [Liftoff][ia32] Clean up "half stack slot" accesses
Bring ia32 in line with the arm implemention. Instead of computing the
"half index" manually, pass the index and an enum pointing to either
half.

R=titzer@chromium.org

Bug: v8:6600
Change-Id: Ia3799a42fe2b9890aa4076d2e09947380331348e
Reviewed-on: https://chromium-review.googlesource.com/c/1391758
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58501}
2019-01-02 17:49:00 +00:00
Clemens Hammacher
088bdc00e4 Store TypeCache as pointer instead of reference
Apart from being more in-line with the style guide, this allows to use
DEFINE_LAZY_LEAKY_OBJECT_GETTER for defining {TypeCache::Get}.

R=tebbi@chromium.org

Bug: v8:8562
Change-Id: I016b28624950ce9404180fc1ca1a232551f75cd0
Reviewed-on: https://chromium-review.googlesource.com/c/1392201
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58500}
2019-01-02 17:13:39 +00:00
Junliang Yan
080416f091 PPC/s390: [nojit] Explicitly pass the root register value to JSEntry
Port f7f18b0f1e

Original Commit Message:

    In preparation for converting JSEntry into a builtin. The root register
    used to be initialized by an embedded external reference, which is not
    isolate-independent. Pass in its value explicitly instead.

R=jgruber@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I447c880c7f840a012e53870e28e2bd3bfa552040
Reviewed-on: https://chromium-review.googlesource.com/c/1393288
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58499}
2019-01-02 16:42:36 +00:00
Clemens Hammacher
a9468782ca Remove leaks in default page allocator
The first leak only happens if the default platform does not provide a
page allocator, which is never the case in d8. I am not sure why the
second leak was not detected so far. Anyway, this CL removes it.

R=tebbi@chromium.org

Change-Id: I215435f28a498298034e1657e7d2ebb8db8450c4
Reviewed-on: https://chromium-review.googlesource.com/c/1392197
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58498}
2019-01-02 14:40:11 +00:00
Georg Neis
d3d13e4bb1 [turbofan] Improve UpdateType debug output.
R=jarin@chromium.org

Bug: chromium:906567
Change-Id: Ic99c7a240ecb37c7b032b388f604d3f256d335b3
Reviewed-on: https://chromium-review.googlesource.com/c/1392196
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58497}
2019-01-02 14:38:01 +00:00
Vasili Skurydzin
fdc32cd222 s390x, ppc: Corrections to CallApiCallback calling convention
Related:
c6b0e12e4e [nojit] Refactor CallApiCallback calling convention
a31338aa08 PPC/s390: [nojit] Refactor CallApiCallback calling convention


Change-Id: I8f96c7b9a32ba3dde9dbbabb115d79fa36a0db46
Reviewed-on: https://chromium-review.googlesource.com/c/1380991
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#58496}
2019-01-02 14:33:01 +00:00
Clemens Hammacher
45b1f8caaf [base] Simplify and extend VectorOf method
And use it in several places in wasm.

R=tebbi@chromium.org

Bug: v8:8562
Change-Id: I1e857baf33e99849eb32ac2c94e39d7f27b180c8
Reviewed-on: https://chromium-review.googlesource.com/c/1391757
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58495}
2019-01-02 14:20:30 +00:00
Clemens Hammacher
94ba6c6f40 Replace some LazyInstances by standard C++ methods
Introduce a LeakyObject template and use that to implement static
lazily initialized objects that never get destructed. This was done in a
hand-crafted and complex way before via LazyInstance and
LazyStaticInstance.

R=tebbi@chromium.org

Bug: v8:8600, v8:8562
Change-Id: Id160996753b2cb1baf0f4b2cec9e1727f1d01512
Reviewed-on: https://chromium-review.googlesource.com/c/1388539
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58494}
2019-01-02 12:49:18 +00:00
Clemens Hammacher
82e6f82a2c [gn] Update link to v8 blog
In the description of the `v8_use_snapshot` gn arg, we had a link to
the old location of our blog.

R=mathias@chromium.org

No-Try: true
Change-Id: Ib7d0ae21f3e109b4fae9ca51a1c69d07d42f9017
Reviewed-on: https://chromium-review.googlesource.com/c/1392191
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58493}
2019-01-02 10:29:47 +00:00
v8-ci-autoroll-builder
dbe0f450f7 Update V8 DEPS.
Rolling v8/build: ff33f8c..67f9fae

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/ecf56e8..16717a6

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: Ieadefe1fbbe9660eb3eb29e106cbcfee186b399d
Reviewed-on: https://chromium-review.googlesource.com/c/1392246
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58492}
2019-01-02 03:39:50 +00:00
v8-ci-autoroll-builder
a950dff9bd Update V8 DEPS.
Rolling v8/build: 2d305f3..ff33f8c

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: I24f35fc87d77ab782fde87b73ef1f51fedb022d7
Reviewed-on: https://chromium-review.googlesource.com/c/1392242
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58491}
2019-01-01 03:29:11 +00:00
peterwmwong
75ca843c5c [typedarray] Check for a detached buffer before each iteration of TypedArray.p.join.
Bug: chromium:917980
Change-Id: Ia9b68f492bb9f0769dc6ee1706baf8b09de49968
Reviewed-on: https://chromium-review.googlesource.com/c/1392070
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58490}
2018-12-31 18:27:51 +00:00
v8-ci-autoroll-builder
e16f4a939e Update V8 DEPS.
Rolling v8/build: 554d385..2d305f3

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: Ief238bdb2d76a8975191d0a156c7b86689eaf9a4
Reviewed-on: https://chromium-review.googlesource.com/c/1392238
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58489}
2018-12-31 03:53:47 +00:00
v8-ci-autoroll-builder
442d570e9c Update V8 DEPS.
Rolling v8/build: be5ac65..554d385

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: I14a3264b66a0edfb1bc3ecb43d9926dcb8ae2d57
Reviewed-on: https://chromium-review.googlesource.com/c/1392236
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58488}
2018-12-30 03:31:11 +00:00
v8-ci-autoroll-builder
231774ca7a Update V8 DEPS.
Rolling v8/build: 70cbac6..be5ac65

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/a923c2a..ecf56e8

Rolling v8/tools/clang: 106695b..50670f1

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: I1f811941fe26b898ca2ca2ab5330c5d48c052953
Reviewed-on: https://chromium-review.googlesource.com/c/1392234
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58487}
2018-12-29 03:44:01 +00:00
Clemens Hammacher
65da8bf06d [wasm] Inline Pop methods for performance
This improves validation time by 7-8% and Liftoff compilation time by
2-3% while increasing binary size by ~12kB.

R=mvstanton@chromium.org

Bug: v8:8423
Change-Id: I08961097fb61f4a218522138efe51a9165a7c62b
Reviewed-on: https://chromium-review.googlesource.com/c/1391748
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58486}
2018-12-28 09:29:53 +00:00
Deepti Gandluri
29c1c5d6ca [wasm] Validate prefixed opcode reads
Identify validation fails to read the index of prefixed opcodes, and not
continue to decode the next bytes.

Change-Id: I2c737af55615ba69ba0c5f5adf18a06c6cdb951a
Bug: chromium:905815
Reviewed-on: https://chromium-review.googlesource.com/c/1390927
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58485}
2018-12-28 07:07:11 +00:00
Ulan Degenbaev
7ca8acd0a5 [heap] Support fixed arrays with progress bar in the concurrent marker
Currently the concurrent marker visits any fixed array in one go
ignoring the progress bar and does not expect seeing black arrays
in the worklist. For this reason, if the main thread marker starts
visiting a large array with the progress bar, then it has to re-push
the array in the bailout worklist. So all subsequent visitations of
the array happen on the main thread.

This patch makes the progress bar thread-safe and allows the
concurrent marker to visit arrays in chunks.

Change-Id: I5e8867077ed2908b7f9c5d8bde34d0401f7fe446
Reviewed-on: https://chromium-review.googlesource.com/c/1385164
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58484}
2018-12-28 06:57:38 +00:00
v8-ci-autoroll-builder
f3cd638482 Update V8 DEPS.
Rolling v8/build: 7f37dc1..70cbac6

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: I977ef05a0473602d831afd15de9a298bff9fb0de
Reviewed-on: https://chromium-review.googlesource.com/c/1390931
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58483}
2018-12-28 03:42:49 +00:00
Alexei Filippov
4eae3bb140 [inspector] Make InjectedScript::getProperties respect custom formatters
BUG=chromium:917136

Change-Id: I02696a3315c22b34705bbc48cddaeb9e6c59fa9f
Reviewed-on: https://chromium-review.googlesource.com/c/1391749
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58482}
2018-12-27 23:17:57 +00:00
Alexei Filippov
0d0f0c51c5 Revert "[inspector] Add extra debug code to investigate crbug/897816"
This reverts commit 0fbe27171e.

Reason for revert: Debug data has been collected. Removing debug code.

Original change's description:
> [inspector] Add extra debug code to investigate crbug/897816
> 
> BUG=chromium:897816
> 
> Change-Id: Ie28efcab73ccbcb6d8b1a7508b99aec59f3a3ae3
> Reviewed-on: https://chromium-review.googlesource.com/c/1384795
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Commit-Queue: Alexei Filippov <alph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58383}

TBR=dgozman@chromium.org,alph@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:897816
Change-Id: I6b2b5dae2b7e42843d72573ba598e5acfec3514b
Reviewed-on: https://chromium-review.googlesource.com/c/1390926
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58481}
2018-12-27 22:54:28 +00:00
Clemens Hammacher
e2b129ea3d [liftoff][arm] Prevent aliasing in I64 Shiftops
Prevent aliasing between problematic registers for
shift operations with int64 values in the arm port
of Liftoff.

Bug: v8:6600, chromium:912592
Change-Id: I905f0a657626fdfac3e41fe2878e918e3c779a8f
Reviewed-on: https://chromium-review.googlesource.com/c/1388564
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58480}
2018-12-27 18:55:02 +00:00