Skip to content

Commit ba401aa

Browse files
victorgomesV8 LUCI CQ
authored andcommitted
[baseline] Add v8_enable_sparkplug GN flag
Sparkplug has been ported to all V8 supported architectures. However it is still useful to compile V8 without it. This CL introduces a GN flag and splits source and headers files that do not need to be compiled. This *does not* remove Sparkplug checks in the runtime code. Bug: v8:11421 Change-Id: I59a9a6e44703d6f8fa7b2d60e32fefd1af8cc96b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4931698 Auto-Submit: Victor Gomes <[email protected]> Commit-Queue: Victor Gomes <[email protected]> Reviewed-by: Leszek Swirski <[email protected]> Cr-Commit-Position: refs/heads/main@{#90366}
1 parent 683a5ab commit ba401aa

24 files changed

+151
-150
lines changed

BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,7 @@ v8_config(
364364
"GOOGLE3",
365365
"V8_ADVANCED_BIGINT_ALGORITHMS",
366366
"V8_CONCURRENT_MARKING",
367+
"V8_ENABLE_SPARKPLUG",
367368
] + select({
368369
"@v8//bazel/config:is_debug": [
369370
"DEBUG",

BUILD.gn

Lines changed: 91 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,10 @@ declare_args() {
401401
# applications yet so disable jit.
402402
v8_jitless = v8_enable_lite_mode || target_is_ios_device
403403

404+
# Enable Sparkplug
405+
# Sets -DV8_ENABLE_SPARKPLUG.
406+
v8_enable_sparkplug = ""
407+
404408
# Enable Maglev's graph printer.
405409
# Sets -DV8_ENABLE_MAGLEV_GRAPH_PRINTER.
406410
v8_enable_maglev_graph_printer = !build_with_chromium
@@ -499,6 +503,9 @@ if (v8_enable_external_code_space == "") {
499503
v8_enable_pointer_compression_shared_cage &&
500504
(v8_current_cpu == "x64" || v8_current_cpu == "arm64")
501505
}
506+
if (v8_enable_sparkplug == "") {
507+
v8_enable_sparkplug = !v8_jitless
508+
}
502509
if (v8_enable_maglev == "") {
503510
v8_enable_maglev = v8_enable_turbofan &&
504511
(v8_current_cpu == "arm" || v8_current_cpu == "x64" ||
@@ -507,9 +514,9 @@ if (v8_enable_maglev == "") {
507514
assert(v8_enable_turbofan || !v8_enable_maglev,
508515
"Maglev is not available when Turbofan is disabled.")
509516

510-
assert(!v8_jitless ||
511-
(!v8_enable_maglev && !v8_enable_turbofan && !v8_enable_webassembly),
512-
"Maglev, Turbofan and Wasm are not available in jitless mode")
517+
assert(!v8_jitless || (!v8_enable_sparkplug && !v8_enable_maglev &&
518+
!v8_enable_turbofan && !v8_enable_webassembly),
519+
"Sparkplug, Maglev, Turbofan and Wasm are not available in jitless mode")
513520

514521
if (v8_enable_single_generation == "") {
515522
v8_enable_single_generation = v8_disable_write_barriers
@@ -1135,6 +1142,9 @@ config("features") {
11351142
if (v8_enable_external_code_space) {
11361143
defines += [ "V8_EXTERNAL_CODE_SPACE" ]
11371144
}
1145+
if (v8_enable_sparkplug) {
1146+
defines += [ "V8_ENABLE_SPARKPLUG" ]
1147+
}
11381148
if (v8_enable_maglev) {
11391149
defines += [ "V8_ENABLE_MAGLEV" ]
11401150
}
@@ -3098,10 +3108,6 @@ v8_header_set("v8_internal_headers") {
30983108
"src/ast/scopes.h",
30993109
"src/ast/source-range-ast-visitor.h",
31003110
"src/ast/variables.h",
3101-
"src/baseline/baseline-assembler-inl.h",
3102-
"src/baseline/baseline-assembler.h",
3103-
"src/baseline/baseline-batch-compiler.h",
3104-
"src/baseline/baseline-compiler.h",
31053111
"src/baseline/baseline.h",
31063112
"src/baseline/bytecode-offset-iterator.h",
31073113
"src/builtins/accessors.h",
@@ -4034,6 +4040,15 @@ v8_header_set("v8_internal_headers") {
40344040
sources -= [ "//base/trace_event/common/trace_event_common.h" ]
40354041
}
40364042

4043+
if (v8_enable_sparkplug) {
4044+
sources += [
4045+
"src/baseline/baseline-assembler-inl.h",
4046+
"src/baseline/baseline-assembler.h",
4047+
"src/baseline/baseline-batch-compiler.h",
4048+
"src/baseline/baseline-compiler.h",
4049+
]
4050+
}
4051+
40374052
if (v8_enable_maglev) {
40384053
sources += [
40394054
"src/maglev/maglev-assembler-inl.h",
@@ -4262,11 +4277,15 @@ v8_header_set("v8_internal_headers") {
42624277
"src/regexp/ia32/regexp-macro-assembler-ia32.h",
42634278
"src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h",
42644279
]
4280+
if (v8_enable_sparkplug) {
4281+
sources += [
4282+
"src/baseline/ia32/baseline-assembler-ia32-inl.h",
4283+
"src/baseline/ia32/baseline-compiler-ia32-inl.h",
4284+
]
4285+
}
42654286
} else if (v8_current_cpu == "x64") {
42664287
sources += [
42674288
### gcmole(x64) ###
4268-
"src/baseline/x64/baseline-assembler-x64-inl.h",
4269-
"src/baseline/x64/baseline-compiler-x64-inl.h",
42704289
"src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.h",
42714290
"src/codegen/x64/assembler-x64-inl.h",
42724291
"src/codegen/x64/assembler-x64.h",
@@ -4289,6 +4308,13 @@ v8_header_set("v8_internal_headers") {
42894308
sources += [ "src/diagnostics/unwinding-info-win64.h" ]
42904309
}
42914310

4311+
if (v8_enable_sparkplug) {
4312+
sources += [
4313+
"src/baseline/x64/baseline-assembler-x64-inl.h",
4314+
"src/baseline/x64/baseline-compiler-x64-inl.h",
4315+
]
4316+
}
4317+
42924318
if (v8_enable_webassembly) {
42934319
# iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
42944320
# based on Darwin and thus POSIX-compliant to a similar degree.
@@ -4302,8 +4328,6 @@ v8_header_set("v8_internal_headers") {
43024328
} else if (v8_current_cpu == "arm") {
43034329
sources += [
43044330
### gcmole(arm) ###
4305-
"src/baseline/arm/baseline-assembler-arm-inl.h",
4306-
"src/baseline/arm/baseline-compiler-arm-inl.h",
43074331
"src/codegen/arm/assembler-arm-inl.h",
43084332
"src/codegen/arm/assembler-arm.h",
43094333
"src/codegen/arm/constants-arm.h",
@@ -4318,11 +4342,16 @@ v8_header_set("v8_internal_headers") {
43184342
"src/regexp/arm/regexp-macro-assembler-arm.h",
43194343
"src/wasm/baseline/arm/liftoff-assembler-arm-inl.h",
43204344
]
4345+
4346+
if (v8_enable_sparkplug) {
4347+
sources += [
4348+
"src/baseline/arm/baseline-assembler-arm-inl.h",
4349+
"src/baseline/arm/baseline-compiler-arm-inl.h",
4350+
]
4351+
}
43214352
} else if (v8_current_cpu == "arm64") {
43224353
sources += [
43234354
### gcmole(arm64) ###
4324-
"src/baseline/arm64/baseline-assembler-arm64-inl.h",
4325-
"src/baseline/arm64/baseline-compiler-arm64-inl.h",
43264355
"src/codegen/arm64/assembler-arm64-inl.h",
43274356
"src/codegen/arm64/assembler-arm64.h",
43284357
"src/codegen/arm64/constants-arm64.h",
@@ -4346,6 +4375,12 @@ v8_header_set("v8_internal_headers") {
43464375
if (v8_control_flow_integrity) {
43474376
sources += [ "src/execution/arm64/pointer-authentication-arm64.h" ]
43484377
}
4378+
if (v8_enable_sparkplug) {
4379+
sources += [
4380+
"src/baseline/arm64/baseline-assembler-arm64-inl.h",
4381+
"src/baseline/arm64/baseline-compiler-arm64-inl.h",
4382+
]
4383+
}
43494384
if (v8_enable_webassembly) {
43504385
# Trap handling is enabled on arm64 Mac and Linux and in simulators on
43514386
# x64 on Linux and Mac.
@@ -4365,8 +4400,6 @@ v8_header_set("v8_internal_headers") {
43654400
} else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
43664401
sources += [
43674402
### gcmole(mips64el) ###
4368-
"src/baseline/mips64/baseline-assembler-mips64-inl.h",
4369-
"src/baseline/mips64/baseline-compiler-mips64-inl.h",
43704403
"src/codegen/mips64/assembler-mips64-inl.h",
43714404
"src/codegen/mips64/assembler-mips64.h",
43724405
"src/codegen/mips64/constants-mips64.h",
@@ -4379,11 +4412,15 @@ v8_header_set("v8_internal_headers") {
43794412
"src/regexp/mips64/regexp-macro-assembler-mips64.h",
43804413
"src/wasm/baseline/mips64/liftoff-assembler-mips64-inl.h",
43814414
]
4415+
if (v8_enable_sparkplug) {
4416+
sources += [
4417+
"src/baseline/mips64/baseline-assembler-mips64-inl.h",
4418+
"src/baseline/mips64/baseline-compiler-mips64-inl.h",
4419+
]
4420+
}
43824421
} else if (v8_current_cpu == "loong64") {
43834422
sources += [
43844423
### gcmole(loong64) ###
4385-
"src/baseline/loong64/baseline-assembler-loong64-inl.h",
4386-
"src/baseline/loong64/baseline-compiler-loong64-inl.h",
43874424
"src/codegen/loong64/assembler-loong64-inl.h",
43884425
"src/codegen/loong64/assembler-loong64.h",
43894426
"src/codegen/loong64/constants-loong64.h",
@@ -4396,6 +4433,12 @@ v8_header_set("v8_internal_headers") {
43964433
"src/regexp/loong64/regexp-macro-assembler-loong64.h",
43974434
"src/wasm/baseline/loong64/liftoff-assembler-loong64-inl.h",
43984435
]
4436+
if (v8_enable_sparkplug) {
4437+
sources += [
4438+
"src/baseline/loong64/baseline-assembler-loong64-inl.h",
4439+
"src/baseline/loong64/baseline-compiler-loong64-inl.h",
4440+
]
4441+
}
43994442
if (v8_enable_webassembly) {
44004443
# Trap handling is enabled on loong64 Linux and in simulators on
44014444
# x64 on Linux.
@@ -4427,8 +4470,6 @@ v8_header_set("v8_internal_headers") {
44274470
} else if (v8_current_cpu == "ppc64") {
44284471
sources += [
44294472
### gcmole(ppc64) ###
4430-
"src/baseline/ppc/baseline-assembler-ppc-inl.h",
4431-
"src/baseline/ppc/baseline-compiler-ppc-inl.h",
44324473
"src/codegen/ppc/assembler-ppc-inl.h",
44334474
"src/codegen/ppc/assembler-ppc.h",
44344475
"src/codegen/ppc/constants-ppc.h",
@@ -4443,11 +4484,15 @@ v8_header_set("v8_internal_headers") {
44434484
"src/regexp/ppc/regexp-macro-assembler-ppc.h",
44444485
"src/wasm/baseline/ppc/liftoff-assembler-ppc-inl.h",
44454486
]
4487+
if (v8_enable_sparkplug) {
4488+
sources += [
4489+
"src/baseline/ppc/baseline-assembler-ppc-inl.h",
4490+
"src/baseline/ppc/baseline-compiler-ppc-inl.h",
4491+
]
4492+
}
44464493
} else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
44474494
sources += [
44484495
### gcmole(s390) ###
4449-
"src/baseline/s390/baseline-assembler-s390-inl.h",
4450-
"src/baseline/s390/baseline-compiler-s390-inl.h",
44514496
"src/codegen/s390/assembler-s390-inl.h",
44524497
"src/codegen/s390/assembler-s390.h",
44534498
"src/codegen/s390/constants-s390.h",
@@ -4462,6 +4507,12 @@ v8_header_set("v8_internal_headers") {
44624507
"src/regexp/s390/regexp-macro-assembler-s390.h",
44634508
"src/wasm/baseline/s390/liftoff-assembler-s390-inl.h",
44644509
]
4510+
if (v8_enable_sparkplug) {
4511+
sources += [
4512+
"src/baseline/s390/baseline-assembler-s390-inl.h",
4513+
"src/baseline/s390/baseline-compiler-s390-inl.h",
4514+
]
4515+
}
44654516
} else if (v8_current_cpu == "riscv64") {
44664517
sources += [
44674518
### gcmole(riscv64) ###
@@ -4500,11 +4551,15 @@ v8_header_set("v8_internal_headers") {
45004551
"src/regexp/riscv/regexp-macro-assembler-riscv.h",
45014552
"src/wasm/baseline/riscv64/liftoff-assembler-riscv64-inl.h",
45024553
]
4554+
if (v8_enable_sparkplug) {
4555+
sources += [
4556+
"src/baseline/riscv/baseline-assembler-riscv-inl.h",
4557+
"src/baseline/riscv/baseline-compiler-riscv-inl.h",
4558+
]
4559+
}
45034560
} else if (v8_current_cpu == "riscv32") {
45044561
sources += [
45054562
### gcmole(riscv32) ###
4506-
"src/baseline/riscv/baseline-assembler-riscv-inl.h",
4507-
"src/baseline/riscv/baseline-compiler-riscv-inl.h",
45084563
"src/codegen/riscv/assembler-riscv-inl.h",
45094564
"src/codegen/riscv/assembler-riscv.h",
45104565
"src/codegen/riscv/base-assembler-riscv.h",
@@ -4539,6 +4594,12 @@ v8_header_set("v8_internal_headers") {
45394594
"src/regexp/riscv/regexp-macro-assembler-riscv.h",
45404595
"src/wasm/baseline/riscv32/liftoff-assembler-riscv32-inl.h",
45414596
]
4597+
if (v8_enable_sparkplug) {
4598+
sources += [
4599+
"src/baseline/riscv/baseline-assembler-riscv-inl.h",
4600+
"src/baseline/riscv/baseline-compiler-riscv-inl.h",
4601+
]
4602+
}
45424603
}
45434604

45444605
public_deps = [
@@ -4969,8 +5030,6 @@ v8_source_set("v8_base_without_compiler") {
49695030
"src/ast/scopes.cc",
49705031
"src/ast/source-range-ast-visitor.cc",
49715032
"src/ast/variables.cc",
4972-
"src/baseline/baseline-batch-compiler.cc",
4973-
"src/baseline/baseline-compiler.cc",
49745033
"src/baseline/baseline.cc",
49755034
"src/baseline/bytecode-offset-iterator.cc",
49765035
"src/builtins/accessors.cc",
@@ -5425,6 +5484,13 @@ v8_source_set("v8_base_without_compiler") {
54255484
sources += [ "src/snapshot/snapshot-compression.cc" ]
54265485
}
54275486

5487+
if (v8_enable_sparkplug) {
5488+
sources += [
5489+
"src/baseline/baseline-batch-compiler.cc",
5490+
"src/baseline/baseline-compiler.cc",
5491+
]
5492+
}
5493+
54285494
if (v8_enable_maglev) {
54295495
sources += [
54305496
"src/maglev/maglev-assembler.cc",

src/baseline/baseline-assembler-inl.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77

88
#include "src/baseline/baseline-assembler.h"
99

10-
// TODO(v8:11421): Remove #if once baseline compiler is ported to other
11-
// architectures.
12-
#if ENABLE_SPARKPLUG
13-
1410
#include <type_traits>
1511
#include <unordered_map>
1612

@@ -175,6 +171,4 @@ EnsureAccumulatorPreservedScope::~EnsureAccumulatorPreservedScope() {
175171
} // namespace internal
176172
} // namespace v8
177173

178-
#endif // ENABLE_SPARKPLUG
179-
180174
#endif // V8_BASELINE_BASELINE_ASSEMBLER_INL_H_

src/baseline/baseline-assembler.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@
55
#ifndef V8_BASELINE_BASELINE_ASSEMBLER_H_
66
#define V8_BASELINE_BASELINE_ASSEMBLER_H_
77

8-
// TODO(v8:11421): Remove #if once baseline compiler is ported to other
9-
// architectures.
10-
#include "src/flags/flags.h"
11-
#if ENABLE_SPARKPLUG
12-
138
#include "src/codegen/macro-assembler.h"
149
#include "src/interpreter/bytecode-register.h"
1510
#include "src/objects/tagged-index.h"
@@ -264,6 +259,4 @@ class EnsureAccumulatorPreservedScope final {
264259
} // namespace internal
265260
} // namespace v8
266261

267-
#endif
268-
269262
#endif // V8_BASELINE_BASELINE_ASSEMBLER_H_

src/baseline/baseline-batch-compiler.cc

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@
44

55
#include "src/baseline/baseline-batch-compiler.h"
66

7-
// TODO(v8:11421): Remove #if once baseline compiler is ported to other
8-
// architectures.
9-
#include "src/flags/flags.h"
10-
#if ENABLE_SPARKPLUG
11-
127
#include <algorithm>
138

149
#include "src/baseline/baseline-compiler.h"
@@ -390,41 +385,3 @@ void BaselineBatchCompiler::ClearBatch() {
390385
} // namespace baseline
391386
} // namespace internal
392387
} // namespace v8
393-
394-
#else
395-
396-
namespace v8 {
397-
namespace internal {
398-
namespace baseline {
399-
400-
class ConcurrentBaselineCompiler {};
401-
402-
BaselineBatchCompiler::BaselineBatchCompiler(Isolate* isolate)
403-
: isolate_(isolate),
404-
compilation_queue_(Handle<WeakFixedArray>::null()),
405-
last_index_(0),
406-
estimated_instruction_size_(0),
407-
enabled_(false) {}
408-
409-
BaselineBatchCompiler::~BaselineBatchCompiler() {
410-
if (!compilation_queue_.is_null()) {
411-
GlobalHandles::Destroy(compilation_queue_.location());
412-
compilation_queue_ = Handle<WeakFixedArray>::null();
413-
}
414-
}
415-
416-
void BaselineBatchCompiler::InstallBatch() { UNREACHABLE(); }
417-
418-
void BaselineBatchCompiler::EnqueueFunction(Handle<JSFunction> function) {
419-
UNREACHABLE();
420-
}
421-
422-
void BaselineBatchCompiler::EnqueueSFI(SharedFunctionInfo shared) {
423-
UNREACHABLE();
424-
}
425-
426-
} // namespace baseline
427-
} // namespace internal
428-
} // namespace v8
429-
430-
#endif

0 commit comments

Comments
 (0)