Skip to content

Commit fab4777

Browse files
LiedtkeV8-internal LUCI CQ
authored andcommitted
[v8] Conditionally enable more maglev flags
Bug: 455553031 Change-Id: Iaac109353f44c24bdc3c12c7a62c472c12000646 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8747997 Auto-Submit: Matthias Liedtke <[email protected]> Commit-Queue: Dominik Klemba <[email protected]> Reviewed-by: Darius Mercadier <[email protected]> Reviewed-by: Victor Gomes <[email protected]> Reviewed-by: Dominik Klemba <[email protected]>
1 parent 1aef794 commit fab4777

File tree

1 file changed

+53
-30
lines changed

1 file changed

+53
-30
lines changed

Sources/FuzzilliCli/Profiles/V8CommonProfile.swift

Lines changed: 53 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -733,14 +733,21 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] {
733733
args.append(Bool.random() ? "--shared-string-table" : "--shared-strings")
734734
}
735735

736-
if probability(0.25) && !args.contains("--no-maglev") {
737-
args.append("--maglev-future")
738-
}
739-
740-
if probability(0.2) && !args.contains("--no-maglev") {
741-
args.append("--maglev-non-eager-inlining")
742-
if probability(0.4) { // TODO: @tacet decrease this probability to max 0.2
743-
args.append("--max_maglev_inlined_bytecode_size_small=0")
736+
if !args.contains("--no-maglev") {
737+
if probability(0.25) {
738+
args.append("--maglev-future")
739+
}
740+
if probability(0.1) {
741+
args.append("--maglev-assert")
742+
}
743+
if probability(0.05) {
744+
args.append("--maglev-assert-stack-size")
745+
}
746+
if probability(0.2) {
747+
args.append("--maglev-non-eager-inlining")
748+
if probability(0.4) { // TODO: @tacet decrease this probability to max 0.2
749+
args.append("--max-maglev-inlined-bytecode-size-small=0")
750+
}
744751
}
745752
}
746753

@@ -753,7 +760,7 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] {
753760
if probability(0.82) {
754761
args.append("--turbolev-future")
755762
if probability(0.3) { // TODO: @tacet change to 0.15
756-
args.append("--max_inlined_bytecode_size_small=0")
763+
args.append("--max-inlined-bytecode-size-small=0")
757764
}
758765
}
759766
}
@@ -882,39 +889,55 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] {
882889
// More exotic configuration changes.
883890
//
884891
if probability(0.05) {
892+
func chooseBooleanFlag(_ flag: String) {
893+
assert(!flag.starts(with: "--"))
894+
args.append(probability(0.5) ? "--\(flag)" : "--no-\(flag)")
895+
}
896+
885897
if probability(0.5) { args.append("--stress-gc-during-compilation") }
886898
if probability(0.5) { args.append("--lazy-new-space-shrinking") }
887899
if probability(0.5) { args.append("--stress-wasm-memory-moving") }
888900
if probability(0.5) { args.append("--stress-background-compile") }
889901
if probability(0.5) { args.append("--parallel-compile-tasks-for-lazy") }
890902
if probability(0.5) { args.append("--parallel-compile-tasks-for-eager-toplevel") }
891903

892-
args.append(probability(0.5) ? "--always-sparkplug" : "--no-always-sparkplug")
893-
args.append(probability(0.5) ? "--always-osr" : "--no-always-osr")
894-
args.append(probability(0.5) ? "--concurrent-osr" : "--no-concurrent-osr")
895-
args.append(probability(0.5) ? "--force-slow-path" : "--no-force-slow-path")
904+
chooseBooleanFlag("always-sparkplug")
905+
chooseBooleanFlag("always-osr")
906+
chooseBooleanFlag("concurrent-osr")
907+
chooseBooleanFlag("force-slow-path")
896908

897909
// Maglev related flags
898-
args.append(probability(0.5) ? "--maglev-inline-api-calls" : "--no-maglev-inline-api-calls")
910+
chooseBooleanFlag("maglev-inline-api-calls")
911+
chooseBooleanFlag("maglev-inlining")
912+
chooseBooleanFlag("maglev-loop-peeling")
913+
chooseBooleanFlag("maglev-optimistic-peeled-loops")
914+
chooseBooleanFlag("maglev-pretenure-store-values")
915+
chooseBooleanFlag("maglev-poly-calls")
916+
chooseBooleanFlag("maglev-truncation")
917+
chooseBooleanFlag("maglev-cse")
918+
chooseBooleanFlag("maglev-range-analysis")
919+
chooseBooleanFlag("maglev-escape-analysis")
920+
chooseBooleanFlag("maglev-licm")
921+
chooseBooleanFlag("maglev-untagged-phis")
899922

900923
// Compiler related flags
901-
args.append(probability(0.5) ? "--turbo-move-optimization" : "--no-turbo-move-optimization")
902-
args.append(probability(0.5) ? "--turbo-jt" : "--no-turbo-jt")
903-
args.append(probability(0.5) ? "--turbo-loop-peeling" : "--no-turbo-loop-peeling")
904-
args.append(probability(0.5) ? "--turbo-loop-variable" : "--no-turbo-loop-variable")
905-
args.append(probability(0.5) ? "--turbo-loop-rotation" : "--no-turbo-loop-rotation")
906-
args.append(probability(0.5) ? "--turbo-cf-optimization" : "--no-turbo-cf-optimization")
907-
args.append(probability(0.5) ? "--turbo-escape" : "--no-turbo-escape")
908-
args.append(probability(0.5) ? "--turbo-allocation-folding" : "--no-turbo-allocation-folding")
909-
args.append(probability(0.5) ? "--turbo-instruction-scheduling" : "--no-turbo-instruction-scheduling")
910-
args.append(probability(0.5) ? "--turbo-stress-instruction-scheduling" : "--no-turbo-stress-instruction-scheduling")
911-
args.append(probability(0.5) ? "--turbo-store-elimination" : "--no-turbo-store-elimination")
912-
args.append(probability(0.5) ? "--turbo-rewrite-far-jumps" : "--no-turbo-rewrite-far-jumps")
913-
args.append(probability(0.5) ? "--turbo-optimize-apply" : "--no-turbo-optimize-apply")
924+
chooseBooleanFlag("turbo-move-optimization")
925+
chooseBooleanFlag("turbo-jt") // jump threading
926+
chooseBooleanFlag("turbo-loop-peeling")
927+
chooseBooleanFlag("turbo-loop-variable")
928+
chooseBooleanFlag("turbo-loop-rotation")
929+
chooseBooleanFlag("turbo-cf-optimization")
930+
chooseBooleanFlag("turbo-escape")
931+
chooseBooleanFlag("turbo-allocation-folding")
932+
chooseBooleanFlag("turbo-instruction-scheduling")
933+
chooseBooleanFlag("turbo-stress-instruction-scheduling")
934+
chooseBooleanFlag("turbo-store-elimination")
935+
chooseBooleanFlag("turbo-rewrite-far-jumps")
936+
chooseBooleanFlag("turbo-optimize-apply")
937+
chooseBooleanFlag("turbo-load-elimination")
938+
chooseBooleanFlag("turbo-inlining")
939+
chooseBooleanFlag("turbo-splitting")
914940
args.append(chooseUniform(from: ["--no-enable-sse3", "--no-enable-ssse3", "--no-enable-sse4-1", "--no-enable-sse4-2", "--no-enable-avx", "--no-enable-avx2"]))
915-
args.append(probability(0.5) ? "--turbo-load-elimination" : "--no-turbo-load-elimination")
916-
args.append(probability(0.5) ? "--turbo-inlining" : "--no-turbo-inlining")
917-
args.append(probability(0.5) ? "--turbo-splitting" : "--no-turbo-splitting")
918941
}
919942

920943
return args

0 commit comments

Comments
 (0)