Commit Graph

68027 Commits

Author SHA1 Message Date
Jakob Kummerow
26d153d640 [bash-completion] Support cctest/unittests, and GDB
Because why not.

No-Try: true
Bug: v8:11567
Change-Id: I763d9d0c6704f3f8c5e8336e2157336e159648fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762139
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73435}
2021-03-16 12:51:46 +00:00
Ross McIlroy
4c17394d67 Reland: [compiler] Cache StateValue processing in InstructionSelector.
Processing StateValues into operands is one of the most costly
parts of instruction selection. As it happens, StateValues are
shared by many nodes, and so we are unecessarily reprocessing
the same StateValues multiple times. This CL introduces caching
for the processed StateValues enabling very fast emitting of
operands for subsiquent instructions with the same StateValue.
The hitrate for the cache is higher than 90% on most optimizations.

BUG=v8:9684

Change-Id: I7edcfa1b0d7add16e509f0e2abeda0a8873f5a95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756535
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73434}
2021-03-16 12:26:25 +00:00
Santiago Aboy Solanes
f193662295 [compiler] Refactor HasOnlyStablePrototypesWithFastElements
We had two similar methods (HasOnlyStablePrototypesWithFastElements and
HasOnlyStablePrototypesWithFastElementsHelper) which seemed to have been
defined to be used in different places, but they were used in only one
place each. We can specialize those methods based on their uses and not
worry about the other cases.

Bug: v8:7790
Change-Id: I2341ce4849d421afd960cb199908f9c98511999e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759523
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73433}
2021-03-16 11:39:55 +00:00
Santiago Aboy Solanes
12bb6c21f2 [compiler] Mark Map's bit_field set/get as non-atomic or relaxed
Most of Map's bit_field (as in not 2 or 3) accessors are not set after
construction e.g. is_callable. They are also not used as a
synchronization point. From the compiler's point of view, they can be
set as non-atomic. There are two accessors (`prototype_slot` and
`non_instance_prototype`) that have to be atomic for concurrent marker
reasons (relaxed is fine for them).

Bug: v8:7790, chromium:1150811
Change-Id: Ic3c81a59e7895ee9c35a128bb10656040b19dd42
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752154
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73432}
2021-03-16 11:35:19 +00:00
Thibaud Michaud
b9ccf865f2 [wasm][liftoff][eh] Fix try info cache state leak
Allocate the TryInfo in a unique_ptr to ensure that its destructor is
called when the corresponding control block is popped from the control
stack.
In particular, the cache state allocates memory on the heap which is
otherwise never freed.

R=clemensb@chromium.org

Bug: chromium:1185127
Change-Id: I3aee5573f99ef94c13d0649413a4e647a32bc555
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739649
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73431}
2021-03-16 11:18:50 +00:00
Ross McIlroy
26d85acee2 [base] Use IMMEDIATE_CRASH on official build FATAL errors.
Release-official builds strip error messages from CHECK messages.
This can make it difficult to distinguish a CHECK crash location in
crash reports. As such, instead of using V8_FatalNoContext, import the
IMMEDIATE_CRASH macro from chromium and use that instead, which should
cause a crash directly in the instruction stream so that the top
stackframe on the crash report directly identifies the CHECK location
that failed.

More details here:
https://docs.google.com/document/d/1tyMwzxUNH8BctM_urSQIYdcbwmzP4kTnwEjnFamBpKY

Change-Id: I5b8175f19571834f790060d641db08d0b9c2c17b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756223
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73430}
2021-03-16 11:05:45 +00:00
Pierre Langlois
de51603597 [disassembler] Do not search for literal loads inside constant pools
We try and match literal load instructions in order to print a
relocation info comment. However, we could be doing it while we're
decoding a constant pool. This would cause a DCHECK to fire on Arm64
with full pointers.

Change-Id: I82a523dc5c033f86f41467db75e43419ab87d5ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756532
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#73429}
2021-03-16 10:52:35 +00:00
Frank Emrich
96217d357f [compiler] Emit vpbroadcastb for I8x16Splat on x64 if supported
Change-Id: Iec90b4821f41838eb4c2bae26035af4e30082ef9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762140
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Frank Emrich <emrich@google.com>
Cr-Commit-Position: refs/heads/master@{#73428}
2021-03-16 10:46:35 +00:00
Manos Koukoutos
93c2406502 [wasm][turbofan] Impose single appearance of each parameter
The register allocator sometimes fails if a parameter node appears
twice. This seems to be an issue in the register allocator rather than
a global assumption of Turbofan. This CL ensures duplication does not
happen in wasm code until the issue is resolved.

Changes:
- Cache parameter nodes in wasm-compiler.
- Use Dead() over Parameter() as placeholder in lowering stages.

Change-Id: I7afb5de45dd169819309fea3d3c1a7cfe68af62c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756529
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73427}
2021-03-16 10:02:15 +00:00
Michael Lippautz
32828e6169 cppgc: Poison unmarked objects before sweeping/compacting
Poisoning unmarked objects serves two purposes:
- Prohibits finalizer from accessing other unmarked objects;
- Unpoisioning also clears potential poisoning of the embedder which
  is necessary as the sweeper and compactor modify the payload of
  objects;

