diff --git a/src/triples.rs b/src/triples.rs index 4614415..b11ad93 100644 --- a/src/triples.rs +++ b/src/triples.rs @@ -1392,13 +1392,6 @@ impl<'a> MirBuilder<'a> { let unalignment = ty.mir_unalignment(); let ty = ty.mir_type(); - let const_lhs = self.ir.ir.nodes[src as usize].is_constant(); - let lhs = if const_lhs { - mir.gen_load_const(ty, src) - } else { - lhs - }; - let sum = mir.gen_sub(ty, lhs, rhs); if let Some((signed, bits)) = unalignment { mir.gen_truncate(sum, ty, signed, bits) @@ -1413,12 +1406,6 @@ impl<'a> MirBuilder<'a> { let signed = ty.is_signed(); let ty = ty.mir_type(); - let (lhs, rhs) = if self.ir.ir.nodes[lhs as usize].is_constant() { - (rhs, lhs) - } else { - (lhs, rhs) - }; - let lhs = *mapping.get(&lhs).unwrap(); let rhs = *mapping.get(&rhs).unwrap(); @@ -1436,12 +1423,6 @@ impl<'a> MirBuilder<'a> { let signed = ty.is_signed(); let ty = ty.mir_type(); - let lhs = if self.ir.ir.nodes[lhs as usize].is_constant() { - mir.gen_load_const(ty, lhs) - } else { - lhs - }; - let lhs = *mapping.get(&lhs).unwrap(); let rhs = *mapping.get(&rhs).unwrap(); @@ -1459,12 +1440,6 @@ impl<'a> MirBuilder<'a> { let signed = ty.is_signed(); let ty = ty.mir_type(); - let lhs = if self.ir.ir.nodes[lhs as usize].is_constant() { - mir.gen_load_const(ty, lhs) - } else { - lhs - }; - let lhs = *mapping.get(&lhs).unwrap(); let rhs = *mapping.get(&rhs).unwrap(); @@ -1546,6 +1521,7 @@ impl<'a> MirBuilder<'a> { let lhs = *mapping.get(&src).unwrap(); let rhs = *mapping.get(&dst).unwrap(); + // TODO: check rhs type and pass it to gen_sh{l,r}? match ty { Type2::Integral(signed, bits) => match bits { 8 => mir.gen_shl(mir::Type::Byte, lhs, rhs), @@ -1604,12 +1580,6 @@ impl<'a> MirBuilder<'a> { let unalignment = ty.mir_unalignment(); let ty = ty.mir_type(); - let lhs = if self.ir.ir.nodes[lhs as usize].is_constant() { - mir.gen_load_const(ty, lhs) - } else { - lhs - }; - let lhs = *mapping.get(&lhs).unwrap(); let sum = mir.gen_negate(ty, lhs); @@ -1680,6 +1650,7 @@ fn inverse_sqrt(x: f32) -> f32 { let mut tree = Tree::new(); tree.parse(tokens.iter()).unwrap(); + tree.fold_comptime(); let mut buf = String::new(); tree.render(&mut buf).unwrap();