Enable egraph-based optimization by default. (#5587)
This PR follows up on #5382 and #5391, which rebuilt the egraph-based optimization framework to be more performant, by enabling it by default. Based on performance results in #5382 (my measurements on SpiderMonkey and bjorn3's independent confirmation with cg_clif), it seems that this is reasonable to enable. Now that we have been fuzzing compiler configurations with egraph opts (#5388) for 6 weeks, having fixed a few fuzzbugs that came up (#5409, #5420, #5438) and subsequently received no further reports from OSS-Fuzz, I believe it is stable enough to rely on. This PR enables `use_egraphs`, and also normalizes its meaning: previously it forced optimization (it basically meant "turn on the egraph optimization machinery"), now it runs egraph opts if the opt level indicates (it means "use egraphs to optimize if we are going to optimize"). The conditionals in the top-level pass driver are a little subtle, but will get simpler once we can remove the non-egraph path (which we plan to do eventually!). Fixes #5181.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=none
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=none
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=none
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=none
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=speed_and_size
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test interpret
|
||||
test run
|
||||
set opt_level=speed_and_size
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
set enable_llvm_abi_extensions=true
|
||||
target x86_64
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test interpret
|
||||
test run
|
||||
set opt_level=speed_and_size
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target aarch64
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
test compile
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
target aarch64
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=none
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=none
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
test compile precise-output
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
test compile precise-output
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
test optimize
|
||||
set opt_level=none
|
||||
set opt_level=speed
|
||||
set use_egraphs=true
|
||||
target x86_64
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
;;!
|
||||
;;! settings = [
|
||||
;;! "enable_heap_access_spectre_mitigation=true",
|
||||
;;! "opt_level=speed_and_size"
|
||||
;;! "opt_level=speed_and_size",
|
||||
;;! "use_egraphs=false"
|
||||
;;! ]
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
@@ -112,4 +113,4 @@
|
||||
;;
|
||||
;; block1:
|
||||
;; @006e return v14, v14
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
;;!
|
||||
;;! settings = [
|
||||
;;! "enable_heap_access_spectre_mitigation=true",
|
||||
;;! "opt_level=speed_and_size"
|
||||
;;! "opt_level=speed_and_size",
|
||||
;;! "use_egraphs=false"
|
||||
;;! ]
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
|
||||
Reference in New Issue
Block a user