Bug: chromium:1056170
Change-Id: I4346a0ab736603b3d6170b41b0e7255db1452897
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762137
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73426}
2021-03-16 09:53:45 +00:00
Toon Verwaest
1a88569639 Reland "[wx] Keep the execute bit while making code writable"
Using RW to update code perturbs SMC snooping on some CPUs.
This reland fixes Apple Silicon and jitless by forcing the flag off.

Change-Id: Ie2cc2e4fac333cad24a129e59cbcb6b13590d6d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759515
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73425}
2021-03-16 09:42:45 +00:00
Sara Tang
07f972713b [diagnostics] Only conditionally enable ETWJITInterface
While testing the perf for v8-etw, I noticed that the runtime flag
didn't completely guard from event emission. This change fixes that.

Bug: v8:11043
Change-Id: Iee919e6030214e18173c93e4426d6437aed08235
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757894
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sara Tang <sartang@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73424}
2021-03-16 09:40:35 +00:00
Jakob Kummerow
bfc10de856 [bash-completion] Support experimental Wasm flags
This updates tools/bash-completion.sh to consider flags defined
in src/wasm/wasm-feature-flags.h.

No-Try: true
Change-Id: I0556d237608c88a87d65f739c856f94e35e2123e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2761398
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73423}
2021-03-16 08:54:55 +00:00
Clemens Backes
629db0a6cd [no-wasm] Forbid including wasm headers in no-wasm builds
This will make accidental includes much easier to see and fix. Without
this, you might get compiler or linker errors instead.

R=jkummerow@chromium.org

Bug: v8:11238
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Change-Id: I235d779f9c1ed3af5d736f1554ded427935ddc9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756531
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73422}
2021-03-16 08:48:55 +00:00
Michael Achenbach
6d879e8911 [test] Let full-debug builder run with normal priority
When the builder was moved to the main console it should have gotten
a higher priority for tests as otherwise it's affected of bot
shortage as in the bug below.

No-Try: true
Bug: v8:11566
Change-Id: Ide63f3659a8791e5ef4b48fc62504bc06bd09453
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762149
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73421}
2021-03-16 08:46:45 +00:00
Clemens Backes
05265d8824 [no-wasm][flags] Remove wasm flags
This removes all wasm-related flags in no-wasm builds.
We could have made them read-only, but fully removing them actually
forces us to consider the no-wasm case at every use site, which often
hints at further cleanups.

R=jkummerow@chromium.org

Bug: v8:11238
Change-Id: Ic140031a2732975b2a46116a58e26fe49f1f7c8c
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759518
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73420}
2021-03-16 07:31:25 +00:00
Liu Yu
6906be2c60 [mips][wasm][liftoff][eh] Implement catch with immediate
Port: 3e689a7da6

Bug: v8:11453
Change-Id: I5671fe0505f0dfd924aa9b5242b3277ed03f2337
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2763632
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#73419}
2021-03-16 07:26:25 +00:00
Clemens Backes
93288524ee [no-wasm] Remove wasm information from Script
This removes the TYPE_WASM script type, and all fields on Script that
are only needed for WebAssembly.

R=jgruber@chromium.org

Bug: v8:11238
Change-Id: I233bfd3dec9b389bc74d926670310fd175c0c6d8
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757690
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73418}
2021-03-16 07:15:05 +00:00
v8-ci-autoroll-builder
62c8ed198e Update V8 DEPS.
Rolling v8/build: 5f2e66e..5081eef

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/6e87bdd..6d5a4e5

Rolling v8/third_party/depot_tools: 159efca..593a6b5

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: Ic44d5c48396e5e2bdfe7183434eb4defaf78d805
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762676
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@{#73417}
2021-03-16 03:54:15 +00:00
Shu-yu Guo
1cb0fac0a7 [top-level-await] Ship top-level await
Note that top-level await is already on-by-default in blink. This flips
the flag in V8 only for other embedders.

Bug: v8:9344
Change-Id: Ic860b22316718b353a0493799fdf95200a71acc1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2746843
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73416}
2021-03-15 23:34:34 +00:00
Ng Zhi An
71db74d813 [wasm-simd][x64][ia32] Optimize i16x8.extmul_high_i8x16_{s,u}
palignr has a false dependency, so use punpckhbw. Plus optimize for AVX,
which can have 1 less instruction.

