MCPcopy Create free account
hub / github.com/chc4/lineiform / codegen

Method codegen

tangle/src/ir.rs:197–210  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

195 }
196
197 pub fn codegen(&mut self) -> (Assembler, AssemblyOffset, usize) {
198 let mut ops = Assembler::new().unwrap();
199 let start = ops.offset();
200 let mut ret = None;
201 let mut owner = self.owner.take().unwrap();
202 self.in_region(self.master_region, |r, ir| {
203 let mut n = crate::region::NodeGraph::default();
204 std::mem::swap(&mut r.nodes, &mut n);
205 ret = Some(n[ir.body.unwrap()].codegen(&owner, vec![], vec![], r, ir, &mut ops));
206 std::mem::swap(&mut r.nodes, &mut n);
207 });
208 let end = ops.offset();
209 (ops, start, end.0 - start.0)
210 }
211
212 pub fn compile_fn<A, O>(&mut self) -> Result<(extern "C" fn(A) -> O, usize), Box<dyn std::error::Error>> {
213 self.regalloc();

Callers 1

compile_fnMethod · 0.45

Calls 1

in_regionMethod · 0.80

Tested by

no test coverage detected