inline loading of values into registers into mir.rs

This commit is contained in:
Janis 2024-08-29 01:50:08 +02:00
parent 9b484ce175
commit 9d85eb1428

View file

@ -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();