The logic for i16x8.extmul_high_u is slightly complicated (SSE case)
to handle register aliasing. This allows us to have the most flexible
register allocation, and be able to optimize the most

Bug: v8:11468
Change-Id: I221b2d7a79009edb6c4060c136fc35ee7aff08fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757224
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73415}
2021-03-15 20:46:44 +00:00
Ng Zhi An
5add956ce9 [wasm-simd][x64] Add instruction-selector tests for shuffles
I want to extract the Canonicalize shuffle out of the arch-specific
instruction selector, since all archs have to do that anyway. Adding
these tests to make sure the matching still works.

Bug: v8:11542
Change-Id: Ic7ce0e0a027ce858a30f79a0f9ef2495bcaab4c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2750289
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73414}
2021-03-15 18:18:44 +00:00
Ng Zhi An
6171c58f8e [wasm-simd] Remove unused ir opcodes
S128Load and S128Store are not used, we create a node with Load/Store
opcode and store the appropriate LoadType/StoreType indicating this is a
128-bit type.

Bug: v8:11384
Change-Id: Ida4a36ab893637525cb827b659753ac90fcca743
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2760539
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73413}
2021-03-15 17:50:05 +00:00
Milad Fa
4e70e694ee PPC [simd]: Implement mul even/odd and mul high-round-sat on Sim
Change-Id: I00ec1cd82160d7e987b7d66dfefd7297f665f05f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2760958
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73412}
2021-03-15 17:16:52 +00:00
Almothana Athamneh
1197194ba5 Limit pointer compression builder to only run the default shipping config tests
Bug: v8:11454
Change-Id: I44ed59d5ca7d998ff1affd8acb30862b532a8b3b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759519
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73411}
2021-03-15 16:36:12 +00:00
Clemens Backes
3c702243d2 [no-wasm][parsing] Remove asm detection
asm validation and translation to wasm is disabled in no-wasm builds,
hence remove respective detection and marking of scopes and functions.

R=verwaest@chromium.org

Bug: v8:11238
Change-Id: I2ac8a84024fa37a0c5896a0f85ea4beea4d93137
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757689
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73410}
2021-03-15 16:15:42 +00:00
Thibaud Michaud
a88503ba07 [wasm][liftoff][eh] Do not emit handler for tail calls
"FinishCall" is also unnecessary after a tail call, move it inside the
condition too.

R=clemensb@chromium.org

Bug: chromium:1187484
Change-Id: I258dd736565546277deb33e52a4619d6aaa2fe25
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759512
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73409}
2021-03-15 15:16:52 +00:00
Milad Fa
7d9fb83c91 PPC [simd]: Implement vbperm and specific sized load/stores on Sim
Change-Id: I5608c6123433b1378d92c534e8f38dba68ac3d15
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2760778
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73408}
2021-03-15 15:15:47 +00:00
Clemens Backes
fa350f4c4e [wasm][debug] Cache code for debugging
Add a module-wide cache to cache both TurboFan code and Liftoff debug
code, such that we can quickly tier up or down a module without
repeated recompilation.

R=thibaudm@chromium.org

Bug: v8:11556
Change-Id: Iec56e67b53e5a40c11ca24dae0728cb569a7c68f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757688
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73407}
2021-03-15 15:14:42 +00:00
Thibaud Michaud
3067391ce7 [wasm][liftoff][eh] Unpack i32s from exception
R=clemensb@chromium.org

Bug: v8:11453
Change-Id: Ie50e5c85eaed04b4e90dd51261838f7f1a5f65a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743884
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73406}
2021-03-15 14:51:02 +00:00
Clemens Backes
4a5167ef70 [wasm] Syntactially refactor {PublishCodeLocked}
This is just adding an early exit, to avoid a big if-block spanning the
whole method.
Instead of doing this in the follow-up CL, which adds even more code to
that block, I pulled it out for easier review.

R=thibaudm@chromium.org

Bug: v8:11556
Change-Id: Ie4f2e0635fe9875c90d32be8224f1b0709c82e00
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757687
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73405}
2021-03-15 14:02:52 +00:00
Junliang Yan
a536a77ffe PPC/s390x: [wasm][liftoff][eh] Implement catch with immediate
Port 3e689a7da6

