optimize: dedup consts

This commit is contained in:
2025-05-15 19:11:34 +08:00
parent 864be73e77
commit 1e50322af0
8 changed files with 51 additions and 31 deletions

View File

@@ -1,6 +1,5 @@
use crate::bytecode::*;
use crate::ir;
use crate::ty::internal::Const;
pub struct Compiler {
opcodes: Vec<OpCode>,
@@ -23,7 +22,8 @@ pub fn compile(downgraded: ir::Downgraded) -> Program {
})
.collect(),
symbols: downgraded.symbols,
symmap: downgraded.symmap
symmap: downgraded.symmap,
consts: downgraded.consts
}
}
@@ -79,7 +79,7 @@ impl<T: Compile> CompileWithLength for T {
impl Compile for ir::Const {
fn compile(self, comp: &mut Compiler) {
comp.push(OpCode::Const { value: self.value });
comp.push(OpCode::Const { idx: self.idx });
}
}