From 3f0d789830c33aed4204ba735b4e45644d258e1c Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Tue, 22 Sep 2020 13:51:44 -0700 Subject: [PATCH 1/4] peepmatic: Remove semi-outdated note from README While the goal is definitely still Cranelift focused, (a) this should be obvious based on the fact that this is nested under the `cranelift/` directory, and (b) Peepmatic *is* now generic over the IR it is optimizing, so it could potentially be used on (say) rustc's MIR now. --- cranelift/peepmatic/README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/cranelift/peepmatic/README.md b/cranelift/peepmatic/README.md index 462a4a4084..4938d35c77 100644 --- a/cranelift/peepmatic/README.md +++ b/cranelift/peepmatic/README.md @@ -54,11 +54,6 @@ superoptimizer like [Souper][]. Eventually, `peepmatic` should have a verifier that ensures that the DSL's optimizations are sound, similar to what [Alive][] does for LLVM optimizations. -Currently, `peepmatic` is targeting peephole optimizers that operate on -Cranelift's clif intermediate representation. The intended next target is -Cranelift's new backend's "vcode" intermediate representation. Supporting -non-Cranelift targets is not a goal. - [Cranelift]: https://github.com/bytecodealliance/wasmtime/tree/main/cranelift#readme [Souper]: https://github.com/google/souper [Alive]: https://github.com/AliveToolkit/alive2 From 447c3e71a6361bafac49126eb99be19929fc84f7 Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Tue, 22 Sep 2020 16:06:07 -0700 Subject: [PATCH 2/4] peepmatic: Simplify linear IR This commit splits "increments" in two; they previously contained both the linearized left- and right-hand sides. But only the first increment ever had any actions, so it was confusing (and space wasting) that all increments had an "actions" vector. No more! This commit separates the linearized left-hand side ("matches") from the linearized right-hand side ("actions"). --- .../peepmatic/crates/runtime/src/linear.rs | 34 +- cranelift/peepmatic/src/automatize.rs | 19 +- cranelift/peepmatic/src/linear_passes.rs | 56 ++- cranelift/peepmatic/src/linearize.rs | 401 +++++++++--------- 4 files changed, 254 insertions(+), 256 deletions(-) diff --git a/cranelift/peepmatic/crates/runtime/src/linear.rs b/cranelift/peepmatic/crates/runtime/src/linear.rs index 21bbdd316a..daa147e22b 100644 --- a/cranelift/peepmatic/crates/runtime/src/linear.rs +++ b/cranelift/peepmatic/crates/runtime/src/linear.rs @@ -37,8 +37,13 @@ pub struct Optimization where TOperator: 'static + Copy + Debug + Eq + Hash, { - /// The chain of increments for this optimization. - pub increments: Vec>, + /// The chain of match operations and expected results for this + /// optimization. + pub matches: Vec, + + /// Actions to perform, given that the operation resulted in the expected + /// value. + pub actions: Vec>, } /// Match any value. @@ -61,31 +66,20 @@ pub fn bool_to_match_result(b: bool) -> MatchResult { unsafe { Ok(NonZeroU32::new_unchecked(b + 1)) } } -/// A partial match of an optimization's LHS and partial construction of its -/// RHS. +/// A partial match of an optimization's LHS. /// -/// An increment is a matching operation, the expected result from that -/// operation to continue to the next increment, and the actions to take to -/// build up the LHS scope and RHS instructions given that we got the expected -/// result from this increment's matching operation. Each increment will -/// basically become a state and a transition edge out of that state in the -/// final automata. +/// An match is composed of a matching operation and the expected result of that +/// operation. Each match will basically become a state and a transition edge +/// out of that state in the final automata. #[derive(Clone, Debug, PartialEq, Eq)] -pub struct Increment -where - TOperator: 'static + Copy + Debug + Eq + Hash, -{ +pub struct Match { /// The matching operation to perform. pub operation: MatchOp, /// The expected result of our matching operation, that enables us to - /// continue to the next increment, or `Else` for "don't care" - /// wildcard-style matching. + /// continue to the next match, or `Else` for "don't care" wildcard-style + /// matching. pub expected: MatchResult, - - /// Actions to perform, given that the operation resulted in the expected - /// value. - pub actions: Vec>, } /// A matching operation to be performed on some Cranelift instruction as part diff --git a/cranelift/peepmatic/src/automatize.rs b/cranelift/peepmatic/src/automatize.rs index 5d4e8a2849..67197523df 100644 --- a/cranelift/peepmatic/src/automatize.rs +++ b/cranelift/peepmatic/src/automatize.rs @@ -19,16 +19,23 @@ where for opt in &opts.optimizations { let mut insertion = builder.insert(); - for inc in &opt.increments { - // Ensure that this state's associated data is this increment's - // match operation. + let mut is_first = true; + for m in &opt.matches { + // Ensure that this state's associated data is this match's + // operation. if let Some(op) = insertion.get_state_data() { - assert_eq!(*op, inc.operation); + assert_eq!(*op, m.operation); } else { - insertion.set_state_data(inc.operation); + insertion.set_state_data(m.operation); } - insertion.next(inc.expected, inc.actions.clone().into_boxed_slice()); + let actions = if is_first { + is_first = false; + opt.actions.clone().into_boxed_slice() + } else { + vec![].into_boxed_slice() + }; + insertion.next(m.expected, actions); } insertion.finish(); } diff --git a/cranelift/peepmatic/src/linear_passes.rs b/cranelift/peepmatic/src/linear_passes.rs index 82c2095139..5eee0d1070 100644 --- a/cranelift/peepmatic/src/linear_passes.rs +++ b/cranelift/peepmatic/src/linear_passes.rs @@ -70,7 +70,7 @@ fn compare_optimizations( where TOperator: Copy + Debug + Eq + Hash, { - for (a, b) in a.increments.iter().zip(b.increments.iter()) { + for (a, b) in a.matches.iter().zip(b.matches.iter()) { let c = compare_match_op_generality(paths, a.operation, b.operation); if c != Ordering::Equal { return c; @@ -87,7 +87,7 @@ where } } - compare_lengths(a.increments.len(), b.increments.len()) + compare_lengths(a.matches.len(), b.matches.len()) } fn compare_optimization_generality( @@ -238,28 +238,27 @@ where let mut prefix = vec![]; for opt in &mut opts.optimizations { - assert!(!opt.increments.is_empty()); + assert!(!opt.matches.is_empty()); - let mut old_increments = opt.increments.iter().peekable(); - let mut new_increments = vec![]; + let mut old_matches = opt.matches.iter().peekable(); + let mut new_matches = vec![]; for (last_op, last_expected) in &prefix { - match old_increments.peek() { + match old_matches.peek() { None => { break; } Some(inc) if *last_op == inc.operation => { - let inc = old_increments.next().unwrap(); - new_increments.push(inc.clone()); + let inc = old_matches.next().unwrap(); + new_matches.push(inc.clone()); if inc.expected != *last_expected { break; } } Some(_) => { - new_increments.push(linear::Increment { + new_matches.push(linear::Match { operation: *last_op, expected: Err(linear::Else), - actions: vec![], }); if last_expected.is_ok() { break; @@ -268,16 +267,12 @@ where } } - new_increments.extend(old_increments.cloned()); - assert!(new_increments.len() >= opt.increments.len()); - opt.increments = new_increments; + new_matches.extend(old_matches.cloned()); + assert!(new_matches.len() >= opt.matches.len()); + opt.matches = new_matches; prefix.clear(); - prefix.extend( - opt.increments - .iter() - .map(|inc| (inc.operation, inc.expected)), - ); + prefix.extend(opt.matches.iter().map(|inc| (inc.operation, inc.expected))); } // Should still be sorted after this pass. @@ -291,21 +286,20 @@ where /// for the DSL's edge-cases than it is to try and statically eliminate their /// existence completely. So we just emit nop match operations for all variable /// patterns, and then in this post-processing pass, we fuse them and their -/// actions with their preceding increment. +/// actions with their preceding match. pub fn remove_unnecessary_nops(opts: &mut linear::Optimizations) where TOperator: Copy + Debug + Eq + Hash, { for opt in &mut opts.optimizations { - if opt.increments.len() < 2 { - debug_assert!(!opt.increments.is_empty()); + if opt.matches.len() < 2 { + debug_assert!(!opt.matches.is_empty()); continue; } - for i in (1..opt.increments.len()).rev() { - if let linear::MatchOp::Nop = opt.increments[i].operation { - let nop = opt.increments.remove(i); - opt.increments[i - 1].actions.extend(nop.actions); + for i in (1..opt.matches.len()).rev() { + if let linear::MatchOp::Nop = opt.matches[i].operation { + opt.matches.remove(i); } } } @@ -357,7 +351,7 @@ mod tests { .optimizations .iter() .map(|o| { - o.increments + o.matches .iter() .map(|i| format!("{:?} == {:?}", i.operation, i.expected)) .collect::>() @@ -371,7 +365,7 @@ mod tests { .optimizations .iter() .map(|o| { - o.increments + o.matches .iter() .map(|i| format!("{:?} == {:?}", i.operation, i.expected)) .collect::>() @@ -388,7 +382,7 @@ mod tests { let actual: Vec> = optimizations .iter() .map(|o| { - o.increments + o.matches .iter() .map(|i| (i.operation, i.expected)) .collect() @@ -435,7 +429,7 @@ mod tests { .optimizations .iter() .map(|o| { - o.increments + o.matches .iter() .map(|i| format!("{:?} == {:?}", i.operation, i.expected)) .collect::>() @@ -449,7 +443,7 @@ mod tests { .optimizations .iter() .map(|o| { - o.increments + o.matches .iter() .map(|i| format!("{:?} == {:?}", i.operation, i.expected)) .collect::>() @@ -466,7 +460,7 @@ mod tests { let actual: Vec> = optimizations .iter() .map(|o| { - o.increments + o.matches .iter() .map(|i| (i.operation, i.expected)) .collect() diff --git a/cranelift/peepmatic/src/linearize.rs b/cranelift/peepmatic/src/linearize.rs index fb991686e7..1ab8e9475d 100644 --- a/cranelift/peepmatic/src/linearize.rs +++ b/cranelift/peepmatic/src/linearize.rs @@ -18,29 +18,38 @@ //! (ishl $x $(log2 C))) //! ``` //! -//! Then we should get the following linear chain of "increments": +//! Then the left-hand side becomes the following linear chain of "matches": //! //! ```ignore //! [ -//! // ( Match Operation, Expected Value, Actions ) -//! ( Opcode@0, imul, [$x = GetLhs@0.0, $C = GetLhs@0.1, ...] ), -//! ( IsConst(C), true, [] ), -//! ( IsPowerOfTwo(C), true, [] ), +//! // ( Match Operation, Expected Value ) +//! ( Opcode@0, imul ), +//! ( IsConst(C), true ), +//! ( IsPowerOfTwo(C), true ), //! ] //! ``` //! -//! Each increment will essentially become a state and a transition out of that -//! state in the final automata, along with the actions to perform when taking -//! that transition. The actions record the scope of matches from the left-hand -//! side and also incrementally build the right-hand side's instructions. (Note -//! that we've elided the actions that build up the optimization's right-hand -//! side in this example.) +//! And the right-hand side becomes this linear chain of "actions": +//! +//! ```ignore +//! [ +//! $rhs0 = get lhs @ 0.0 // $x +//! $rhs1 = get lhs @ 0.1 // $C +//! $rhs2 = eval log2 $rhs1 +//! $rhs3 = make ishl $rhs0, $rhs2 +//! ] +//! ``` +//! +//! Each match will essentially become a state and a transition out of that +//! state in the final automata. The actions record the scope of matches from +//! the left-hand side and also incrementally build the right-hand side's +//! instructions. //! //! ## General Principles //! //! Here are the general principles that linearization should adhere to: //! -//! * Actions should be pushed as early in the optimization's increment chain as +//! * Actions should be pushed as early in the optimization's match chain as //! they can be. This means the tail has fewer side effects, and is therefore //! more likely to be share-able with other optimizations in the automata that //! we build. @@ -49,15 +58,15 @@ //! defined. And finally, an RHS operation's operands must be defined before //! the RHS operation itself. In general, definitions must come before uses! //! -//! * Shorter increment chains are better! This means fewer tests when matching +//! * Shorter match chains are better! This means fewer tests when matching //! left-hand sides, and a more-compact, more-cache-friendly automata, and //! ultimately, a faster automata. //! -//! * An increment's match operation should be a switch rather than a predicate -//! that returns a boolean. For example, we switch on an instruction's opcode, -//! rather than ask whether this operation is an `imul`. This allows for more -//! prefix sharing in the automata, which (again) makes it more compact and -//! more cache friendly. +//! * An match operation should be a switch rather than a predicate that returns +//! a boolean. For example, we switch on an instruction's opcode, rather than +//! ask whether this operation is an `imul`. This allows for more prefix +//! sharing in the automata, which (again) makes it more compact and more +//! cache friendly. //! //! ## Implementation Overview //! @@ -127,7 +136,7 @@ fn linearize_optimization( where TOperator: Copy + Debug + Eq + Hash + Into, { - let mut increments: Vec> = vec![]; + let mut matches: Vec = vec![]; let mut lhs_id_to_path = LhsIdToPath::new(); @@ -136,13 +145,12 @@ where // don't want to emit matching operations on things that might not exist! let mut patterns = PatternPreOrder::new(&opt.lhs.pattern); while let Some((path, pattern)) = patterns.next(paths) { - // Create the matching parts of an `Increment` for this part of the - // pattern, without any actions yet. + // Create the matching parts of an `Match` for this part of the + // pattern. let (operation, expected) = pattern.to_linear_match_op(integers, &lhs_id_to_path, path); - increments.push(linear::Increment { + matches.push(linear::Match { operation, expected, - actions: vec![], }); lhs_id_to_path.remember_path_to_pattern_ids(pattern, path); @@ -150,34 +158,34 @@ where // Some operations require type ascriptions for us to infer the correct // bit width of their results: `ireduce`, `sextend`, `uextend`, etc. // When there is such a type ascription in the pattern, insert another - // increment that checks the instruction-being-matched's bit width. + // match that checks the instruction-being-matched's bit width. if let Pattern::Operation(Operation { r#type, .. }) = pattern { if let Some(w) = r#type.get().and_then(|ty| ty.bit_width.fixed_width()) { debug_assert!(w != 0, "All fixed-width bit widths are non-zero"); let expected = Ok(unsafe { NonZeroU32::new_unchecked(w as u32) }); - increments.push(linear::Increment { + matches.push(linear::Match { operation: linear::MatchOp::BitWidth { path }, expected, - actions: vec![], }); } } } - // Now that we've added all the increments for the LHS pattern, add the - // increments for its preconditions. + // Now that we've added all the matches for the LHS pattern, add the + // matches for its preconditions. for pre in &opt.lhs.preconditions { - increments.push(pre.to_linear_increment(&lhs_id_to_path)); + matches.push(pre.to_linear_match(&lhs_id_to_path)); } - assert!(!increments.is_empty()); + assert!(!matches.is_empty()); - // Finally, generate the RHS-building actions and attach them to the first increment. + // Finally, generate the RHS-building actions and attach them to the first match. let mut rhs_builder = RhsBuilder::new(&opt.rhs); - rhs_builder.add_rhs_build_actions(integers, &lhs_id_to_path, &mut increments[0].actions); + let mut actions = vec![]; + rhs_builder.add_rhs_build_actions(integers, &lhs_id_to_path, &mut actions); - linear::Optimization { increments } + linear::Optimization { matches, actions } } /// A post-order, depth-first traversal of right-hand sides. @@ -452,11 +460,8 @@ impl Precondition<'_, TOperator> where TOperator: Copy + Debug + Eq + Hash + Into, { - /// Convert this precondition into a `linear::Increment`. - fn to_linear_increment( - &self, - lhs_id_to_path: &LhsIdToPath, - ) -> linear::Increment { + /// Convert this precondition into a `linear::Match`. + fn to_linear_match(&self, lhs_id_to_path: &LhsIdToPath) -> linear::Match { match self.constraint { Constraint::IsPowerOfTwo => { let id = match &self.operands[0] { @@ -464,10 +469,9 @@ where _ => unreachable!("checked in verification"), }; let path = lhs_id_to_path.unwrap_first_occurrence(&id); - linear::Increment { + linear::Match { operation: linear::MatchOp::IsPowerOfTwo { path }, expected: linear::bool_to_match_result(true), - actions: vec![], } } Constraint::BitWidth => { @@ -490,10 +494,9 @@ where assert!((width as u8).is_power_of_two()); let expected = Ok(unsafe { NonZeroU32::new_unchecked(width as u32) }); - linear::Increment { + linear::Match { operation: linear::MatchOp::BitWidth { path }, expected, - actions: vec![], } } Constraint::FitsInNativeWord => { @@ -503,10 +506,9 @@ where _ => unreachable!("checked in verification"), }; let path = lhs_id_to_path.unwrap_first_occurrence(&id); - linear::Increment { + linear::Match { operation: linear::MatchOp::FitsInNativeWord { path }, expected: linear::bool_to_match_result(true), - actions: vec![], } } } @@ -592,6 +594,7 @@ mod tests { integer_interner::IntegerId, linear::{bool_to_match_result, Action::*, Else, MatchOp::*}, r#type::{BitWidth, Kind, Type}, + unquote::UnquoteOperator, }; use peepmatic_test_operator::TestOperator; @@ -635,14 +638,12 @@ mod tests { let make_expected: fn( &mut dyn FnMut(&[u8]) -> PathId, &mut dyn FnMut(u64) -> IntegerId, - ) -> Vec> = $make_expected; + ) -> (Vec, Vec>) = $make_expected; + let expected = make_expected(&mut p, &mut i); - dbg!(&expected); - let actual = linearize_optimization(&mut paths, &mut integers, &opts.optimizations[0]); - dbg!(&actual.increments); - - assert_eq!(expected, actual.increments); + assert_eq!(expected.0, actual.matches); + assert_eq!(expected.1, actual.actions); } }; } @@ -652,194 +653,196 @@ mod tests { " (=> (when (imul $x $C) (is-power-of-two $C)) - (ishl $x $C)) + (ishl $x $(log2 $C))) ", - |p, i| vec![ - linear::Increment { - operation: Opcode { path: p(&[0]) }, - expected: Ok(TestOperator::Imul.into()), - actions: vec![ - GetLhs { path: p(&[0, 0]) }, - GetLhs { path: p(&[0, 1]) }, - MakeBinaryInst { - operator: TestOperator::Ishl, - r#type: Type { - kind: Kind::Int, - bit_width: BitWidth::Polymorphic, - }, - operands: [linear::RhsId(0), linear::RhsId(1)], + |p, i| ( + vec![ + linear::Match { + operation: Opcode { path: p(&[0]) }, + expected: Ok(TestOperator::Imul.into()), + }, + linear::Match { + operation: Nop, + expected: Err(Else), + }, + linear::Match { + operation: IsConst { path: p(&[0, 1]) }, + expected: bool_to_match_result(true), + }, + linear::Match { + operation: IsPowerOfTwo { path: p(&[0, 1]) }, + expected: bool_to_match_result(true), + }, + ], + vec![ + GetLhs { path: p(&[0, 0]) }, + GetLhs { path: p(&[0, 1]) }, + UnaryUnquote { + operator: UnquoteOperator::Log2, + operand: linear::RhsId(1) + }, + MakeBinaryInst { + operator: TestOperator::Ishl, + r#type: Type { + kind: Kind::Int, + bit_width: BitWidth::Polymorphic }, - ], - }, - linear::Increment { - operation: Nop, - expected: Err(Else), - actions: vec![], - }, - linear::Increment { - operation: IsConst { path: p(&[0, 1]) }, - expected: bool_to_match_result(true), - actions: vec![], - }, - linear::Increment { - operation: IsPowerOfTwo { path: p(&[0, 1]) }, - expected: bool_to_match_result(true), - actions: vec![], - }, - ], + operands: [linear::RhsId(0), linear::RhsId(2)] + } + ], + ), ); - linearizes_to!(variable_pattern_id_optimization, "(=> $x $x)", |p, i| vec![ - linear::Increment { + linearizes_to!(variable_pattern_id_optimization, "(=> $x $x)", |p, i| ( + vec![linear::Match { operation: Nop, expected: Err(Else), - actions: vec![GetLhs { path: p(&[0]) }], - } - ]); + }], + vec![GetLhs { path: p(&[0]) }], + )); - linearizes_to!(constant_pattern_id_optimization, "(=> $C $C)", |p, i| vec![ - linear::Increment { + linearizes_to!(constant_pattern_id_optimization, "(=> $C $C)", |p, i| ( + vec![linear::Match { operation: IsConst { path: p(&[0]) }, expected: bool_to_match_result(true), - actions: vec![GetLhs { path: p(&[0]) }], - } - ]); + }], + vec![GetLhs { path: p(&[0]) }], + )); - linearizes_to!( - boolean_literal_id_optimization, - "(=> true true)", - |p, i| vec![linear::Increment { + linearizes_to!(boolean_literal_id_optimization, "(=> true true)", |p, i| ( + vec![linear::Match { operation: BooleanValue { path: p(&[0]) }, expected: bool_to_match_result(true), - actions: vec![MakeBooleanConst { - value: true, - bit_width: BitWidth::Polymorphic, - }], - }] - ); + }], + vec![MakeBooleanConst { + value: true, + bit_width: BitWidth::Polymorphic, + }], + )); - linearizes_to!(number_literal_id_optimization, "(=> 5 5)", |p, i| vec![ - linear::Increment { + linearizes_to!(number_literal_id_optimization, "(=> 5 5)", |p, i| ( + vec![linear::Match { operation: IntegerValue { path: p(&[0]) }, expected: Ok(i(5).into()), - actions: vec![MakeIntegerConst { - value: i(5), - bit_width: BitWidth::Polymorphic, - }], - } - ]); + }], + vec![MakeIntegerConst { + value: i(5), + bit_width: BitWidth::Polymorphic, + }], + )); linearizes_to!( operation_id_optimization, "(=> (iconst $C) (iconst $C))", - |p, i| vec![ - linear::Increment { - operation: Opcode { path: p(&[0]) }, - expected: Ok(TestOperator::Iconst.into()), - actions: vec![ - GetLhs { path: p(&[0, 0]) }, - MakeUnaryInst { - operator: TestOperator::Iconst, - r#type: Type { - kind: Kind::Int, - bit_width: BitWidth::Polymorphic, - }, - operand: linear::RhsId(0), + |p, i| ( + vec![ + linear::Match { + operation: Opcode { path: p(&[0]) }, + expected: Ok(TestOperator::Iconst.into()), + }, + linear::Match { + operation: IsConst { path: p(&[0, 0]) }, + expected: bool_to_match_result(true), + }, + ], + vec![ + GetLhs { path: p(&[0, 0]) }, + MakeUnaryInst { + operator: TestOperator::Iconst, + r#type: Type { + kind: Kind::Int, + bit_width: BitWidth::Polymorphic, }, - ], - }, - linear::Increment { - operation: IsConst { path: p(&[0, 0]) }, - expected: bool_to_match_result(true), - actions: vec![], - }, - ] + operand: linear::RhsId(0), + }, + ], + ), ); linearizes_to!( redundant_bor, "(=> (bor $x (bor $x $y)) (bor $x $y))", - |p, i| vec![ - linear::Increment { - operation: Opcode { path: p(&[0]) }, - expected: Ok(TestOperator::Bor.into()), - actions: vec![ - GetLhs { path: p(&[0, 0]) }, - GetLhs { - path: p(&[0, 1, 1]), - }, - MakeBinaryInst { - operator: TestOperator::Bor, - r#type: Type { - kind: Kind::Int, - bit_width: BitWidth::Polymorphic, - }, - operands: [linear::RhsId(0), linear::RhsId(1)], - }, - ], - }, - linear::Increment { - operation: Nop, - expected: Err(Else), - actions: vec![], - }, - linear::Increment { - operation: Opcode { path: p(&[0, 1]) }, - expected: Ok(TestOperator::Bor.into()), - actions: vec![], - }, - linear::Increment { - operation: Eq { - path_a: p(&[0, 1, 0]), - path_b: p(&[0, 0]), + |p, i| ( + vec![ + linear::Match { + operation: Opcode { path: p(&[0]) }, + expected: Ok(TestOperator::Bor.into()), }, - expected: bool_to_match_result(true), - actions: vec![], - }, - linear::Increment { - operation: Nop, - expected: Err(Else), - actions: vec![], - }, - ] + linear::Match { + operation: Nop, + expected: Err(Else), + }, + linear::Match { + operation: Opcode { path: p(&[0, 1]) }, + expected: Ok(TestOperator::Bor.into()), + }, + linear::Match { + operation: Eq { + path_a: p(&[0, 1, 0]), + path_b: p(&[0, 0]), + }, + expected: bool_to_match_result(true), + }, + linear::Match { + operation: Nop, + expected: Err(Else), + }, + ], + vec![ + GetLhs { path: p(&[0, 0]) }, + GetLhs { + path: p(&[0, 1, 1]), + }, + MakeBinaryInst { + operator: TestOperator::Bor, + r#type: Type { + kind: Kind::Int, + bit_width: BitWidth::Polymorphic, + }, + operands: [linear::RhsId(0), linear::RhsId(1)], + }, + ], + ), ); linearizes_to!( large_integers, // u64::MAX "(=> 18446744073709551615 0)", - |p, i| vec![linear::Increment { - operation: IntegerValue { path: p(&[0]) }, - expected: Ok(i(std::u64::MAX).into()), - actions: vec![MakeIntegerConst { + |p, i| ( + vec![linear::Match { + operation: IntegerValue { path: p(&[0]) }, + expected: Ok(i(std::u64::MAX).into()), + }], + vec![MakeIntegerConst { value: i(0), bit_width: BitWidth::Polymorphic, }], - }] + ), ); linearizes_to!( ireduce_with_type_ascription, "(=> (ireduce{i32} $x) 0)", - |p, i| vec![ - linear::Increment { - operation: Opcode { path: p(&[0]) }, - expected: Ok(TestOperator::Ireduce.into()), - actions: vec![MakeIntegerConst { - value: i(0), - bit_width: BitWidth::ThirtyTwo, - }], - }, - linear::Increment { - operation: linear::MatchOp::BitWidth { path: p(&[0]) }, - expected: Ok(NonZeroU32::new(32).unwrap()), - actions: vec![], - }, - linear::Increment { - operation: Nop, - expected: Err(Else), - actions: vec![], - }, - ] + |p, i| ( + vec![ + linear::Match { + operation: Opcode { path: p(&[0]) }, + expected: Ok(TestOperator::Ireduce.into()), + }, + linear::Match { + operation: linear::MatchOp::BitWidth { path: p(&[0]) }, + expected: Ok(NonZeroU32::new(32).unwrap()), + }, + linear::Match { + operation: Nop, + expected: Err(Else), + }, + ], + vec![MakeIntegerConst { + value: i(0), + bit_width: BitWidth::ThirtyTwo, + }], + ), ); } From c015d69eb8ca37a237a90ca8a79db207398bcaf4 Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Wed, 23 Sep 2020 15:53:30 -0700 Subject: [PATCH 3/4] peepmatic: Do not use paths in linear IR Rather than using paths from the root instruction to the instruction we are matching against or checking if it is constant or whatever, use temporary variables. When we successfully match an instruction's opcode, we simultaneously define these temporaries for the instruction's operands. This is similar to how open-coding these matches in Rust would use `match` expressions with pattern matching to bind the operands to variables at the same time. This saves about 1.8% of instructions retired when Peepmatic is enabled. --- cranelift/codegen/src/peepmatic.rs | 337 +++++++++++++++--- cranelift/codegen/src/preopt.serialized | Bin 5613 -> 5511 bytes .../crates/runtime/src/instruction_set.rs | 25 +- cranelift/peepmatic/crates/runtime/src/lib.rs | 1 - .../peepmatic/crates/runtime/src/linear.rs | 75 ++-- .../crates/runtime/src/optimizations.rs | 5 +- .../peepmatic/crates/runtime/src/optimizer.rs | 119 +++---- .../peepmatic/crates/runtime/src/paths.rs | 242 ------------- cranelift/peepmatic/crates/test/src/lib.rs | 47 +-- cranelift/peepmatic/src/dot_fmt.rs | 40 +-- cranelift/peepmatic/src/lib.rs | 9 +- cranelift/peepmatic/src/linear_passes.rs | 245 +++++-------- cranelift/peepmatic/src/linearize.rs | 293 +++++++-------- cranelift/peepmatic/src/traversals.rs | 39 ++ 14 files changed, 633 insertions(+), 844 deletions(-) delete mode 100644 cranelift/peepmatic/crates/runtime/src/paths.rs diff --git a/cranelift/codegen/src/peepmatic.rs b/cranelift/codegen/src/peepmatic.rs index 2fbd58d49c..bf0f440865 100644 --- a/cranelift/codegen/src/peepmatic.rs +++ b/cranelift/codegen/src/peepmatic.rs @@ -14,14 +14,13 @@ use peepmatic_runtime::{ cc::ConditionCode, instruction_set::InstructionSet, part::{Constant, Part}, - paths::Path, r#type::{BitWidth, Kind, Type}, PeepholeOptimizations, PeepholeOptimizer, }; -use peepmatic_traits::TypingRules; use std::borrow::Cow; use std::boxed::Box; use std::convert::{TryFrom, TryInto}; +use std::iter; use std::ptr; use std::sync::atomic::{AtomicPtr, Ordering}; @@ -573,35 +572,6 @@ fn intcc_to_peepmatic(cc: IntCC) -> ConditionCode { } } -fn get_immediate(dfg: &DataFlowGraph, inst: Inst, i: usize) -> Part { - return match dfg[inst] { - InstructionData::BinaryImm64 { imm, .. } if i == 0 => imm.into(), - InstructionData::BranchIcmp { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(), - InstructionData::BranchInt { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(), - InstructionData::IntCompare { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(), - InstructionData::IntCompareImm { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(), - InstructionData::IntCompareImm { imm, .. } if i == 1 => imm.into(), - InstructionData::IntCond { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(), - InstructionData::IntCondTrap { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(), - InstructionData::IntSelect { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(), - InstructionData::UnaryBool { imm, .. } if i == 0 => { - Constant::Bool(imm, BitWidth::Polymorphic).into() - } - InstructionData::UnaryImm { imm, .. } if i == 0 => imm.into(), - ref otherwise => unsupported(otherwise), - }; - - #[inline(never)] - #[cold] - fn unsupported(data: &InstructionData) -> ! { - panic!("unsupported instruction data: {:?}", data) - } -} - -fn get_argument(dfg: &DataFlowGraph, inst: Inst, i: usize) -> Option { - dfg.inst_args(inst).get(i).copied() -} - fn peepmatic_ty_to_ir_ty(ty: Type, dfg: &DataFlowGraph, root: Inst) -> types::Type { match (ty.kind, bit_width(dfg, ty.bit_width, root)) { (Kind::Int, 8) => types::I8, @@ -681,39 +651,290 @@ unsafe impl<'a, 'b> InstructionSet<'b> for &'a dyn TargetIsa { } } - fn get_part_at_path( + fn operator( &self, pos: &mut FuncCursor<'b>, - root: ValueOrInst, - path: Path, - ) -> Option> { - // The root is path [0]. - debug_assert!(!path.0.is_empty()); - debug_assert_eq!(path.0[0], 0); - - let mut part = Part::Instruction(root); - for p in path.0[1..].iter().copied() { - let inst = part.as_instruction()?.resolve_inst(&pos.func.dfg)?; - let operator = pos.func.dfg[inst].opcode(); - - if p < operator.immediates_arity() { - part = get_immediate(&pos.func.dfg, inst, p as usize); - continue; + value_or_inst: ValueOrInst, + operands: &mut E, + ) -> Option + where + E: Extend>, + { + let inst = value_or_inst.resolve_inst(&pos.func.dfg)?; + Some(match pos.func.dfg[inst] { + InstructionData::Binary { + opcode: opcode @ Opcode::Band, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Bor, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Bxor, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Iadd, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Ifcmp, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Imul, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Ishl, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Isub, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Rotl, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Rotr, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Sdiv, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Srem, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Sshr, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Udiv, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Urem, + args, + } + | InstructionData::Binary { + opcode: opcode @ Opcode::Ushr, + args, + } => { + operands.extend(args.iter().map(|v| Part::Instruction((*v).into()))); + opcode } - let arg = p - operator.immediates_arity(); - let arg = arg as usize; - let value = get_argument(&pos.func.dfg, inst, arg)?; - part = Part::Instruction(value.into()); - } + InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::BandImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::BorImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::BxorImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::IaddImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::IfcmpImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::ImulImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::IrsubImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::IshlImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::RotlImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::RotrImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::SdivImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::SremImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::SshrImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::UdivImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::UremImm, + imm, + arg, + } + | InstructionData::BinaryImm64 { + opcode: opcode @ Opcode::UshrImm, + imm, + arg, + } => { + operands.extend( + iter::once(imm.into()).chain(iter::once(Part::Instruction(arg.into()))), + ); + opcode + } - log::trace!("get_part_at_path({:?}) = {:?}", path, part); - Some(part) - } + InstructionData::Branch { + opcode: opcode @ Opcode::Brnz, + ref args, + destination: _, + } + | InstructionData::Branch { + opcode: opcode @ Opcode::Brz, + ref args, + destination: _, + } => { + operands.extend( + args.as_slice(&pos.func.dfg.value_lists) + .iter() + .map(|v| Part::Instruction((*v).into())) + // NB: Peepmatic only knows about the condition, not any + // of the arguments to the block, which are special + // cased elsewhere, if/when we actually replace the + // instruction. + .take(1), + ); + opcode + } - fn operator(&self, pos: &mut FuncCursor<'b>, value_or_inst: ValueOrInst) -> Option { - let inst = value_or_inst.resolve_inst(&pos.func.dfg)?; - Some(pos.func.dfg[inst].opcode()) + InstructionData::CondTrap { + opcode: opcode @ Opcode::Trapnz, + arg, + code: _, + } + | InstructionData::CondTrap { + opcode: opcode @ Opcode::Trapz, + arg, + code: _, + } => { + operands.extend(iter::once(Part::Instruction(arg.into()))); + opcode + } + + InstructionData::IntCompare { + opcode: opcode @ Opcode::Icmp, + cond, + args, + } => { + operands.extend( + iter::once(intcc_to_peepmatic(cond).into()) + .chain(args.iter().map(|v| Part::Instruction((*v).into()))), + ); + opcode + } + + InstructionData::IntCompareImm { + opcode: opcode @ Opcode::IcmpImm, + cond, + imm, + arg, + } => { + operands.extend( + iter::once(intcc_to_peepmatic(cond).into()) + .chain(iter::once(Part::Constant(imm.into()))) + .chain(iter::once(Part::Instruction(arg.into()))), + ); + opcode + } + + InstructionData::Ternary { + opcode: opcode @ Opcode::Select, + ref args, + } => { + operands.extend(args.iter().map(|v| Part::Instruction((*v).into()))); + opcode + } + + InstructionData::Unary { + opcode: opcode @ Opcode::AdjustSpDown, + arg, + } + | InstructionData::Unary { + opcode: opcode @ Opcode::Bint, + arg, + } + | InstructionData::Unary { + opcode: opcode @ Opcode::Ireduce, + arg, + } + | InstructionData::Unary { + opcode: opcode @ Opcode::Sextend, + arg, + } + | InstructionData::Unary { + opcode: opcode @ Opcode::Uextend, + arg, + } => { + operands.extend(iter::once(Part::Instruction(arg.into()))); + opcode + } + + InstructionData::UnaryBool { opcode, imm } => { + operands.extend(iter::once(Part::Constant(Constant::Bool( + imm, + BitWidth::Polymorphic, + )))); + opcode + } + + InstructionData::UnaryImm { + opcode: opcode @ Opcode::AdjustSpDownImm, + imm, + } + | InstructionData::UnaryImm { + opcode: opcode @ Opcode::Iconst, + imm, + } => { + operands.extend(iter::once(imm.into())); + opcode + } + ref otherwise => { + log::trace!("Not supported by Peepmatic: {:?}", otherwise); + return None; + } + }) } fn make_inst_1( diff --git a/cranelift/codegen/src/preopt.serialized b/cranelift/codegen/src/preopt.serialized index 8765e4bb8422713c9c5bcfe5f4c0988675d932d7..5669c9912628565573f1645329d4af691fbd3218 100644 GIT binary patch delta 462 zcmaE>-LB2ZIk|yJd}3Wv3=0Dz8v_FaGXo=#WMIP2V+JZApaEIQWE(~UM&`+UOyZLT zm_)&N9pf4?pj{jgyFgYlLV24DnEo;{vP{lnu?3T|lTWfJ09g%eij&W>a7-3v6#?@0 z0ePORGGKAp$<3@F6;|wulaI360aAx;62EDY>Ga^B<%oYIraIogCFD!{=52_y!V$pW0qq2eGN zAWwh*%jQ#@(acaIS-?V239ymPU?U@WGoV^QL50wIg*Tar9ir*vWCI@2$-x3`DEzMi WQH)HJ0|d2!WDSsH*}Ou~l?4Fawm)0| delta 592 zcmZqIeyg3v$p8V2P?~`W#z3$b;bKh8Fj+ { new: Part, ) -> Self::Instruction; - /// Get the instruction, constant, or condition code at the given path. - /// - /// If there is no such entity at the given path (e.g. we run into a - /// function parameter and can't traverse the path any further) then `None` - /// should be returned. - fn get_part_at_path( - &self, - context: &mut Self::Context, - root: Self::Instruction, - path: Path, - ) -> Option>; - /// Get the given instruction's operator. /// /// If the instruction isn't supported, then `None` should be returned. - fn operator( + /// + /// Additionally, if `Some` is returned, then the instruction's operands + /// must be pushed in order into `operands`. E.g. calling this method on + /// `(iadd $x $y)` would return `Some(iadd)` and extend `operands` with + /// `[$x, $y]`. + fn operator( &self, context: &mut Self::Context, instr: Self::Instruction, - ) -> Option; + operands: &mut E, + ) -> Option + where + E: Extend>; /// Make a unary instruction. /// diff --git a/cranelift/peepmatic/crates/runtime/src/lib.rs b/cranelift/peepmatic/crates/runtime/src/lib.rs index 0a0cf1012d..5689dd2d20 100644 --- a/cranelift/peepmatic/crates/runtime/src/lib.rs +++ b/cranelift/peepmatic/crates/runtime/src/lib.rs @@ -25,7 +25,6 @@ pub mod linear; pub mod optimizations; pub mod optimizer; pub mod part; -pub mod paths; pub mod r#type; pub mod unquote; diff --git a/cranelift/peepmatic/crates/runtime/src/linear.rs b/cranelift/peepmatic/crates/runtime/src/linear.rs index daa147e22b..575edde9e9 100644 --- a/cranelift/peepmatic/crates/runtime/src/linear.rs +++ b/cranelift/peepmatic/crates/runtime/src/linear.rs @@ -7,7 +7,6 @@ use crate::cc::ConditionCode; use crate::integer_interner::{IntegerId, IntegerInterner}; -use crate::paths::{PathId, PathInterner}; use crate::r#type::{BitWidth, Type}; use crate::unquote::UnquoteOperator; use serde::{Deserialize, Serialize}; @@ -24,9 +23,6 @@ where /// The linear optimizations. pub optimizations: Vec>, - /// The de-duplicated paths referenced by these optimizations. - pub paths: PathInterner, - /// The integer literals referenced by these optimizations. pub integers: IntegerInterner, } @@ -87,79 +83,54 @@ pub struct Match { #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Deserialize, Serialize)] pub enum MatchOp { /// Switch on the opcode of an instruction. - Opcode { - /// The path to the instruction whose opcode we're switching on. - path: PathId, - }, + /// + /// Upon successfully matching an instruction's opcode, bind each of its + /// operands to a LHS temporary. + Opcode(LhsId), /// Does an instruction have a constant value? - IsConst { - /// The path to the instruction (or immediate) that we're checking - /// whether it is constant or not. - path: PathId, - }, + IsConst(LhsId), /// Is the constant value a power of two? - IsPowerOfTwo { - /// The path to the instruction (or immediate) that we are checking - /// whether it is a constant power of two or not. - path: PathId, - }, + IsPowerOfTwo(LhsId), /// Switch on the bit width of a value. - BitWidth { - /// The path to the instruction (or immediate) whose result's bit width - /// we are checking. - path: PathId, - }, + BitWidth(LhsId), /// Does the value fit in our target architecture's native word size? - FitsInNativeWord { - /// The path to the instruction (or immediate) whose result we are - /// checking whether it fits in a native word or not. - path: PathId, - }, + FitsInNativeWord(LhsId), - /// Are the instructions (or immediates) at the given paths the same? - Eq { - /// The path to the first instruction (or immediate). - path_a: PathId, - /// The path to the second instruction (or immediate). - path_b: PathId, - }, + /// Are the instructions (or immediates) the same? + Eq(LhsId, LhsId), /// Switch on the constant integer value of an instruction. - IntegerValue { - /// The path to the instruction. - path: PathId, - }, + IntegerValue(LhsId), /// Switch on the constant boolean value of an instruction. - BooleanValue { - /// The path to the instruction. - path: PathId, - }, + BooleanValue(LhsId), /// Switch on a condition code. - ConditionCode { - /// The path to the condition code. - path: PathId, - }, + ConditionCode(LhsId), - /// No operation. Always evaluates to `None`. + /// No operation. Always evaluates to `Else`. /// - /// Exceedingly rare in real optimizations; nonetheless required to support + /// Never appears in real optimizations; nonetheless required to support /// corner cases of the DSL, such as a LHS pattern that is nothing but a - /// variable pattern. + /// variable. Nop, } /// A canonicalized identifier for a left-hand side value that was bound in a /// pattern. +/// +/// These are defined in a pre-order traversal of the LHS pattern by successful +/// `MatchOp::Opcode` matches. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize)] pub struct LhsId(pub u16); /// A canonicalized identifier for a right-hand side value. +/// +/// These are defined by RHS actions. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub struct RhsId(pub u16); @@ -171,8 +142,8 @@ pub struct RhsId(pub u16); pub enum Action { /// Reuse something from the left-hand side. GetLhs { - /// The path to the instruction or value. - path: PathId, + /// The left-hand side instruction or value. + lhs: LhsId, }, /// Perform compile-time evaluation. diff --git a/cranelift/peepmatic/crates/runtime/src/optimizations.rs b/cranelift/peepmatic/crates/runtime/src/optimizations.rs index 3636b0e7b3..02ec18dc38 100644 --- a/cranelift/peepmatic/crates/runtime/src/optimizations.rs +++ b/cranelift/peepmatic/crates/runtime/src/optimizations.rs @@ -5,7 +5,6 @@ use crate::instruction_set::InstructionSet; use crate::integer_interner::IntegerInterner; use crate::linear::{Action, MatchOp, MatchResult}; use crate::optimizer::PeepholeOptimizer; -use crate::paths::PathInterner; use peepmatic_automata::Automaton; use serde::{Deserialize, Serialize}; use std::fmt::Debug; @@ -25,9 +24,6 @@ pub struct PeepholeOptimizations where TOperator: 'static + Copy + Debug + Eq + Hash, { - /// The instruction paths referenced by the peephole optimizations. - pub paths: PathInterner, - /// Not all integers we're matching on fit in the `u32` that we use as the /// result of match operations. So we intern them and refer to them by id. pub integers: IntegerInterner, @@ -88,6 +84,7 @@ where PeepholeOptimizer { peep_opt: self, instr_set, + left_hand_sides: vec![], right_hand_sides: vec![], actions: vec![], backtracking_states: vec![], diff --git a/cranelift/peepmatic/crates/runtime/src/optimizer.rs b/cranelift/peepmatic/crates/runtime/src/optimizer.rs index 48014adc4f..63a15c69f1 100644 --- a/cranelift/peepmatic/crates/runtime/src/optimizer.rs +++ b/cranelift/peepmatic/crates/runtime/src/optimizer.rs @@ -27,9 +27,10 @@ where { pub(crate) peep_opt: &'peep PeepholeOptimizations, pub(crate) instr_set: TInstructionSet, + pub(crate) left_hand_sides: Vec>, pub(crate) right_hand_sides: Vec>, pub(crate) actions: Vec>, - pub(crate) backtracking_states: Vec<(State, usize)>, + pub(crate) backtracking_states: Vec<(State, usize, usize)>, } impl<'peep, 'ctx, TInstructionSet> Debug for PeepholeOptimizer<'peep, 'ctx, TInstructionSet> @@ -40,6 +41,7 @@ where let PeepholeOptimizer { peep_opt, instr_set: _, + left_hand_sides, right_hand_sides, actions, backtracking_states, @@ -47,6 +49,7 @@ where f.debug_struct("PeepholeOptimizer") .field("peep_opt", peep_opt) .field("instr_set", &"_") + .field("left_hand_sides", left_hand_sides) .field("right_hand_sides", right_hand_sides) .field("actions", actions) .field("backtracking_states", backtracking_states) @@ -117,12 +120,8 @@ where for action in actions.drain(..) { log::trace!("Evaluating action: {:?}", action); match action { - Action::GetLhs { path } => { - let path = self.peep_opt.paths.lookup(path); - let lhs = self - .instr_set - .get_part_at_path(context, root, path) - .expect("should always get part at path OK by the time it is bound"); + Action::GetLhs { lhs } => { + let lhs = self.left_hand_sides[lhs.0 as usize]; self.right_hand_sides.push(lhs); } Action::UnaryUnquote { operator, operand } => { @@ -284,22 +283,17 @@ where log::trace!("Evaluating match operation: {:?}", match_op); let result: MatchResult = (|| match match_op { - Opcode { path } => { - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + Opcode(id) => { + let part = self.left_hand_sides[id.0 as usize]; let inst = part.as_instruction().ok_or(Else)?; - let op = self.instr_set.operator(context, inst).ok_or(Else)?; + let op = self + .instr_set + .operator(context, inst, &mut self.left_hand_sides) + .ok_or(Else)?; Ok(op.into()) } - IsConst { path } => { - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + IsConst(id) => { + let part = self.left_hand_sides[id.0 as usize]; let is_const = match part { Part::Instruction(i) => { self.instr_set.instruction_to_constant(context, i).is_some() @@ -308,12 +302,8 @@ where }; bool_to_match_result(is_const) } - IsPowerOfTwo { path } => { - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + IsPowerOfTwo(id) => { + let part = self.left_hand_sides[id.0 as usize]; match part { Part::Constant(c) => { let is_pow2 = c.as_int().unwrap().is_power_of_two(); @@ -327,18 +317,11 @@ where let is_pow2 = c.as_int().unwrap().is_power_of_two(); bool_to_match_result(is_pow2) } - Part::ConditionCode(_) => unreachable!( - "IsPowerOfTwo on a condition - code" - ), + Part::ConditionCode(_) => unreachable!("IsPowerOfTwo on a condition code"), } } - BitWidth { path } => { - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + BitWidth(id) => { + let part = self.left_hand_sides[id.0 as usize]; let bit_width = match part { Part::Instruction(i) => self.instr_set.instruction_result_bit_width(context, i), Part::Constant(Constant::Int(_, w)) | Part::Constant(Constant::Bool(_, w)) => { @@ -355,15 +338,11 @@ where ); Ok(unsafe { NonZeroU32::new_unchecked(bit_width as u32) }) } - FitsInNativeWord { path } => { + FitsInNativeWord(id) => { let native_word_size = self.instr_set.native_word_size_in_bits(context); debug_assert!(native_word_size.is_power_of_two()); - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + let part = self.left_hand_sides[id.0 as usize]; let fits = match part { Part::Instruction(i) => { let size = self.instr_set.instruction_result_bit_width(context, i); @@ -378,17 +357,9 @@ where }; bool_to_match_result(fits) } - Eq { path_a, path_b } => { - let path_a = self.peep_opt.paths.lookup(path_a); - let part_a = self - .instr_set - .get_part_at_path(context, root, path_a) - .ok_or(Else)?; - let path_b = self.peep_opt.paths.lookup(path_b); - let part_b = self - .instr_set - .get_part_at_path(context, root, path_b) - .ok_or(Else)?; + Eq(a, b) => { + let part_a = self.left_hand_sides[a.0 as usize]; + let part_b = self.left_hand_sides[b.0 as usize]; let eq = match (part_a, part_b) { (Part::Instruction(inst), Part::Constant(c1)) | (Part::Constant(c1), Part::Instruction(inst)) => { @@ -401,12 +372,8 @@ where }; bool_to_match_result(eq) } - IntegerValue { path } => { - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + IntegerValue(id) => { + let part = self.left_hand_sides[id.0 as usize]; match part { Part::Constant(c) => { let x = c.as_int().ok_or(Else)?; @@ -425,12 +392,8 @@ where Part::ConditionCode(_) => unreachable!("IntegerValue on condition code"), } } - BooleanValue { path } => { - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + BooleanValue(id) => { + let part = self.left_hand_sides[id.0 as usize]; match part { Part::Constant(c) => { let b = c.as_bool().ok_or(Else)?; @@ -447,12 +410,8 @@ where Part::ConditionCode(_) => unreachable!("IntegerValue on condition code"), } } - ConditionCode { path } => { - let path = self.peep_opt.paths.lookup(path); - let part = self - .instr_set - .get_part_at_path(context, root, path) - .ok_or(Else)?; + ConditionCode(id) => { + let part = self.left_hand_sides[id.0 as usize]; let cc = part.as_condition_code().ok_or(Else)?; let cc = cc as u32; debug_assert!(cc != 0); @@ -483,12 +442,20 @@ where self.backtracking_states.clear(); self.actions.clear(); self.right_hand_sides.clear(); + self.left_hand_sides.clear(); + + // `LhsId(0)` is always the root. + self.left_hand_sides.push(Part::Instruction(root)); let mut r#final = None; let mut query = self.peep_opt.automata.query(); loop { log::trace!("Current state: {:?}", query.current_state()); + log::trace!( + "self.left_hand_sides = {:#?}", + self.left_hand_sides.iter().enumerate().collect::>() + ); if query.is_in_final_state() { // If we're in a final state (which means an optimization is @@ -507,8 +474,11 @@ where // optimization, we want to be able to backtrack to this state and // then try taking the `Else` transition. if query.has_transition_on(&Err(Else)) { - self.backtracking_states - .push((query.current_state(), self.actions.len())); + self.backtracking_states.push(( + query.current_state(), + self.actions.len(), + self.left_hand_sides.len(), + )); } let match_op = match query.current_state_data() { @@ -522,9 +492,10 @@ where actions } else if r#final.is_some() { break; - } else if let Some((state, actions_len)) = self.backtracking_states.pop() { + } else if let Some((state, actions_len, lhs_len)) = self.backtracking_states.pop() { query.go_to_state(state); self.actions.truncate(actions_len); + self.left_hand_sides.truncate(lhs_len); query .next(&Err(Else)) .expect("backtracking states always have `Else` transitions") diff --git a/cranelift/peepmatic/crates/runtime/src/paths.rs b/cranelift/peepmatic/crates/runtime/src/paths.rs deleted file mode 100644 index f824f19a74..0000000000 --- a/cranelift/peepmatic/crates/runtime/src/paths.rs +++ /dev/null @@ -1,242 +0,0 @@ -//! Representing paths through the dataflow graph. -//! -//! Paths are relative from a *root* instruction, which is the instruction we -//! are determining which, if any, optimizations apply. -//! -//! Paths are series of indices through each instruction's children as we -//! traverse down the graph from the root. Children are immediates followed by -//! arguments: `[imm0, imm1, ..., immN, arg0, arg1, ..., argN]`. -//! -//! ## Examples -//! -//! * `[0]` is the path to the root. -//! * `[0, 0]` is the path to the root's first child. -//! * `[0, 1]` is the path to the root's second child. -//! * `[0, 1, 0]` is the path to the root's second child's first child. -//! -//! ## Interning -//! -//! To avoid extra allocations, de-duplicate paths, and reference them via a -//! fixed-length value, we intern paths inside a `PathInterner` and then -//! reference them via `PathId`. - -// TODO: Make `[]` the path to the root, and get rid of this redundant leading -// zero that is currently in every single path. - -use serde::de::{Deserializer, SeqAccess, Visitor}; -use serde::ser::{SerializeSeq, Serializer}; -use serde::{Deserialize, Serialize}; -use std::collections::HashMap; -use std::convert::TryInto; -use std::fmt; -use std::hash::{Hash, Hasher}; -use std::marker::PhantomData; - -/// A path through the data-flow graph from the root instruction. -#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] -pub struct Path<'a>(pub &'a [u8]); - -impl Path<'_> { - /// Construct a new path through the data-flow graph from the root - /// instruction. - pub fn new(path: &impl AsRef<[u8]>) -> Path { - Path(path.as_ref()) - } -} - -/// An identifier for an interned path. -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub struct PathId(u16); - -/// An interner and de-duplicator for `Path`s. -/// -/// Can be serialized and deserialized while maintaining the same id to interned -/// path mapping. -#[derive(Debug, Default)] -pub struct PathInterner { - /// A map from a path (whose owned data is inside `arena`) to the canonical - /// `PathId` we assigned it when interning it. - map: HashMap, - - /// A map from a `PathId` index to an unsafe, self-borrowed path pointing - /// into `arena`. It is safe to given these out as safe `Path`s, as long as - /// the lifetime is not longer than this `PathInterner`'s lifetime. - paths: Vec, - - /// Bump allocation arena for path data. The bump arena ensures that these - /// allocations never move, and are therefore safe for self-references. - arena: bumpalo::Bump, -} - -impl PathInterner { - /// Construct a new, empty `PathInterner`. - #[inline] - pub fn new() -> Self { - Self::default() - } - - /// Intern a path into this `PathInterner`, returning its canonical - /// `PathId`. - /// - /// If we've already interned this path before, then the existing id we - /// already assigned to it is returned. If we've never seen this path - /// before, then it is copied into this `PathInterner` and a new id is - /// assigned to it. - #[inline] - pub fn intern<'a>(&mut self, path: Path<'a>) -> PathId { - let unsafe_path = unsafe { UnsafePath::from_path(&path) }; - if let Some(id) = self.map.get(&unsafe_path) { - return *id; - } - self.intern_new(path) - } - - #[inline(never)] - fn intern_new<'a>(&mut self, path: Path<'a>) -> PathId { - let id: u16 = self - .paths - .len() - .try_into() - .expect("too many paths interned"); - let id = PathId(id); - - let our_path = self.arena.alloc_slice_copy(&path.0); - let unsafe_path = unsafe { UnsafePath::from_slice(&our_path) }; - - self.paths.push(unsafe_path.clone()); - let old = self.map.insert(unsafe_path, id); - - debug_assert!(old.is_none()); - debug_assert_eq!(self.lookup(id), path); - debug_assert_eq!(self.intern(path), id); - - id - } - - /// Lookup a previously interned path by id. - #[inline] - pub fn lookup<'a>(&'a self, id: PathId) -> Path<'a> { - let unsafe_path = self - .paths - .get(id.0 as usize) - .unwrap_or_else(|| Self::lookup_failure()); - unsafe { unsafe_path.as_path() } - } - - #[inline(never)] - fn lookup_failure() -> ! { - panic!( - "no path for the given id; this can only happen when mixing `PathId`s with different \ - `PathInterner`s" - ) - } -} - -impl Serialize for PathInterner { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - let mut seq = serializer.serialize_seq(Some(self.paths.len()))?; - for p in &self.paths { - let p = unsafe { p.as_path() }; - seq.serialize_element(&p)?; - } - seq.end() - } -} - -impl<'de> Deserialize<'de> for PathInterner { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - deserializer.deserialize_seq(PathInternerVisitor { - marker: PhantomData, - }) - } -} - -struct PathInternerVisitor { - marker: PhantomData PathInterner>, -} - -impl<'de> Visitor<'de> for PathInternerVisitor { - type Value = PathInterner; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - write!(formatter, "a `peepmatic_runtime::paths::PathInterner`") - } - - fn visit_seq(self, mut access: M) -> Result - where - M: SeqAccess<'de>, - { - const DEFAULT_CAPACITY: usize = 16; - let capacity = access.size_hint().unwrap_or(DEFAULT_CAPACITY); - - let mut interner = PathInterner { - map: HashMap::with_capacity(capacity), - paths: Vec::with_capacity(capacity), - arena: bumpalo::Bump::new(), - }; - - while let Some(path) = access.next_element::()? { - interner.intern(path); - } - - Ok(interner) - } -} - -/// An unsafe, unchecked borrow of a path. Not for use outside of -/// `PathInterner`! -#[derive(Clone, Debug)] -struct UnsafePath { - ptr: *const u8, - len: usize, -} - -impl PartialEq for UnsafePath { - fn eq(&self, rhs: &UnsafePath) -> bool { - unsafe { self.as_slice() == rhs.as_slice() } - } -} - -impl Eq for UnsafePath {} - -impl Hash for UnsafePath { - fn hash(&self, hasher: &mut H) - where - H: Hasher, - { - unsafe { self.as_slice().hash(hasher) } - } -} - -/// Safety: callers must ensure that the constructed values won't have unsafe -/// usages of `PartialEq`, `Eq`, or `Hash`. -impl UnsafePath { - unsafe fn from_path(p: &Path) -> Self { - Self::from_slice(&p.0) - } - - unsafe fn from_slice(s: &[u8]) -> Self { - UnsafePath { - ptr: s.as_ptr(), - len: s.len(), - } - } -} - -/// Safety: callers must ensure that `'a` does not outlive the lifetime of the -/// underlying data. -impl UnsafePath { - unsafe fn as_slice<'a>(&self) -> &'a [u8] { - std::slice::from_raw_parts(self.ptr, self.len) - } - - unsafe fn as_path<'a>(&self) -> Path<'a> { - Path(self.as_slice()) - } -} diff --git a/cranelift/peepmatic/crates/test/src/lib.rs b/cranelift/peepmatic/crates/test/src/lib.rs index 15055e2b1a..948c4abc80 100644 --- a/cranelift/peepmatic/crates/test/src/lib.rs +++ b/cranelift/peepmatic/crates/test/src/lib.rs @@ -6,7 +6,6 @@ use peepmatic_runtime::{ cc::ConditionCode, instruction_set::InstructionSet, part::{Constant, Part}, - paths::Path, r#type::{BitWidth, Kind, Type}, }; use peepmatic_test_operator::TestOperator; @@ -329,43 +328,23 @@ unsafe impl<'a> InstructionSet<'a> for TestIsa { new } - fn get_part_at_path( + fn operator( &self, program: &mut Program, - root: Instruction, - path: Path, - ) -> Option> { - log::debug!("get_part_at_path({:?})", path); - - assert!(!path.0.is_empty()); - assert_eq!(path.0[0], 0); - - let mut part = Part::Instruction(root); - for p in &path.0[1..] { - if let Part::Instruction(inst) = part { - let data = program.data(inst); - let p = *p as usize; - - if p < data.immediates.len() { - part = data.immediates[p].into(); - continue; - } - - if let Some(inst) = data.arguments.get(p - data.immediates.len()).copied() { - part = Part::Instruction(inst); - continue; - } - } - - return None; - } - - Some(part) - } - - fn operator(&self, program: &mut Program, instr: Instruction) -> Option { + instr: Self::Instruction, + operands: &mut E, + ) -> Option + where + E: Extend>, + { log::debug!("operator({:?})", instr); let data = program.data(instr); + operands.extend( + data.immediates + .iter() + .map(|imm| Part::from(*imm)) + .chain(data.arguments.iter().map(|inst| Part::Instruction(*inst))), + ); Some(data.operator) } diff --git a/cranelift/peepmatic/src/dot_fmt.rs b/cranelift/peepmatic/src/dot_fmt.rs index e92c3468ba..71a9533417 100644 --- a/cranelift/peepmatic/src/dot_fmt.rs +++ b/cranelift/peepmatic/src/dot_fmt.rs @@ -7,7 +7,6 @@ use peepmatic_runtime::{ cc::ConditionCode, integer_interner::{IntegerId, IntegerInterner}, linear, - paths::{PathId, PathInterner}, }; use std::convert::{TryFrom, TryInto}; use std::fmt::Debug; @@ -15,7 +14,7 @@ use std::io::{self, Write}; use std::num::{NonZeroU16, NonZeroU32}; #[derive(Debug)] -pub(crate) struct PeepholeDotFmt<'a>(pub(crate) &'a PathInterner, pub(crate) &'a IntegerInterner); +pub(crate) struct PeepholeDotFmt<'a>(pub(crate) &'a IntegerInterner); impl DotFmt]>> for PeepholeDotFmt<'_> @@ -44,7 +43,7 @@ where write!(w, "{}", cc) } linear::MatchOp::IntegerValue { .. } => { - let x = self.1.lookup(IntegerId( + let x = self.0.lookup(IntegerId( NonZeroU16::new(x.get().try_into().unwrap()).unwrap(), )); write!(w, "{}", x) @@ -61,17 +60,16 @@ where write!(w, r#""#)?; - let p = p(self.0); match op { - Opcode { path } => write!(w, "opcode @ {}", p(path))?, - IsConst { path } => write!(w, "is-const? @ {}", p(path))?, - IsPowerOfTwo { path } => write!(w, "is-power-of-two? @ {}", p(path))?, - BitWidth { path } => write!(w, "bit-width @ {}", p(path))?, - FitsInNativeWord { path } => write!(w, "fits-in-native-word @ {}", p(path))?, - Eq { path_a, path_b } => write!(w, "{} == {}", p(path_a), p(path_b))?, - IntegerValue { path } => write!(w, "integer-value @ {}", p(path))?, - BooleanValue { path } => write!(w, "boolean-value @ {}", p(path))?, - ConditionCode { path } => write!(w, "condition-code @ {}", p(path))?, + Opcode(id) => write!(w, "opcode $lhs{}", id.0)?, + IsConst(id) => write!(w, "is-const? $lhs{}", id.0)?, + IsPowerOfTwo(id) => write!(w, "is-power-of-two? $lhs{}", id.0)?, + BitWidth(id) => write!(w, "bit-width $lhs{}", id.0)?, + FitsInNativeWord(id) => write!(w, "fits-in-native-word $lhs{}", id.0)?, + Eq(a, b) => write!(w, "$lhs{} == $lhs{}", a.0, b.0)?, + IntegerValue(id) => write!(w, "integer-value $lhs{}", id.0)?, + BooleanValue(id) => write!(w, "boolean-value $lhs{}", id.0)?, + ConditionCode(id) => write!(w, "condition-code $lhs{}", id.0)?, Nop => write!(w, "nop")?, } @@ -91,11 +89,9 @@ where write!(w, r#""#)?; - let p = p(self.0); - for a in actions.iter() { match a { - GetLhs { path } => write!(w, "get-lhs @ {}
", p(path))?, + GetLhs { lhs } => write!(w, "get-lhs $lhs{}
", lhs.0)?, UnaryUnquote { operator, operand } => { write!(w, "eval {:?} $rhs{}
", operator, operand.0)? } @@ -107,7 +103,7 @@ where MakeIntegerConst { value, bit_width: _, - } => write!(w, "make {}
", self.1.lookup(*value))?, + } => write!(w, "make {}
", self.0.lookup(*value))?, MakeBooleanConst { value, bit_width: _, @@ -142,13 +138,3 @@ where writeln!(w, "
") } } - -fn p<'a>(paths: &'a PathInterner) -> impl Fn(&PathId) -> String + 'a { - move |path: &PathId| { - let mut s = vec![]; - for b in paths.lookup(*path).0 { - s.push(b.to_string()); - } - s.join(".") - } -} diff --git a/cranelift/peepmatic/src/lib.rs b/cranelift/peepmatic/src/lib.rs index 86f28f41d8..9b32e06f44 100644 --- a/cranelift/peepmatic/src/lib.rs +++ b/cranelift/peepmatic/src/lib.rs @@ -142,11 +142,10 @@ where sort_lexicographically(&mut opts); let automata = automatize(&opts); - let paths = opts.paths; let integers = opts.integers; if let Ok(path) = std::env::var("PEEPMATIC_DOT") { - let f = dot_fmt::PeepholeDotFmt(&paths, &integers); + let f = dot_fmt::PeepholeDotFmt(&integers); if let Err(e) = automata.write_dot_file(&f, &path) { panic!( "failed to write GraphViz Dot file to PEEPMATIC_DOT={}; error: {}", @@ -155,11 +154,7 @@ where } } - Ok(PeepholeOptimizations { - paths, - integers, - automata, - }) + Ok(PeepholeOptimizations { integers, automata }) } #[cfg(test)] diff --git a/cranelift/peepmatic/src/linear_passes.rs b/cranelift/peepmatic/src/linear_passes.rs index 5eee0d1070..143e1a19c1 100644 --- a/cranelift/peepmatic/src/linear_passes.rs +++ b/cranelift/peepmatic/src/linear_passes.rs @@ -1,9 +1,6 @@ //! Passes over the linear IR. -use peepmatic_runtime::{ - linear, - paths::{PathId, PathInterner}, -}; +use peepmatic_runtime::linear; use std::cmp::Ordering; use std::fmt::Debug; use std::hash::Hash; @@ -33,13 +30,12 @@ where { let linear::Optimizations { ref mut optimizations, - ref paths, .. } = opts; // NB: we *cannot* use an unstable sort here, because we want deterministic // compilation of optimizations to automata. - optimizations.sort_by(|a, b| compare_optimization_generality(paths, a, b)); + optimizations.sort_by(compare_optimization_generality); debug_assert!(is_sorted_by_generality(opts)); } @@ -52,17 +48,14 @@ where { let linear::Optimizations { ref mut optimizations, - ref paths, .. } = opts; // NB: we *cannot* use an unstable sort here, same as above. - optimizations - .sort_by(|a, b| compare_optimizations(paths, a, b, |a_len, b_len| a_len.cmp(&b_len))); + optimizations.sort_by(|a, b| compare_optimizations(a, b, |a_len, b_len| a_len.cmp(&b_len))); } fn compare_optimizations( - paths: &PathInterner, a: &linear::Optimization, b: &linear::Optimization, compare_lengths: impl Fn(usize, usize) -> Ordering, @@ -71,7 +64,7 @@ where TOperator: Copy + Debug + Eq + Hash, { for (a, b) in a.matches.iter().zip(b.matches.iter()) { - let c = compare_match_op_generality(paths, a.operation, b.operation); + let c = compare_match_op_generality(a.operation, b.operation); if c != Ordering::Equal { return c; } @@ -91,86 +84,62 @@ where } fn compare_optimization_generality( - paths: &PathInterner, a: &linear::Optimization, b: &linear::Optimization, ) -> Ordering where TOperator: Copy + Debug + Eq + Hash, { - compare_optimizations(paths, a, b, |a_len, b_len| { + compare_optimizations(a, b, |a_len, b_len| { // If they shared equivalent prefixes, then compare lengths and invert the // result because longer patterns are less general than shorter patterns. a_len.cmp(&b_len).reverse() }) } -fn compare_match_op_generality( - paths: &PathInterner, - a: linear::MatchOp, - b: linear::MatchOp, -) -> Ordering { +fn compare_match_op_generality(a: linear::MatchOp, b: linear::MatchOp) -> Ordering { use linear::MatchOp::*; match (a, b) { - (Opcode { path: a }, Opcode { path: b }) => compare_paths(paths, a, b), - (Opcode { .. }, _) => Ordering::Less, - (_, Opcode { .. }) => Ordering::Greater, + (Opcode(a), Opcode(b)) => a.cmp(&b), + (Opcode(_), _) => Ordering::Less, + (_, Opcode(_)) => Ordering::Greater, - (IntegerValue { path: a }, IntegerValue { path: b }) => compare_paths(paths, a, b), - (IntegerValue { .. }, _) => Ordering::Less, - (_, IntegerValue { .. }) => Ordering::Greater, + (IntegerValue(a), IntegerValue(b)) => a.cmp(&b), + (IntegerValue(_), _) => Ordering::Less, + (_, IntegerValue(_)) => Ordering::Greater, - (BooleanValue { path: a }, BooleanValue { path: b }) => compare_paths(paths, a, b), - (BooleanValue { .. }, _) => Ordering::Less, - (_, BooleanValue { .. }) => Ordering::Greater, + (BooleanValue(a), BooleanValue(b)) => a.cmp(&b), + (BooleanValue(_), _) => Ordering::Less, + (_, BooleanValue(_)) => Ordering::Greater, - (ConditionCode { path: a }, ConditionCode { path: b }) => compare_paths(paths, a, b), - (ConditionCode { .. }, _) => Ordering::Less, - (_, ConditionCode { .. }) => Ordering::Greater, + (ConditionCode(a), ConditionCode(b)) => a.cmp(&b), + (ConditionCode(_), _) => Ordering::Less, + (_, ConditionCode(_)) => Ordering::Greater, - (IsConst { path: a }, IsConst { path: b }) => compare_paths(paths, a, b), - (IsConst { .. }, _) => Ordering::Less, - (_, IsConst { .. }) => Ordering::Greater, + (IsConst(a), IsConst(b)) => a.cmp(&b), + (IsConst(_), _) => Ordering::Less, + (_, IsConst(_)) => Ordering::Greater, - ( - Eq { - path_a: pa1, - path_b: pb1, - }, - Eq { - path_a: pa2, - path_b: pb2, - }, - ) => compare_paths(paths, pa1, pa2).then(compare_paths(paths, pb1, pb2)), - (Eq { .. }, _) => Ordering::Less, - (_, Eq { .. }) => Ordering::Greater, + (Eq(a1, b1), Eq(a2, b2)) => a1.cmp(&a2).then(b1.cmp(&b2)), + (Eq(..), _) => Ordering::Less, + (_, Eq(..)) => Ordering::Greater, - (IsPowerOfTwo { path: a }, IsPowerOfTwo { path: b }) => compare_paths(paths, a, b), - (IsPowerOfTwo { .. }, _) => Ordering::Less, - (_, IsPowerOfTwo { .. }) => Ordering::Greater, + (IsPowerOfTwo(a), IsPowerOfTwo(b)) => a.cmp(&b), + (IsPowerOfTwo(_), _) => Ordering::Less, + (_, IsPowerOfTwo(_)) => Ordering::Greater, - (BitWidth { path: a }, BitWidth { path: b }) => compare_paths(paths, a, b), - (BitWidth { .. }, _) => Ordering::Less, - (_, BitWidth { .. }) => Ordering::Greater, + (BitWidth(a), BitWidth(b)) => a.cmp(&b), + (BitWidth(_), _) => Ordering::Less, + (_, BitWidth(_)) => Ordering::Greater, - (FitsInNativeWord { path: a }, FitsInNativeWord { path: b }) => compare_paths(paths, a, b), - (FitsInNativeWord { .. }, _) => Ordering::Less, - (_, FitsInNativeWord { .. }) => Ordering::Greater, + (FitsInNativeWord(a), FitsInNativeWord(b)) => a.cmp(&b), + (FitsInNativeWord(_), _) => Ordering::Less, + (_, FitsInNativeWord(_)) => Ordering::Greater, (Nop, Nop) => Ordering::Equal, } } -fn compare_paths(paths: &PathInterner, a: PathId, b: PathId) -> Ordering { - if a == b { - Ordering::Equal - } else { - let a = paths.lookup(a); - let b = paths.lookup(b); - a.0.cmp(&b.0) - } -} - /// Are the given optimizations sorted from least to most general? pub(crate) fn is_sorted_by_generality(opts: &linear::Optimizations) -> bool where @@ -178,7 +147,7 @@ where { opts.optimizations .windows(2) - .all(|w| compare_optimization_generality(&opts.paths, &w[0], &w[1]) <= Ordering::Equal) + .all(|w| compare_optimization_generality(&w[0], &w[1]) <= Ordering::Equal) } /// Are the given optimizations sorted lexicographically? @@ -189,8 +158,7 @@ where TOperator: Copy + Debug + Eq + Hash, { opts.optimizations.windows(2).all(|w| { - compare_optimizations(&opts.paths, &w[0], &w[1], |a_len, b_len| a_len.cmp(&b_len)) - <= Ordering::Equal + compare_optimizations(&w[0], &w[1], |a_len, b_len| a_len.cmp(&b_len)) <= Ordering::Equal }) } @@ -309,10 +277,7 @@ where mod tests { use super::*; use crate::ast::*; - use peepmatic_runtime::{ - linear::{bool_to_match_result, Else, MatchOp::*, MatchResult}, - paths::*, - }; + use peepmatic_runtime::linear::{bool_to_match_result, Else, LhsId, MatchOp::*, MatchResult}; use peepmatic_test_operator::TestOperator; use std::num::NonZeroU32; @@ -374,7 +339,6 @@ mod tests { eprintln!("after = {:#?}", before); let linear::Optimizations { - mut paths, mut integers, optimizations, } = opts; @@ -389,9 +353,8 @@ mod tests { }) .collect(); - let mut p = |p: &[u8]| paths.intern(Path::new(&p)); let mut i = |i: u64| Ok(integers.intern(i).into()); - let expected = $make_expected(&mut p, &mut i); + let expected = $make_expected(&mut i); assert_eq!(expected, actual); } @@ -452,7 +415,6 @@ mod tests { eprintln!("after = {:#?}", before); let linear::Optimizations { - mut paths, mut integers, optimizations, } = opts; @@ -467,9 +429,8 @@ mod tests { }) .collect(); - let mut p = |p: &[u8]| paths.intern(Path::new(&p)); let mut i = |i: u64| Ok(integers.intern(i).into()); - let expected = $make_expected(&mut p, &mut i); + let expected = $make_expected(&mut i); assert_eq!(expected, actual); } @@ -488,55 +449,43 @@ mod tests { (=> (iadd $x 42) 0) (=> (iadd $x (iadd $y $z)) 0) ", - |p: &mut dyn FnMut(&[u8]) -> PathId, i: &mut dyn FnMut(u64) -> MatchResult| vec![ + |i: &mut dyn FnMut(u64) -> MatchResult| vec![ vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), - (Opcode { path: p(&[0, 1]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(2)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), (Nop, Err(Else)), ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), - (IntegerValue { path: p(&[0, 1]) }, i(42)) + (IntegerValue(LhsId(2)), i(42)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), - (IsConst { path: p(&[0, 1]) }, bool_to_match_result(true)), - ( - IsPowerOfTwo { path: p(&[0, 1]) }, - bool_to_match_result(true) - ) + (IsConst(LhsId(2)), bool_to_match_result(true)), + (IsPowerOfTwo(LhsId(2)), bool_to_match_result(true)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), - (IsConst { path: p(&[0, 1]) }, bool_to_match_result(true)), - ( - BitWidth { path: p(&[0, 0]) }, - Ok(NonZeroU32::new(32).unwrap()) - ) + (IsConst(LhsId(2)), bool_to_match_result(true)), + (BitWidth(LhsId(1)), Ok(NonZeroU32::new(32).unwrap())) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), - (IsConst { path: p(&[0, 1]) }, bool_to_match_result(true)) + (IsConst(LhsId(2)), bool_to_match_result(true)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), - ( - Eq { - path_a: p(&[0, 1]), - path_b: p(&[0, 0]), - }, - bool_to_match_result(true) - ) + (Eq(LhsId(2), LhsId(1)), bool_to_match_result(true)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), (Nop, Err(Else)), ], @@ -554,36 +503,36 @@ mod tests { (=> (imul 2 $x) (ishl $x 1)) (=> (imul $x 2) (ishl $x 1)) ", - |p: &mut dyn FnMut(&[u8]) -> PathId, i: &mut dyn FnMut(u64) -> MatchResult| vec![ + |i: &mut dyn FnMut(u64) -> MatchResult| vec![ vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Imul.into())), - (IntegerValue { path: p(&[0, 0]) }, i(2)), + (Opcode(LhsId(0)), Ok(TestOperator::Imul.into())), + (IntegerValue(LhsId(1)), i(2)), (Nop, Err(Else)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Imul.into())), - (IntegerValue { path: p(&[0, 0]) }, i(1)), + (Opcode(LhsId(0)), Ok(TestOperator::Imul.into())), + (IntegerValue(LhsId(1)), i(1)), (Nop, Err(Else)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Imul.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Imul.into())), (Nop, Err(Else)), - (IntegerValue { path: p(&[0, 1]) }, i(2)) + (IntegerValue(LhsId(2)), i(2)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Imul.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Imul.into())), (Nop, Err(Else)), - (IntegerValue { path: p(&[0, 1]) }, i(1)) + (IntegerValue(LhsId(2)), i(1)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), - (IntegerValue { path: p(&[0, 0]) }, i(0)), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), + (IntegerValue(LhsId(1)), i(0)), (Nop, Err(Else)) ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Iadd.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Iadd.into())), (Nop, Err(Else)), - (IntegerValue { path: p(&[0, 1]) }, i(0)) + (IntegerValue(LhsId(2)), i(0)) ] ] ); @@ -597,32 +546,20 @@ mod tests { (=> (bor (bor $x $y) $y) (bor $x $y)) ", - |p: &mut dyn FnMut(&[u8]) -> PathId, i: &mut dyn FnMut(u64) -> MatchResult| vec![ + |i: &mut dyn FnMut(u64) -> MatchResult| vec![ vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Bor.into())), - (Opcode { path: p(&[0, 0]) }, Ok(TestOperator::Bor.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Bor.into())), + (Opcode(LhsId(1)), Ok(TestOperator::Bor.into())), (Nop, Err(Else)), + (Eq(LhsId(3), LhsId(2)), bool_to_match_result(true)), (Nop, Err(Else)), - ( - Eq { - path_a: p(&[0, 1]), - path_b: p(&[0, 0, 0]), - }, - bool_to_match_result(true) - ), ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Bor.into())), - (Opcode { path: p(&[0, 0]) }, Ok(TestOperator::Bor.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Bor.into())), + (Opcode(LhsId(1)), Ok(TestOperator::Bor.into())), (Nop, Err(Else)), (Nop, Err(Else)), - ( - Eq { - path_a: p(&[0, 1]), - path_b: p(&[0, 0, 1]), - }, - bool_to_match_result(true) - ), + (Eq(LhsId(4), LhsId(2)), bool_to_match_result(true)), ], ] ); @@ -636,39 +573,21 @@ mod tests { (=> (bor (bor $x $y) $y) (bor $x $y)) ", - |p: &mut dyn FnMut(&[u8]) -> PathId, i: &mut dyn FnMut(u64) -> MatchResult| vec![ + |i: &mut dyn FnMut(u64) -> MatchResult| vec![ vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Bor.into())), - (Opcode { path: p(&[0, 0]) }, Ok(TestOperator::Bor.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Bor.into())), + (Opcode(LhsId(1)), Ok(TestOperator::Bor.into())), (Nop, Err(Else)), + (Eq(LhsId(3), LhsId(2)), bool_to_match_result(true)), (Nop, Err(Else)), - ( - Eq { - path_a: p(&[0, 1]), - path_b: p(&[0, 0, 0]), - }, - bool_to_match_result(true) - ), ], vec![ - (Opcode { path: p(&[0]) }, Ok(TestOperator::Bor.into())), - (Opcode { path: p(&[0, 0]) }, Ok(TestOperator::Bor.into())), + (Opcode(LhsId(0)), Ok(TestOperator::Bor.into())), + (Opcode(LhsId(1)), Ok(TestOperator::Bor.into())), (Nop, Err(Else)), + (Eq(LhsId(3), LhsId(2)), Err(Else)), (Nop, Err(Else)), - ( - Eq { - path_a: p(&[0, 1]), - path_b: p(&[0, 0, 0]), - }, - Err(Else), - ), - ( - Eq { - path_a: p(&[0, 1]), - path_b: p(&[0, 0, 1]), - }, - bool_to_match_result(true) - ), + (Eq(LhsId(4), LhsId(2)), bool_to_match_result(true)), ], ] ); diff --git a/cranelift/peepmatic/src/linearize.rs b/cranelift/peepmatic/src/linearize.rs index 1ab8e9475d..6d205a7c42 100644 --- a/cranelift/peepmatic/src/linearize.rs +++ b/cranelift/peepmatic/src/linearize.rs @@ -49,14 +49,8 @@ //! //! Here are the general principles that linearization should adhere to: //! -//! * Actions should be pushed as early in the optimization's match chain as -//! they can be. This means the tail has fewer side effects, and is therefore -//! more likely to be share-able with other optimizations in the automata that -//! we build. -//! -//! * RHS actions cannot reference matches from the LHS until they've been -//! defined. And finally, an RHS operation's operands must be defined before -//! the RHS operation itself. In general, definitions must come before uses! +//! * Don't match on a subtree until we know it exists. That is, match on +//! parents before matching on children. //! //! * Shorter match chains are better! This means fewer tests when matching //! left-hand sides, and a more-compact, more-cache-friendly automata, and @@ -76,13 +70,15 @@ //! precondition. //! //! Within matching the pattern structure, we emit matching operations in a -//! pre-order traversal of the pattern. This ensures that we've already matched -//! an operation before we consider its operands, and therefore we already know -//! the operands exist. See `PatternPreOrder` for details. +//! breadth-first traversal of the pattern. This ensures that we've already +//! matched an operation before we consider its operands, and therefore we +//! already know the operands exist. It also lets us fuse "what opcode does this +//! instruction have?" and "define temporary variables for this instruction's +//! operands" into a single operation. See `PatternBfs` for details. //! //! As we define the match operations for a pattern, we remember the path where //! each LHS id first occurred. These will later be reused when building the RHS -//! actions. See `LhsIdToPath` for details. +//! actions. See `LhsCanonicalizer` for details. //! //! After we've generated the match operations and expected result of those //! match operations, then we generate the right-hand side actions. The @@ -94,12 +90,8 @@ //! linear optimization translation function. use crate::ast::*; -use crate::traversals::Dfs; -use peepmatic_runtime::{ - integer_interner::IntegerInterner, - linear, - paths::{Path, PathId, PathInterner}, -}; +use crate::traversals::{Bfs, Dfs}; +use peepmatic_runtime::{integer_interner::IntegerInterner, linear}; use std::collections::BTreeMap; use std::convert::TryInto; use std::fmt::Debug; @@ -114,22 +106,19 @@ where TOperator: Copy + Debug + Eq + Hash + Into, { let mut optimizations = vec![]; - let mut paths = PathInterner::new(); let mut integers = IntegerInterner::new(); for opt in &opts.optimizations { - let lin_opt = linearize_optimization(&mut paths, &mut integers, opt); + let lin_opt = linearize_optimization(&mut integers, opt); optimizations.push(lin_opt); } linear::Optimizations { optimizations, - paths, integers, } } /// Translate an AST optimization into a linear optimization! fn linearize_optimization( - paths: &mut PathInterner, integers: &mut IntegerInterner, opt: &Optimization, ) -> linear::Optimization @@ -138,22 +127,21 @@ where { let mut matches: Vec = vec![]; - let mut lhs_id_to_path = LhsIdToPath::new(); + let mut lhs_canonicalizer = LhsCanonicalizer::new(); - // We do a pre-order traversal of the LHS because we don't know whether a - // child actually exists to match on until we've matched its parent, and we - // don't want to emit matching operations on things that might not exist! - let mut patterns = PatternPreOrder::new(&opt.lhs.pattern); - while let Some((path, pattern)) = patterns.next(paths) { + // We do a breadth-first traversal of the LHS because we don't know whether + // a child actually exists to match on until we've matched its parent, and + // we don't want to emit matching operations on things that might not exist! + for (id, pattern) in PatternBfs::new(&opt.lhs.pattern) { // Create the matching parts of an `Match` for this part of the // pattern. - let (operation, expected) = pattern.to_linear_match_op(integers, &lhs_id_to_path, path); + let (operation, expected) = pattern.to_linear_match_op(integers, &lhs_canonicalizer, id); matches.push(linear::Match { operation, expected, }); - lhs_id_to_path.remember_path_to_pattern_ids(pattern, path); + lhs_canonicalizer.remember_linear_id(pattern, id); // Some operations require type ascriptions for us to infer the correct // bit width of their results: `ireduce`, `sextend`, `uextend`, etc. @@ -165,7 +153,7 @@ where let expected = Ok(unsafe { NonZeroU32::new_unchecked(w as u32) }); matches.push(linear::Match { - operation: linear::MatchOp::BitWidth { path }, + operation: linear::MatchOp::BitWidth(id), expected, }); } @@ -175,7 +163,7 @@ where // Now that we've added all the matches for the LHS pattern, add the // matches for its preconditions. for pre in &opt.lhs.preconditions { - matches.push(pre.to_linear_match(&lhs_id_to_path)); + matches.push(pre.to_linear_match(&lhs_canonicalizer)); } assert!(!matches.is_empty()); @@ -183,7 +171,7 @@ where // Finally, generate the RHS-building actions and attach them to the first match. let mut rhs_builder = RhsBuilder::new(&opt.rhs); let mut actions = vec![]; - rhs_builder.add_rhs_build_actions(integers, &lhs_id_to_path, &mut actions); + rhs_builder.add_rhs_build_actions(integers, &lhs_canonicalizer, &mut actions); linear::Optimization { matches, actions } } @@ -222,55 +210,46 @@ where } } -/// A pre-order, depth-first traversal of left-hand side patterns. +/// A breadth-first traversal of left-hand side patterns. /// -/// Keeps track of the path to each pattern, and yields it along side the +/// Keeps track of the `LhsId` of each pattern, and yields it along side the /// pattern AST node. -struct PatternPreOrder<'a, TOperator> { - last_child: Option, - path: Vec, - dfs: Dfs<'a, TOperator>, +/// +/// We use a breadth-first traversal because we fuse "which opcode is this?" and +/// "assign operands to temporaries" into a single linear match operation. A +/// breadth-first traversal aligns with "match this opcode, and on success bind +/// all of its operands to temporaries". Fusing these operations into one is +/// important for attaining similar performance as an open-coded Rust `match` +/// expression, which would also fuse these operations via pattern matching. +struct PatternBfs<'a, TOperator> { + next_id: u16, + bfs: Bfs<'a, TOperator>, } -impl<'a, TOperator> PatternPreOrder<'a, TOperator> +impl<'a, TOperator> PatternBfs<'a, TOperator> where TOperator: Copy + Debug + Eq + Hash, { fn new(pattern: &'a Pattern<'a, TOperator>) -> Self { Self { - last_child: None, - path: vec![], - dfs: Dfs::new(pattern), + next_id: 0, + bfs: Bfs::new(pattern), } } +} - fn next(&mut self, paths: &mut PathInterner) -> Option<(PathId, &'a Pattern<'a, TOperator>)> { - use crate::traversals::TraversalEvent as TE; +impl<'a, TOperator> Iterator for PatternBfs<'a, TOperator> +where + TOperator: 'a + Copy + Debug + Eq + Hash, +{ + type Item = (linear::LhsId, &'a Pattern<'a, TOperator>); + + fn next(&mut self) -> Option { loop { - match self.dfs.next()? { - (TE::Enter, DynAstRef::Pattern(pattern)) => { - let last_child = self.last_child.take(); - self.path.push(match last_child { - None => 0, - Some(c) => { - assert!( - c < std::u8::MAX, - "operators must have less than or equal u8::MAX arity" - ); - c + 1 - } - }); - let path = paths.intern(Path(&self.path)); - return Some((path, pattern)); - } - (TE::Exit, DynAstRef::Pattern(_)) => { - self.last_child = Some( - self.path - .pop() - .expect("should always have a non-empty path during traversal"), - ); - } - _ => {} + if let DynAstRef::Pattern(pattern) = self.bfs.next()? { + let id = linear::LhsId(self.next_id); + self.next_id = self.next_id.checked_add(1).unwrap(); + return Some((id, pattern)); } } } @@ -278,42 +257,37 @@ where /// A map from left-hand side identifiers to the path in the left-hand side /// where they first occurred. -struct LhsIdToPath<'a, TOperator> { - id_to_path: BTreeMap<&'a str, PathId>, +struct LhsCanonicalizer<'a, TOperator> { + id_to_linear: BTreeMap<&'a str, linear::LhsId>, _marker: PhantomData<&'a TOperator>, } -impl<'a, TOperator> LhsIdToPath<'a, TOperator> { - /// Construct a new, empty `LhsIdToPath`. +impl<'a, TOperator> LhsCanonicalizer<'a, TOperator> { + /// Construct a new, empty `LhsCanonicalizer`. fn new() -> Self { Self { - id_to_path: Default::default(), + id_to_linear: Default::default(), _marker: PhantomData, } } - /// Have we already seen the given identifier? - fn get_first_occurrence(&self, id: &Id) -> Option { - self.id_to_path.get(id.name()).copied() + /// Get the canonical `linear::LhsId` for the given variable, if any. + fn get(&self, id: &Id) -> Option { + self.id_to_linear.get(id.name()).copied() } - /// Get the path within the left-hand side pattern where we first saw the - /// given AST id. - /// - /// ## Panics - /// - /// Panics if the given AST id has not already been canonicalized. - fn unwrap_first_occurrence(&self, id: &Id) -> PathId { - self.id_to_path[id.name()] - } - - /// Remember the path to any LHS ids used in the given pattern. - fn remember_path_to_pattern_ids(&mut self, pattern: &'a Pattern<'a, TOperator>, path: PathId) { + /// Remember the canonical `linear::LhsId` for any variables or constants + /// used in the given pattern. + fn remember_linear_id( + &mut self, + pattern: &'a Pattern<'a, TOperator>, + linear_id: linear::LhsId, + ) { match pattern { // If this is the first time we've seen an identifier defined on the // left-hand side, remember it. Pattern::Variable(Variable { id, .. }) | Pattern::Constant(Constant { id, .. }) => { - self.id_to_path.entry(id.name()).or_insert(path); + self.id_to_linear.entry(id.name()).or_insert(linear_id); } _ => {} } @@ -366,11 +340,11 @@ where fn add_rhs_build_actions( &mut self, integers: &mut IntegerInterner, - lhs_id_to_path: &LhsIdToPath, + lhs_canonicalizer: &LhsCanonicalizer, actions: &mut Vec>, ) { while let Some(rhs) = self.rhs_post_order.next() { - actions.push(self.rhs_to_linear_action(integers, lhs_id_to_path, rhs)); + actions.push(self.rhs_to_linear_action(integers, lhs_canonicalizer, rhs)); let id = linear::RhsId(self.rhs_span_to_id.len().try_into().unwrap()); self.rhs_span_to_id.insert(rhs.span(), id); } @@ -379,7 +353,7 @@ where fn rhs_to_linear_action( &self, integers: &mut IntegerInterner, - lhs_id_to_path: &LhsIdToPath, + lhs_canonicalizer: &LhsCanonicalizer, rhs: &Rhs, ) -> linear::Action { match rhs { @@ -401,8 +375,8 @@ where linear::Action::MakeConditionCode { cc: *cc } } Rhs::Variable(Variable { id, .. }) | Rhs::Constant(Constant { id, .. }) => { - let path = lhs_id_to_path.unwrap_first_occurrence(id); - linear::Action::GetLhs { path } + let lhs = lhs_canonicalizer.get(id).unwrap(); + linear::Action::GetLhs { lhs } } Rhs::Unquote(unq) => match unq.operands.len() { 1 => linear::Action::UnaryUnquote { @@ -461,16 +435,16 @@ where TOperator: Copy + Debug + Eq + Hash + Into, { /// Convert this precondition into a `linear::Match`. - fn to_linear_match(&self, lhs_id_to_path: &LhsIdToPath) -> linear::Match { + fn to_linear_match(&self, lhs_canonicalizer: &LhsCanonicalizer) -> linear::Match { match self.constraint { Constraint::IsPowerOfTwo => { let id = match &self.operands[0] { ConstraintOperand::Constant(Constant { id, .. }) => id, _ => unreachable!("checked in verification"), }; - let path = lhs_id_to_path.unwrap_first_occurrence(&id); + let id = lhs_canonicalizer.get(&id).unwrap(); linear::Match { - operation: linear::MatchOp::IsPowerOfTwo { path }, + operation: linear::MatchOp::IsPowerOfTwo(id), expected: linear::bool_to_match_result(true), } } @@ -480,7 +454,7 @@ where | ConstraintOperand::Variable(Variable { id, .. }) => id, _ => unreachable!("checked in verification"), }; - let path = lhs_id_to_path.unwrap_first_occurrence(&id); + let id = lhs_canonicalizer.get(&id).unwrap(); let width = match &self.operands[1] { ConstraintOperand::ValueLiteral(ValueLiteral::Integer(Integer { @@ -495,7 +469,7 @@ where let expected = Ok(unsafe { NonZeroU32::new_unchecked(width as u32) }); linear::Match { - operation: linear::MatchOp::BitWidth { path }, + operation: linear::MatchOp::BitWidth(id), expected, } } @@ -505,9 +479,9 @@ where | ConstraintOperand::Variable(Variable { id, .. }) => id, _ => unreachable!("checked in verification"), }; - let path = lhs_id_to_path.unwrap_first_occurrence(&id); + let id = lhs_canonicalizer.get(&id).unwrap(); linear::Match { - operation: linear::MatchOp::FitsInNativeWord { path }, + operation: linear::MatchOp::FitsInNativeWord(id), expected: linear::bool_to_match_result(true), } } @@ -527,52 +501,46 @@ where fn to_linear_match_op( &self, integers: &mut IntegerInterner, - lhs_id_to_path: &LhsIdToPath, - path: PathId, + lhs_canonicalizer: &LhsCanonicalizer, + linear_lhs_id: linear::LhsId, ) -> (linear::MatchOp, linear::MatchResult) where TOperator: Into, { match self { Pattern::ValueLiteral(ValueLiteral::Integer(Integer { value, .. })) => ( - linear::MatchOp::IntegerValue { path }, + linear::MatchOp::IntegerValue(linear_lhs_id), Ok(integers.intern(*value as u64).into()), ), Pattern::ValueLiteral(ValueLiteral::Boolean(Boolean { value, .. })) => ( - linear::MatchOp::BooleanValue { path }, + linear::MatchOp::BooleanValue(linear_lhs_id), linear::bool_to_match_result(*value), ), Pattern::ValueLiteral(ValueLiteral::ConditionCode(ConditionCode { cc, .. })) => { let cc = *cc as u32; debug_assert!(cc != 0, "no `ConditionCode` variants are zero"); let expected = Ok(unsafe { NonZeroU32::new_unchecked(cc) }); - (linear::MatchOp::ConditionCode { path }, expected) + (linear::MatchOp::ConditionCode(linear_lhs_id), expected) } Pattern::Constant(Constant { id, .. }) => { - if let Some(path_b) = lhs_id_to_path.get_first_occurrence(id) { - debug_assert!(path != path_b); + if let Some(linear_lhs_id2) = lhs_canonicalizer.get(id) { + debug_assert!(linear_lhs_id != linear_lhs_id2); ( - linear::MatchOp::Eq { - path_a: path, - path_b, - }, + linear::MatchOp::Eq(linear_lhs_id, linear_lhs_id2), linear::bool_to_match_result(true), ) } else { ( - linear::MatchOp::IsConst { path }, + linear::MatchOp::IsConst(linear_lhs_id), linear::bool_to_match_result(true), ) } } Pattern::Variable(Variable { id, .. }) => { - if let Some(path_b) = lhs_id_to_path.get_first_occurrence(id) { - debug_assert!(path != path_b); + if let Some(linear_lhs_id2) = lhs_canonicalizer.get(id) { + debug_assert!(linear_lhs_id != linear_lhs_id2); ( - linear::MatchOp::Eq { - path_a: path, - path_b, - }, + linear::MatchOp::Eq(linear_lhs_id, linear_lhs_id2), linear::bool_to_match_result(true), ) } else { @@ -581,7 +549,7 @@ where } Pattern::Operation(op) => { let expected = Ok(op.operator.into()); - (linear::MatchOp::Opcode { path }, expected) + (linear::MatchOp::Opcode(linear_lhs_id), expected) } } } @@ -592,7 +560,7 @@ mod tests { use super::*; use peepmatic_runtime::{ integer_interner::IntegerId, - linear::{bool_to_match_result, Action::*, Else, MatchOp::*}, + linear::{bool_to_match_result, Action::*, Else, LhsId, MatchOp::*, RhsId}, r#type::{BitWidth, Kind, Type}, unquote::UnquoteOperator, }; @@ -628,20 +596,16 @@ mod tests { panic!("should verify OK") } - let mut paths = PathInterner::new(); - let mut p = |p: &[u8]| paths.intern(Path::new(&p)); - let mut integers = IntegerInterner::new(); let mut i = |i: u64| integers.intern(i); #[allow(unused_variables)] let make_expected: fn( - &mut dyn FnMut(&[u8]) -> PathId, &mut dyn FnMut(u64) -> IntegerId, ) -> (Vec, Vec>) = $make_expected; - let expected = make_expected(&mut p, &mut i); - let actual = linearize_optimization(&mut paths, &mut integers, &opts.optimizations[0]); + let expected = make_expected(&mut i); + let actual = linearize_optimization(&mut integers, &opts.optimizations[0]); assert_eq!(expected.0, actual.matches); assert_eq!(expected.1, actual.actions); } @@ -655,10 +619,10 @@ mod tests { (is-power-of-two $C)) (ishl $x $(log2 $C))) ", - |p, i| ( + |i| ( vec![ linear::Match { - operation: Opcode { path: p(&[0]) }, + operation: Opcode(LhsId(0)), expected: Ok(TestOperator::Imul.into()), }, linear::Match { @@ -666,20 +630,20 @@ mod tests { expected: Err(Else), }, linear::Match { - operation: IsConst { path: p(&[0, 1]) }, + operation: IsConst(LhsId(2)), expected: bool_to_match_result(true), }, linear::Match { - operation: IsPowerOfTwo { path: p(&[0, 1]) }, + operation: IsPowerOfTwo(LhsId(2)), expected: bool_to_match_result(true), }, ], vec![ - GetLhs { path: p(&[0, 0]) }, - GetLhs { path: p(&[0, 1]) }, + GetLhs { lhs: LhsId(1) }, + GetLhs { lhs: LhsId(2) }, UnaryUnquote { operator: UnquoteOperator::Log2, - operand: linear::RhsId(1) + operand: RhsId(1) }, MakeBinaryInst { operator: TestOperator::Ishl, @@ -687,31 +651,31 @@ mod tests { kind: Kind::Int, bit_width: BitWidth::Polymorphic }, - operands: [linear::RhsId(0), linear::RhsId(2)] + operands: [RhsId(0), RhsId(2)] } ], ), ); - linearizes_to!(variable_pattern_id_optimization, "(=> $x $x)", |p, i| ( + linearizes_to!(variable_pattern_id_optimization, "(=> $x $x)", |i| ( vec![linear::Match { operation: Nop, expected: Err(Else), }], - vec![GetLhs { path: p(&[0]) }], + vec![GetLhs { lhs: LhsId(0) }], )); - linearizes_to!(constant_pattern_id_optimization, "(=> $C $C)", |p, i| ( + linearizes_to!(constant_pattern_id_optimization, "(=> $C $C)", |i| ( vec![linear::Match { - operation: IsConst { path: p(&[0]) }, + operation: IsConst(LhsId(0)), expected: bool_to_match_result(true), }], - vec![GetLhs { path: p(&[0]) }], + vec![GetLhs { lhs: LhsId(0) }], )); - linearizes_to!(boolean_literal_id_optimization, "(=> true true)", |p, i| ( + linearizes_to!(boolean_literal_id_optimization, "(=> true true)", |i| ( vec![linear::Match { - operation: BooleanValue { path: p(&[0]) }, + operation: BooleanValue(LhsId(0)), expected: bool_to_match_result(true), }], vec![MakeBooleanConst { @@ -720,9 +684,9 @@ mod tests { }], )); - linearizes_to!(number_literal_id_optimization, "(=> 5 5)", |p, i| ( + linearizes_to!(number_literal_id_optimization, "(=> 5 5)", |i| ( vec![linear::Match { - operation: IntegerValue { path: p(&[0]) }, + operation: IntegerValue(LhsId(0)), expected: Ok(i(5).into()), }], vec![MakeIntegerConst { @@ -734,26 +698,26 @@ mod tests { linearizes_to!( operation_id_optimization, "(=> (iconst $C) (iconst $C))", - |p, i| ( + |i| ( vec![ linear::Match { - operation: Opcode { path: p(&[0]) }, + operation: Opcode(LhsId(0)), expected: Ok(TestOperator::Iconst.into()), }, linear::Match { - operation: IsConst { path: p(&[0, 0]) }, + operation: IsConst(LhsId(1)), expected: bool_to_match_result(true), }, ], vec![ - GetLhs { path: p(&[0, 0]) }, + GetLhs { lhs: LhsId(1) }, MakeUnaryInst { operator: TestOperator::Iconst, r#type: Type { kind: Kind::Int, bit_width: BitWidth::Polymorphic, }, - operand: linear::RhsId(0), + operand: RhsId(0), }, ], ), @@ -762,10 +726,10 @@ mod tests { linearizes_to!( redundant_bor, "(=> (bor $x (bor $x $y)) (bor $x $y))", - |p, i| ( + |i| ( vec![ linear::Match { - operation: Opcode { path: p(&[0]) }, + operation: Opcode(LhsId(0)), expected: Ok(TestOperator::Bor.into()), }, linear::Match { @@ -773,14 +737,11 @@ mod tests { expected: Err(Else), }, linear::Match { - operation: Opcode { path: p(&[0, 1]) }, + operation: Opcode(LhsId(2)), expected: Ok(TestOperator::Bor.into()), }, linear::Match { - operation: Eq { - path_a: p(&[0, 1, 0]), - path_b: p(&[0, 0]), - }, + operation: Eq(LhsId(3), LhsId(1)), expected: bool_to_match_result(true), }, linear::Match { @@ -789,17 +750,15 @@ mod tests { }, ], vec![ - GetLhs { path: p(&[0, 0]) }, - GetLhs { - path: p(&[0, 1, 1]), - }, + GetLhs { lhs: LhsId(1) }, + GetLhs { lhs: LhsId(4) }, MakeBinaryInst { operator: TestOperator::Bor, r#type: Type { kind: Kind::Int, bit_width: BitWidth::Polymorphic, }, - operands: [linear::RhsId(0), linear::RhsId(1)], + operands: [RhsId(0), RhsId(1)], }, ], ), @@ -809,9 +768,9 @@ mod tests { large_integers, // u64::MAX "(=> 18446744073709551615 0)", - |p, i| ( + |i| ( vec![linear::Match { - operation: IntegerValue { path: p(&[0]) }, + operation: IntegerValue(LhsId(0)), expected: Ok(i(std::u64::MAX).into()), }], vec![MakeIntegerConst { @@ -824,14 +783,14 @@ mod tests { linearizes_to!( ireduce_with_type_ascription, "(=> (ireduce{i32} $x) 0)", - |p, i| ( + |i| ( vec![ linear::Match { - operation: Opcode { path: p(&[0]) }, + operation: Opcode(LhsId(0)), expected: Ok(TestOperator::Ireduce.into()), }, linear::Match { - operation: linear::MatchOp::BitWidth { path: p(&[0]) }, + operation: linear::MatchOp::BitWidth(LhsId(0)), expected: Ok(NonZeroU32::new(32).unwrap()), }, linear::Match { diff --git a/cranelift/peepmatic/src/traversals.rs b/cranelift/peepmatic/src/traversals.rs index f0e147d1f1..1477f6b961 100644 --- a/cranelift/peepmatic/src/traversals.rs +++ b/cranelift/peepmatic/src/traversals.rs @@ -1,6 +1,7 @@ //! Traversals over the AST. use crate::ast::*; +use std::collections::VecDeque; use std::fmt::Debug; use std::hash::Hash; @@ -103,6 +104,44 @@ where } } +/// A breadth-first traversal of an AST +/// +/// This implementation is not recursive, and exposes an `Iterator` interface +/// that yields `DynAstRef` items. +/// +/// The traversal can walk a whole set of `Optimization`s or just a subtree of +/// the AST, because the `new` constructor takes anything that can convert into +/// a `DynAstRef`. +#[derive(Clone, Debug)] +pub struct Bfs<'a, TOperator> { + queue: VecDeque>, +} + +impl<'a, TOperator> Bfs<'a, TOperator> +where + TOperator: Copy + Debug + Eq + Hash, +{ + /// Construct a new `Bfs` traversal starting at the given `start` AST node. + pub fn new(start: impl Into>) -> Self { + let mut queue = VecDeque::with_capacity(16); + queue.push_back(start.into()); + Bfs { queue } + } +} + +impl<'a, TOperator> Iterator for Bfs<'a, TOperator> +where + TOperator: Copy + Debug + Eq + Hash, +{ + type Item = DynAstRef<'a, TOperator>; + + fn next(&mut self) -> Option { + let node = self.queue.pop_front()?; + node.child_nodes(&mut self.queue); + Some(node) + } +} + #[cfg(test)] mod tests { use super::*; From 122c67d90a23188048f07fde853857d0f736d614 Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Fri, 2 Oct 2020 08:46:03 -0700 Subject: [PATCH 4/4] peepmatic: Update example automata image The linear IR that the automata uses has changed, so the image needs to be updated to reflect that. --- .../peepmatic/examples/redundant-bor.png | Bin 225727 -> 258513 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cranelift/peepmatic/examples/redundant-bor.png b/cranelift/peepmatic/examples/redundant-bor.png index dab873e6cfec627af608c2d74acd0af76d80fde0..d7b2641a61c160949bcc1c3a76c86fa31620be76 100644 GIT binary patch literal 258513 zcmeFacUYC@_BObUQ4{O&SP-RXL=jL>igbt-u+WPj%>oE0AiaYoc11-HL5hWr0#c-x zNGyPWQUsKyNJl_A(&k<}5sbfczL`H}=KEu2pX*#9Wb^L#eV$eBb+3Cp`+~Bf+=96) z=Q0?K1q$*zRT+%=HVnqB(Vu4HH#1Hz7s5YgAKojslQBvEyOR}hgTYwMP}sRm-7&DU z*6DyoQ{Cj}lEZIv>*inl_d;#8yl9Td#U0$-OC@)steQIDdFJ!cGVc@ODd82lE9T(l=y3@P6 zvw9X~#g4aa-B%_&3pex6muLItcSRNK|NJHWTaElrc#iL1>T92{eg8WKqvHJLIsfCg zzl!|wa>oDot@4%s&s=uS?V|O0n*(E`)FRT;A9m>M*>iFBB8~?KEweQ0>gwjspRfMz z@ri-A=5ahiLS<3*?d4Hk^?S#^48$D^nmK1->%?fcmc9LBuD0?hHRs9kp=GSBQ2`?6 z1<#+$rPRA;%wEVA`RQGXpR;>s)gzsBThkFyvccR_-)+S?A(P@`9d90bhswBpc_F+% zYxu(@{;u{fA{I4b$>x=cB4*{vy1IdaLP7(h-8tq@e*gK)hf4ys&)FR|Y}xW!WfK2V zAiQ71vTp3+o9f3WZof@3z28-vQCMGZ;4SRje{2D#jIP_4{?{e4lMiliE1CUqde&RK zO((_Tp)a47MA7GuHC-qhY#OdDSYgXOLvx5hC?_1kVJKLb$e|_ z%9p`UF^BTbir20ZJbHe&7hBY|YyTSg@+Dd=Lh%c3KwVe&!ImS>#45HPuTnN}{d{J< zQt$(#!kfMsoOC0P_znhj#BV3#$I6cxRCdwXeRSkJ1oPt05-btmuKBJ+Xv3ay$&xVERwcRrRHimfQv zJpXyJ$E5o}N2SuKQ>W(6ovW&@?n5^!Hx3hHPsV@HvbIi0xBtW|D=UlDYwybF*2Ie6 zm)W}YjY|EaBXZA&VS#Lo$z~P2A|AMne=k|WF2cdVQPH=Zw>6_X`-W{-=%u~l1~;x< zv-%_8=_MA)argOouO1zFp5!)a9~Ks-_eP>+lR>twcYkl8fS*&&u1m|kLt%#cgMqXt zf#0o-mBQ=SuLbw3!N9I_U0Erz=lF!$%5Ul#{Su2aAg<~+zQEiDzc?>w-8T|#}4?3k6m2zKTM*Yg^B z!dSLL3+bOzFRkOPukM=FXJt{Lhh>L4;D+X@RxP9Zs{h>OS5|#S!{i`!ZGd+N!D_esb2mGCwcU>I9zJd7wS)!-vC9pFby0@p6&7%Hhj3>&G8; ztta4=(IzFq?WJLt>O3aL=e-#j9W8_{{FmE#aN^x##SqKv5n~0T5ROC1Iu-YJ&5L*> z*`29o*YT!e@YA~(;iWyFQtElvuHAtE6qg`Ua36N*T|8?8f0Jv`h{?n;Eb!b#i~Mfi zz8$Upx(zX!G1ZW&xr zd;Rzo8zU5hRBdgO+AHJYhKC)oc&X)y2)o{)i6$lbRulK`{Q_^>5v>&$EHg3OxOcXA zv20^wqfNd9?Tpddf2OWGdxE5#RKrbgu9W5cAja8#jZ0KiblLLdH=~PQzT9YIk++#Q zs<3?kp`tJ^Z%3h@K+dt+p?Z(F@^bZouG)hORtj6Cx4eIU7xrOZ5v`HlS1dVzu*54a zUL6$o5x`ryHXOM|M)%6AZz^7HcYw$w$ctgZeus5*cMC%C_Cizsf(lkdC8`Kxb1 zNr}KR!Qr-u5TAg6=;or^l4pKECb_>>&P%L<15Pk!5eIJ2z`!7)NAB3MNSWb=-}ZE7 zo7J3r&K|J&(CLZ3kjZ0RHEBj~J~lU-l}D-|E|m7SmF=w^>g!X>avnIESl!>`XHa0A z$Ri=41G};-7e4V;-P?A!=e=O1<3NQL+?W5MPV%1RmzolsWhY0)W&g{)&i(19S9=Ar zLPJBjnm&Hqux{P1-)1lH_Ve>IetGM?`nxO_hp_N)vo{a4C2X26Q((HnCSKas?nA51mMvW>?;Rj&84Jrg z0dFi9n#aOl{^x}y$wr0CVZ8a9=SOrP@ABC^go7wZ3}yU4wkq>o>JY0szBT!HwW@a# zLL}?iyU6_o7AbHyS|IO_jg9wlp95mT*VI7A~GY zuZ&Qabh2@`T~|$Y)Yh$AHFum_SkV!eLpQg8L+ZeNxvQG;^5+$UrFil-Q>c*}$Cgz* z&=wLgE!_zSQFfVCs613*$@6j8Il^9=}RN##cXFfw8hc0PRSE||G=KPB5?@)5+^_W zzK~OJmxljoPJrk`AgVE@4m|MNq7(`j1QS{7dye+T#X}J zzYFd3SDx)c|3ALQI{a_024eZPY}q0>Kkp=>Z^!9mB#Rq|R$RPrA?n#efvyTI1Ncs2 zL8gO9=O%7$xxVHiwWCKv+uuCoyY%$lJIfrsBhN0Y*xTEO#lncKvc9ittfJs$aQ4W^ z4O%Iu3ww$syIb?QL(0SV-?r^#oZR5Hz~@HrYJl!Gn!jDL>&l72hQpMr!Pz z&z=E=_=iXJ^jK-7*pNqvoOmk?ytT(N^Yhtfms#(hKmSvazmQy7TAEjS%puFIxA$L_ zok)EXs~3YH(e~0`NGHSoA$%{wzr{~%KhDGk%^@R?O`rMT@<8*kG)zQ78;s*hY!YVK9BpmqL9CB_;ce* zDaZKJr%x~a*T3#?2Rl+s^+SZ~`D4!B3XlHRa)bqnjBiw!Y3$tj`Y3}3hRX6wy^7Aiol&#rRD@u-Erut+gSa!RN^zO4FYXnXa$ z6DhUp6{0m_G|!A;|5EEt3jVWNZMcV|SN`yz=%=bjd0QS^z2A;(;G->T+p1g?B3o~| zam|`-($4*_T0%TxQADYm<}_VLvUTZ7lS9<<4n_2Ad-R+`?ZAOsI!VXgN3Iev^J#wR z-#8oyr~~i;RK_PDpak@xm1*znoE~ZuVUuK9w)^DClf8q3nvRaCPxA8kQWM+Xy#u`F zQb6_hz^VjWRVk_X&su?@TYh@hyrd(~7Xk_9TcmVgzxT+?zq+~U;GPQiktV+YS&!_M zB4(j+ITJd#H)KhloBVpbz_^Ro?v4x%-RXTatDo+3Q zTe4H1aZ^i+)-(G+_2+euPrM7qP8`eioB=O77}kvl+2Fk6pJgAzN+m`s?k1Pp@cVOQ zBCwC=UhE=91wN|DmzHnx=A!%z_#1~rwQR+T$a9?T2MGWF@!Onao0ej;Pm|V37PUH$ z9zB}7aG@qrJG%=oM2ec8q2V2ZK>T{?FDfgwwr$(i{`&s8?2+bG+8b|LKm63x6xLMe zXFk+bYxe5SspXq=LigX^+6Fhb`%y2pIcpr%7?qURig2gCW{p(%kLRix-^KRaU7zZ6 z47$3y%-%hISmuaV)LUtnL3s(5)jd5u*D^9PYHDf#slpX*tXJ?xlGE+dzjyE6(G_RQ zk{!D1tV9Xs&Kh!}Nu2Gnnm}sv~jPT-=jrH;IQ617tOTn5(!jgJFe}0Ws zx5I8|=uiPI`oni6i038p6)sc29U!5C{CpLZ#rPAgX!}=pw(;`wYXY}`Tex%i^8BWz zCexPUpa3kAghQ8ZJ1a^Bq!%^WiQ)U+H*RPE@0n(anw86A!2`CQ2te%N6^50b0<4WY zGmnLG1?taN6XT=FD03A`2}6p+)ml_ip^qAj2Zfin?O>;N^(T8b1X*t`S=k)bk~A~R z4Es;2_-LbKon+Ip^%eNT?dCu-HRtCiKCtQfCidgUVGjy=k53#NN7bU(NJ#{R&=G0W z2RhlVX-CF5Cx_21-*`Z|Sr;Azq_#8a^QoD0+HWYyoLq^}*CK5G=E2;7Y{a7EW3RV+ zj78U!Dak%W)nnkDbmAQo1q_u)oY zR&3c`?>408Z=N~Ym9bLH>JBQ7btvi{4jC5(n7+QZi*nJK7J3X-Rc~VP&MsJmk7@-| zr8zk{WE!a#?*t5 zDo;ImWT5r+4l2>T*d>LnKguhRyXw`{4m>R?DyrB-e}3^hdWE4|3WiD8run66BQ`Dv z_S$*cE7subq11GO>*`zbg!h+K?8lGaykafpEM$8H8Z!))UwhB{yl8`*?Ah~I+|kl^ z+O_=B(~3`ohbz6Szjt%GMs&$>Q7wmWuJ-qjR%_S%6W8C_$HT)zz=A3@Fo1lUH!Gv^ zsxXhs3V-=>pH|8oUFCiIF3-=i(gi$9H~fU0gXntr@Zso3d6!&J4~W1(1-tdGxCrf6 zLv|p*=j9b!nv743W%=&jd<6e5(V-P5K1isjt8?XTMgVSV*Hm7}={|h-u|;ir`&POv z&v%yO_-{Acs1Yvhe*)pFTZAir&D>yXV4%3zUMovWE0O)n#RDH?Kav z)edy7w?xk18@Y<}SFZS)27uan|NcG9Az>+iB#CaSX6!2&$~|4rfVQf6%-b#0U`#w4Qf-siM8lHO;8l5qy6qV4(tE&NvPx8 zK&a{UUaAg~uv4u~w;L!Dtv^rF%!kt9cVPDQG07fTujM#3KtM$;*(fvGDKu;LY%}B< z?CNWHR1$U@;deio9|az zI67;vkTw*!SBcs?0L8bro=9^1d>Cbtav-wbgVW#8OeDW8`}evrILe> zU4|?o(sOfv1#XbjOSioq7Z-=3uKd2-BDcOG(S!pVn{?g*tb*OFL<5MZqfI(V^0>QF z@M0Z5rR(l@k#z2lq$uE6P)}I}ZdKJsXnl)|qma7~cAW=orHYCQ3i2|nrSjc0J{L;@nmUh< zN8zTlA_d3`SikpzAW4UtTyVNi-pTJ$Ed99b+DgNC52_j(8u~Z>@y8$Dq5b{+yn3A8 zrU6F5xvFn2tZR9G@zNy?U0vPgw)KA_a$mbAzaLr=Hduu)!7gU?E7G+JiY{+&?{ZM4 z1Ub-^id9~u8KZ$pR0B=|dg>vl=ZY9DCG<}Uii`P&GJVrh5G2M&>nGnJ$h0htG_6hu z<1z&wA~=5sd~B0L4h6XHkuO`Y`xjFuN5^9$y-h3+M^PL3qV%oHa*5gY+ib6sqM|8+ zIgug${@Tq_MzemL==_*}!|3en;&Wof=Om)d+~iYg?Qf%T=Mxy%DVz;Nu9}Qm!rH+> z3juBIpPyU!BqZLpv5KbH7#L*)UX#OvM~xsm+WzqcmPm!h6K<2S>rW4>pc)x?GEac+ z18eU8_;~d_s?Of7^#0i09TzO^(hk=GoaC{qU*;0?lCr$T(eKmo{~7BY)J4XR&~h%hh)ooePXDw6BnqCtOo2P%nO@bY?d zZOxAUyhXB+2U9FiRmcS%R{|4of)gBdx?(NxAiW{$pKePkIdaY|;QG0z(4k8&Y zqZ#WYY1?`Se3^9bi?wqXECBXJWv+q*BYfo9d^cF0k&MHp&IRynBcYe8#tm5U)ATD= z2Osqci5Q)!L*QWrkH1Y)06Rg3B@AL8d}{6a3l~)6<>kWy_o12K8B=K7^o z(Mi(8UaF^9=z$a5fo7TymtA*V?bBL41MoV!wbYAt0 ze{1U(u$wUl@%~?z2|#db*J!@ePDVWPGjP`ieB^Kc>Hm!ai&1$U+}8`^ z#I)n%L@}TxOsRGDf|XR7*k{xlx#`7f8MtW>J=h~PO_~25yJvJLXYwJOIUiyaFtX0g z{w6-i0qe~53X*$@6$8cY!cai&=>s*uG*O5}_1ocL`TfqtQ2G1KOE(8bVcYs@4K?=+ zJjRp3S4N-XaDGv7Laz)(e~d}6)3eXwva$wPP7P>i0FR9x9nh_+tuRH9AhtW^9j<59 zaP*&z^#4&G6209ZVl-NGi)$TxXX%GD zuB?0w3FkgRTk(=R+kQjIPUe!DDn`vdq$kQJNbc58-B6d9=6kP8Z@PI9@ZkY&&>Z*{ zd2FSOYbp}h85em)Ma^>y*{Q9H%zAU~Hu)CC^jlI+2~VCpLEn1mzyEy?e2x;roNaXC zyHDPst*yr*J}+dKXbrz@p$c2VD|T2~_k#JSAaEACSH9mj-3Fw24N9S=5JtVtbV@|I zwhol;{!$Y5AjK(oL+#Yj--!-Ivh#o$sQwOwa|#~(sfwtXork&}0(et_g$!w5vr57? zvbiM0AUYeh8c{+O0B>`<%Y^r{OFOG08Pcb5I5x~+J^MbjGD3+HIl5RS1fT(AnrcU7 zTqWrWP!G&Hx1-F5pUlD;9{JNH- z{3QkMmSqon|;O=7lzi*Ck6+wmcf$rP@(S9f>p z*}K=qb)wO97O^=`&djs>_+oL8w2LO}9JQ-2!YdI{^I{)iIf>FjE-A&62A*a^M=K0# z7l-w1qea%#yor8!SlC{_0<&Z@a2KGmd4?v=F5=|R+f3X$aJwlubE4yfp`eo644Kjp}mg0Ehu0LVkJ>xUnHphT^JlHd*(kEG=2#rpr% zYLYk%)f$CX?@&mN_;5#Hv3!6k@2=ss-5to*3 z+jbAG2G@=loocZF!a7`*9qY+^n`RS%iar!Yi-h8ws7Sy}YKBNS_T0fP@+e%qdex6B zYoz%$b>O%Z(2e8t7<;tUvhD#IC_LzJp=lS^Y!3BA_&)y+!>&WM4jqt?Wq-&{(^{Rn@Uk;2DPL0M0tt2 zIjHUc#?j4@i&E19D&s=al__x0=CxI;*mm~6x^ZqviBf4=&vxyQzTRFg1wxK!xecI6 z+lnetaoa)#P|nAr(rj#OsPTndIF9DNQE+*@NePESOSV||`}b?mjzHHnA2$L2_vT_p z6sj4e9JBVA)!6V!XgT&xj^<3p;E4}%D+T*-u}e8Bd)rp(IfzSlfb>JYq#g$}WJbl4 ze=bq-$w-mCbpHG+)Gop%#cWiq!F~~vR6$s|qbW8|27mecxpR_k*=^ysKca61Y$0|f z2SqE@#2~VOSC!g8s%wJWin?Lx&hLF!WW_rJ*o3!V%Eo%?3)(4gFZ zt5%K99^y|q*Y`e97VY{r>AkA|%QjSbKueyOM-p}kI6m5a{EJ^_jG!)G_k8pl&31m* zZ;U+*8sP?7b9LbQp?^I9d-VKP0|PcTZ=0AemDp?ZxU)sNROg;*|2F-(aF+_e7X<++rvPDqkQt@ zBg94`#Ep!Mco6F${<#qm(XuYYqw$L9QVx#TN`068NE;597yY*~6s4yYI3d0;k1}Dq z_HrKNkloP#g>yxr!{!}IT3c@t8BuOSzxfL~H3Kl;*4Eee+abMMo2jbNX`ewk3%N=W zYzk9j2ia2xa^y8Gu#Xz1i?Bc>a$JrGmE|%N4Tv*3)LmH`ws)NZlzP_XbtoN3A9isW zpDifevm3a!hnok}YZ_YH_oQcCa3=9ytwOUf$9IUp{tjJx6Efc2wG4 zqrgmP3!m^EGzDxAYSc%UlKrliEFU_tp?k!W z8+BYvy!+c@;>`cnfm0(c1S@$PRRp9-Q+^-iGsGo$;k5)%{czVw^I$bHSn zWoK`mKox?Ds=>RYrKJTjoVc2f*+2e>U!wBOH%o@I@UC9{D?avb!lS9XyL*M?qzwuc zu-~X6VjWM=?O2KYhhAvqCD2s>0tZM&3hKcpI5-wyH%RQ{laqwV+>0U46*>2pw;+SI z{v`b4?AbKJ0UQIZh7YJIB2oVJuhm#4PEJm00|8(F98ybQQY*hExZj1bTrDBKAnza*j=|*P6y!66$=Rt6f{Q7?mA_ETm^gmlXQq zYj7xy4EqzrbAo^dlXUakoXJJH^oaZ-xBpg)L+Bl&-R3+px$kx-=1aj=2_$<4Fd6?haVhx^owQA zxP6^dOAz(qoxuMm+JAZ*PziX{0`0-blOdX10lR59Snn|z&^IzVbD`L3ytSL*|_QvFo8fIYVL-4-FW}_1A`nH(4wRF7r&S>hfP_iQ>^vQZ`Qdp z=6r1UZBg+bb2tM*iqOxB=-nhDc`oZ$n8EPW3*0i*cIV2+iY8b$6+F;M=Ea0a0df}o zYd}5tM!lj+R2ZTNdi!w!n}$;E@eZ0=4+XzgccB1iqgmcY4H-xW|`={gx5+@iHCLOO91VM6au*Rn32U$dt z_#1*#GBLv;TE>lf>HRrUC{+}_%cC{;zzFWejh5cqbqNcWHyW}?q-sE2ORKUbsTX3! zqp0(--VO<}VB0-%YeKZ<)80g2#UWJM?Cb#Q@jZl&i?mC1@r| z!nXAqK5D7%LW5vzfDss5?NqBn0AIH-lM{iG2~x2lJgOS30!sDh=Gj+E&T&8_QHXx_ zL0cK@v7gYCO*M2R!;4-9Ns7XxW5j`!USN4u?``Mg_e-=ft5%nTXalJ;^C(k zQJ1G0H$1X>{{$QL5h#>7H2{6hk*m^=n?sV1c!{q^)hi%@xkr14>2-D$pXjq{M1hkJ zqCbcWUCjNMh6+H>;LT-GEVicAmdUtA8%Ahn4B1`oG&ROdsZEbmOSl< z4RJ$w&X07lc>~6zpFHOG|=iE&zTOvaHJ_ho*uW zHdcyHvF)yt#&%zx^Z1bHAVPgJ1THTx31r{GQ|Nd(t5u$xl&&o5vB|UM!+dK zxXh*ESqx8h|EXom?J|D<lvjgF2^ zaQyrsv**b?k(pP?>1ci5Cbh9xbhjeJ4_2Fm+`EA_lRGrEX7PM6v9ZOlcp9qm{fJ<$5q$A#6?`uN$mzghy1LK>xfm zcG?^4*Hu(hFyo%3RNqS>ZKNCYN`0^&O_(MshP?&CR%xJUSIZ9>r(jAIHFcjys?lyC z{URuokH0Tbe4)S{|??kaN=nJRzs0cymefRkbu7kdP_aHtj(6&^8cxk90u{9=*3k)MZBP}1rJgC38 zjWH-!UlbwYNDh0kgEplK++iTY==LBg&p-!pY0x|d!$aW6*KU9(yB_c?B1)c66vJ)UchHw*7$LLm zc(V!XyGeqD!I;pQ4k42FKu024fC2NSzd{nHdm~kKLP7$Y?W=9OOnz|P#LLG=QIV`3 zoNp1@oV~Qr2(#kNw~my8-y@sk4zg7ReWGj2k3NyZH+Jx2ch00c3jdoBSsw){uAOFW zL_7=J41in)PgS&7j!ngOeeS}$*bp>|Ut+*P5WMQkKye`?-WL!9UAKh)w?UbvC^Pag z(6u+8a@gxMgs~9Tsr_FC6H(ep8W9VzF;ZwRa=k0 zxGu+`EmSAgsU^#X^XtDO88U z-*!d(z=$8+GL^xGc{d^ZFIm6u1=Q<(*x-ohXkJMA<)M);7H1tSi)Y3>gT2 z!RQQ_Uabjz+I*;0qW0a|yymL(-~kGLXwj@k8Lfl|QWS6U!FEKn?qf{M^Y!(m%z~H@ z08?!8Hwn&%ZrSG5wmIZBWGMKRKX3(0&|F4t>~th(u-t+qD}~ue|ILTC>!XWG6A}om zinL}D9S_*hmDN67f$-WvVcJvP;-Db6aet zbL8+|V7GO6#zNW_bec_IK7=~0-)NhJc}z~={sxo+F#t%VsP{5#pAv?Jo?;Ye*)UW4(p`Qcl(&*nKEwDwJX^`#-%CMI_n} zq_byY(5fL<*Xoa1l;~eyV03cP@TwGS%wO!} zVY)P2(gN+K!9GKQitdn7VpyR~tPuTuxPAKNu~82sjNHL++`W zFw~Y%M11UR{JaA=Sb%Kj=OybY&WvEIOG&)p>l+419K|P^@36(n7)(c8!=Xn=B2vJ? zXbO~IO4<*xwFxW^U0%pA*AuQ#?&EA8W1rjVb3BTH zj!`uvz=#>y&eJy@dxA1J7Q7cV8gh=fDZ~lIP~*Aw-LBt

w{Wg*DHJ0)s0A^=C1~ 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�*CKg08S5uBa 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

PeMYsCg#AivVJf{mT}a|y?bFtt=lA%FhRRp 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­>GANJI5k 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 G>p!1BV)e(~~hAULHOGkZIA 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

fZS#^{MmMEr$bZI_M(R`x|k9OJc=;Y$g!qr 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¥h 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%0AHVd!V>- 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≧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 z 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 gJO2MUbK9