Original Message:
  Only support empty exceptions for now. Unpacking i32s, and
  eventually
  arbitrary types, will be done in separate CLs.

Bug: v8:11453
Change-Id: I4f019330bfb1753b424ef3a8c541054f5fa27e84
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2760777
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73404}
2021-03-15 14:00:05 +00:00
Frank Emrich
e6f180b079 [csa][torque] Improve support for explicit 64 bit ints in CSA & Torque
This CL:

a) Adds an unsigned 64 bit type to Torque, called uint64.

b) Makes more operations on 64 bit integers from the raw machine
   assembler available in CSA and Torque.

Change-Id: I147501d65882892e4628ec22088c0940df79a974
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742204
Commit-Queue: Frank Emrich <emrich@google.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73403}
2021-03-15 12:48:40 +00:00
Thibaud Michaud
3e689a7da6 [wasm][liftoff][eh] Implement catch with immediate
Only support empty exceptions for now. Unpacking i32s, and eventually
arbitrary types, will be done in separate CLs.

R=clemensb@chromium.org

Bug: v8:11453
Change-Id: Ic3233e0bbdaad8b710cd836be9aef647d3131c9d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739590
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73402}
2021-03-15 12:01:44 +00:00
Marja Hölttä
7a8da348a7 Reland: [web snapshots] Web Snapshots Version 0.01
(Reland: removed the d8 changes, will land them separately.)

The minimal implementation which does something useful. Initial
machinery for serializing / deserializing objects and functions (only
the very simple cases are supported).

For more info, see https://docs.google.com/document/d/1Qierkg3b3klIwCQt-oZCHqhcc1_9DXNIErBwvdpD4wU/edit?usp=sharing

Previous version: Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716288

TBR=leszeks@chromium.org,syg@chromium.org,hpayer@chromium.org

Bug: v8:11525
Change-Id: Ia61ed7de36f371d931eff68156ab467723915704
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759510
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73401}
2021-03-15 12:00:40 +00:00
Victor Costan
f02aba9498 Add test coverage for x86 processors with SSE3 but not SSSE3 support.
One of the x86 ISA extensions is confusingly named SSSE3 (*Supplemental*
Streaming SIMD Extensions 3). SSSE3 supersedes SSE3, and is superseded
by SSE4.

This CL adds testing coverage for x86 CPUs that support SSE3
instructions, but do not support SSSE3 instructions. Chrome supports
these CPUs, and they are used by a non-trivial amount of Chrome's users
on Windows.

Change-Id: I7b1f1e0167708ae285a71530a01b9b474cb08352
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757893
Auto-Submit: Victor Costan <pwnall@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73400}
2021-03-15 10:09:09 +00:00
Thibaud Michaud
e05eb4fe17 [wasm][liftoff][eh] Implement delegate
R=clemensb@chromium.org

Bug: v8:11453
Change-Id: Iecc78f14cd514cd650e00f1a4731fddba53e47a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752878
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73399}
2021-03-15 09:57:09 +00:00
Patrick Thier
6748e359a2 Accept Proxy in d8.test.verfiySourcePositions
If a Proxy is passed as argument to d8.test.verifySourcePositions,
unwrap the target function.

Bug: chromium:1186491
Change-Id: Iaacbf800f023121a07035a88745919df68f79217
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748081
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73398}
2021-03-15 09:53:14 +00:00
Seth Brenith
10f347690d [torque] Don't report unused macros if they're marked as unused
Torque generally supports marking things as unused by adding a single
underscore to the front of identifiers. For locals, this feature works
fine. For macros, it's only half-implemented: attempting to look up a
macro that starts with _ fails (as it should), but the compiler also
complains if the macro is unused. This change avoids emitting the latter
error.

Bug: v8:7793
Change-Id: Ib021c053004a180dd31993d3ad06cde463bafd5d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757208
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73397}
2021-03-15 09:52:10 +00:00
Clemens Backes
895a825d4b Revert "[wasm] Emit safepoint info for callee-saved registers in the deopt-index"
This reverts commit 74960db4db.

Reason for revert: Segfaults on CFI: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/4999/overview

Original change's description:
> [wasm] Emit safepoint info for callee-saved registers in the deopt-index
>
> Encode safepoint info of callee-saved registers in the deopt index of
> the normal safepoint.
>
> Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977
> Commit-Queue: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73395}

