diff --git a/dag_in_context/src/lib.rs b/dag_in_context/src/lib.rs index 6fcea514b..33a65f3b2 100644 --- a/dag_in_context/src/lib.rs +++ b/dag_in_context/src/lib.rs @@ -524,7 +524,7 @@ fn egglog_test_internal( let program = format!( "{}\n{build}\n{}\n{check}\n", prologue(), - parallel_schedule(true) + parallel_schedule(true /* with_lowering_peepholes */) .iter() .map(|pass| pass.egglog_schedule().to_string()) .collect::>() diff --git a/dag_in_context/src/main.rs b/dag_in_context/src/main.rs index fda109e23..21f9a13b8 100644 --- a/dag_in_context/src/main.rs +++ b/dag_in_context/src/main.rs @@ -4,7 +4,7 @@ fn main() { println!( "{} \n {}", prologue(), - parallel_schedule() + parallel_schedule(true /* with_lowering_peepholes */) .iter() .map(|s| s.egglog_schedule().to_string()) .collect::>() diff --git a/tests/snapshots/files__branch_duplicate_work-optimize.snap b/tests/snapshots/files__branch_duplicate_work-optimize.snap index 044935011..6c31564a1 100644 --- a/tests/snapshots/files__branch_duplicate_work-optimize.snap +++ b/tests/snapshots/files__branch_duplicate_work-optimize.snap @@ -7,8 +7,9 @@ expression: visualization.result c1_: int = const 2; v2_: bool = lt v0 c1_; v3_: int = add v0 v0; - v4_: int = mul c1_ v3_; - v5_: int = select v2_ v3_ v4_; - print v5_; + c4_: int = const 1; + v5_: int = shl v3_ c4_; + v6_: int = select v2_ v3_ v5_; + print v6_; ret; } diff --git a/tests/snapshots/files__branch_hoisting-optimize.snap b/tests/snapshots/files__branch_hoisting-optimize.snap index 21f98990f..c432255ea 100644 --- a/tests/snapshots/files__branch_hoisting-optimize.snap +++ b/tests/snapshots/files__branch_hoisting-optimize.snap @@ -23,20 +23,19 @@ expression: visualization.result v17_: int = add c16_ v10_; v18_: int = add c16_ v17_; v19_: int = add c16_ v18_; - c20_: int = const 2; - v21_: int = mul c20_ v19_; - c22_: int = const 3; - v23_: int = mul c22_ v19_; - v24_: int = select v15_ v21_ v23_; - v25_: int = add c16_ v19_; - v26_: bool = lt v25_ v13_; - v9_: int = id v24_; - v10_: int = id v25_; + v20_: int = shl v19_ c16_; + c21_: int = const 3; + v22_: int = mul c21_ v19_; + v23_: int = select v15_ v20_ v22_; + v24_: int = add c16_ v19_; + v25_: bool = lt v24_ v13_; + v9_: int = id v23_; + v10_: int = id v24_; v11_: int = id v11_; v12_: int = id v12_; v13_: int = id v13_; - br v26_ .b14_ .b27_; -.b27_: + br v25_ .b14_ .b26_; +.b26_: v4_: int = id v9_; v5_: int = id v10_; v6_: int = id v11_; diff --git a/tests/snapshots/files__collatz_redundant_computation-optimize.snap b/tests/snapshots/files__collatz_redundant_computation-optimize.snap index 675375599..5e0d191d2 100644 --- a/tests/snapshots/files__collatz_redundant_computation-optimize.snap +++ b/tests/snapshots/files__collatz_redundant_computation-optimize.snap @@ -25,8 +25,8 @@ expression: visualization.result br v12_ .b19_ .b20_; .b20_: print v6_; - v21_: int = div v6_ v9_; - v22_: int = mul v21_ v9_; + v21_: int = shr v6_ v7_; + v22_: int = shl v21_ v7_; v23_: int = sub v6_ v22_; v24_: bool = eq v10_ v23_; v25_: int = mul v6_ v8_; diff --git a/tests/snapshots/files__constant_fold_simple-optimize.snap b/tests/snapshots/files__constant_fold_simple-optimize.snap index eb651055d..f3992a8a4 100644 --- a/tests/snapshots/files__constant_fold_simple-optimize.snap +++ b/tests/snapshots/files__constant_fold_simple-optimize.snap @@ -5,8 +5,8 @@ expression: visualization.result # ARGS: @main { c0_: int = const 3; - c1_: int = const 2; - v2_: int = div c0_ c1_; + c1_: int = const 1; + v2_: int = shr c0_ c1_; print v2_; ret; } diff --git a/tests/snapshots/files__if_invariant_do_pull_out-optimize.snap b/tests/snapshots/files__if_invariant_do_pull_out-optimize.snap index bdf6e8299..dc7096268 100644 --- a/tests/snapshots/files__if_invariant_do_pull_out-optimize.snap +++ b/tests/snapshots/files__if_invariant_do_pull_out-optimize.snap @@ -19,26 +19,25 @@ expression: visualization.result c1_: int = const 0; v2_: bool = gt v0 c1_; v3_: int = abs v0; - c4_: int = const 2; - v5_: int = mul c4_ v3_; - br v2_ .b6_ .b7_; -.b6_: - c8_: int = const 4; - v9_: int = div v3_ c8_; - v10_: int = add v3_ v5_; - v11_: int = add v10_ v9_; + c4_: int = const 1; + v5_: int = shl v3_ c4_; + v6_: int = add v3_ v5_; + br v2_ .b7_ .b8_; +.b7_: + c9_: int = const 4; + v10_: int = div v0 c9_; + v11_: int = add v10_ v6_; v12_: int = id v11_; print v12_; ret; jmp .b13_; -.b7_: +.b8_: c14_: int = const 3; v15_: int = mul c14_ v0; c16_: int = const 5; v17_: int = div v15_ c16_; - v18_: int = sub v5_ v0; - v19_: int = add v17_ v18_; - v12_: int = id v19_; + v18_: int = add v17_ v6_; + v12_: int = id v18_; print v12_; ret; .b13_: diff --git a/tests/snapshots/files__if_invariant_dont_pull_out-optimize.snap b/tests/snapshots/files__if_invariant_dont_pull_out-optimize.snap index 993f38f9d..514c796df 100644 --- a/tests/snapshots/files__if_invariant_dont_pull_out-optimize.snap +++ b/tests/snapshots/files__if_invariant_dont_pull_out-optimize.snap @@ -19,8 +19,8 @@ expression: visualization.result c1_: int = const 0; v2_: bool = gt v0 c1_; v3_: int = abs v0; - c4_: int = const 2; - v5_: int = mul c4_ v3_; + c4_: int = const 1; + v5_: int = shl v3_ c4_; br v2_ .b6_ .b7_; .b6_: c8_: int = const 3; diff --git a/tests/snapshots/files__if_push_in-optimize.snap b/tests/snapshots/files__if_push_in-optimize.snap index 0ae87b20d..aa42cec7a 100644 --- a/tests/snapshots/files__if_push_in-optimize.snap +++ b/tests/snapshots/files__if_push_in-optimize.snap @@ -7,8 +7,8 @@ expression: visualization.result c1_: int = const 10; c2_: int = const 0; v3_: bool = gt v0 c2_; - c4_: int = const 2; - v5_: int = mul c4_ v0; + c4_: int = const 1; + v5_: int = shl v0 c4_; c6_: int = const 5; v7_: int = mul c6_ v5_; c8_: int = const -3; diff --git a/tests/snapshots/files__nested_call-optimize.snap b/tests/snapshots/files__nested_call-optimize.snap index bccabd540..2c4c14531 100644 --- a/tests/snapshots/files__nested_call-optimize.snap +++ b/tests/snapshots/files__nested_call-optimize.snap @@ -4,15 +4,14 @@ expression: visualization.result --- # ARGS: @inc(v0: int): int { - c1_: int = const 2; - c2_: int = const 1; - v3_: int = add c2_ v0; - v4_: int = mul c1_ v3_; - ret v4_; + c1_: int = const 1; + v2_: int = add c1_ v0; + v3_: int = shl v2_ c1_; + ret v3_; } @double(v0: int): int { - c1_: int = const 2; - v2_: int = mul c1_ v0; + c1_: int = const 1; + v2_: int = shl v0 c1_; ret v2_; } @main { diff --git a/tests/snapshots/files__small-collatz-optimize.snap b/tests/snapshots/files__small-collatz-optimize.snap index 6f4995716..e62148a7d 100644 --- a/tests/snapshots/files__small-collatz-optimize.snap +++ b/tests/snapshots/files__small-collatz-optimize.snap @@ -25,8 +25,8 @@ expression: visualization.result br v12_ .b19_ .b20_; .b20_: v21_: int = add v5_ v8_; - v22_: int = div v6_ v7_; - v23_: int = mul v22_ v7_; + v22_: int = shr v6_ v8_; + v23_: int = shl v22_ v8_; v24_: int = sub v6_ v23_; v25_: bool = eq v10_ v24_; v26_: int = mul v6_ v9_;