Add a Function::clear() method.

This makes it possible to clear out a Function data structure so it can
be reused for compiling multiple functions.

Also add clear() methods to various sub-structures.
This commit is contained in:
Jakob Stoklund Olesen
2017-09-08 14:53:55 -07:00
parent 439a40e5e4
commit 0c16f13c6b
4 changed files with 41 additions and 0 deletions

View File

@@ -74,6 +74,20 @@ impl Function {
}
}
/// Clear all data structures in this function.
pub fn clear(&mut self) {
self.signature.clear(ir::CallConv::Native);
self.stack_slots.clear();
self.global_vars.clear();
self.heaps.clear();
self.jump_tables.clear();
self.dfg.clear();
self.layout.clear();
self.encodings.clear();
self.locations.clear();
self.offsets.clear();
}
/// Create a new empty, anonymous function with a native calling convention.
pub fn new() -> Function {
Self::with_name_signature(FunctionName::default(), Signature::new(CallConv::Native))