Change-Id: Ic4803b06a64b615f2258c594b601b4e8fd4b7bff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759513
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#73396}
2021-03-15 09:46:11 +00:00
Andreas Haas
74960db4db [wasm] Emit safepoint info for callee-saved registers in the deopt-index
Encode safepoint info of callee-saved registers in the deopt index of
the normal safepoint.

Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73395}
2021-03-15 08:55:39 +00:00
Michael Lippautz
8c857fda59 cppgc: Cleanups
Cleanups around tracing bottlenecks and tests.

Bug: chromium:1056170
Change-Id: I1f9ddd6d8727971db3bed5294f4ff3fdd20a9e34
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2757696
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73394}
2021-03-15 08:37:39 +00:00
Hong Zheng
84e0835ce7 Update load start time
Add a V8 API to update load start time for RAIL PERFORMANCE_LOAD mode

Bug: v8:10947

Change-Id: If86a815f8974b47a6f4ba82c3661c21b73f39553
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2423403
Auto-Submit: Hong Zheng <hong.zheng@intel.com>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73393}
2021-03-15 07:47:09 +00:00
Kim-Anh Tran
a7c8a3ea9b [debugger] Consider close-by functions when setting a breakpoint
This changes the behavior of SetBreakpointForScript to find more
accurate break positions.

Previously, setting a breakpoint would only consider the shared
function info that contained the requested position for setting a
breakpoint. More intuitively, a breakpoint should not necessarily
be set in a function that contains the position, but in the closest
breakable location that comes after the position we requested.

To achieve this we:
1. find the shared function info of the inner most function
that contains the requested_position.
This function's end position is used to find other shared function
infos in step 2.

2. search for all shared function infos that intersect with the
range [requested_position, inner_most_function.break_position[.

3. From the shared function infos extracted in 2, find the one
that has the closest breakable location to requested_position.

Also-By: bmeurer@chromium.org
Fixed: chromium:1137141
Change-Id: I4f4c6c3aac1ebea50cbcad9543b539ab1ded2b05
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742198
Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73392}
2021-03-15 07:00:49 +00:00
v8-ci-autoroll-builder
0bb7449983 Update V8 DEPS.
Rolling v8/build: 421f3e0..5f2e66e

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/58bac68..6e87bdd

Rolling v8/third_party/depot_tools: bb890d6..159efca

Rolling v8/tools/clang: e645571..91db20b

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I496ee15bb259471bc77e856d91dbb29ab70ae657
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2758919
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@{#73391}
2021-03-15 03:47:39 +00:00
v8-ci-autoroll-builder
fbc3b185dc Update V8 DEPS.
Rolling v8/buildtools/linux64: git_revision:e0358b49272c8b354eda0a595e1d7887343fab27..git_revision:64b3b9401c1c3ed5f3c43c1cac00b91f83597ab8

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I9f79e66b832ab46ffbc3b3065613cd8a8e4ce563
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2758912
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@{#73390}
2021-03-14 03:45:18 +00:00
v8-ci-autoroll-builder
3ceaddf968 Update V8 DEPS.
Rolling v8/build: 7633fcf..421f3e0

Rolling v8/buildtools: 7242196..69cc9b8

Rolling v8/buildtools/linux64: git_revision:dfcbc6fed0a8352696f92d67ccad54048ad182b3..git_revision:e0358b49272c8b354eda0a595e1d7887343fab27

Rolling v8/third_party/aemu-linux-x64: xkJqHNeFPOJ9cNmeaij9qrxQTAP8oRjXHcuTdg2nny8C..fU_J9KtzLrfiXhqpf_1eV01gy30M641raluN5uaKPNAC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7a3a736..58bac68

Rolling v8/third_party/depot_tools: e8b56fb..bb890d6

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I529b8768c8f7efd2d5960a8d10fa16fe914848df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2758100
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@{#73389}
2021-03-13 03:46:57 +00:00
Junliang Yan
7e7458fcec s390x: [liftoff] fix stack endianness issue
Change-Id: I61af83e5f6399d82cd6cabdb2a4399f98f71cdb1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756712
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73388}
2021-03-13 00:59:07 +00:00
Ng Zhi An
1866b69c26 [ia32] Merge some macro-assembler functions into macro lists
Bug: v8:11384
Change-Id: I5da5cc11c69844833ab703bd2fb439e4f51db501
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2750727
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73387}
2021-03-13 00:15:07 +00:00
Ng Zhi An
c929b7a9ed [wasm-simd][ia32] Small optimization to v128.and_not
If AVX is supported, don't need dst == src, this can save a move.

Move the Andnps macro around, and update callsites in Liftoff.

Bug: v8:11190
Change-Id: I7307b70943fdd91550d608cb91e9890f23d1b3ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2750726
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73386}
2021-03-12 23:35:57 +00:00