Span trace utilities and runner source hint
This commit is contained in:
@ -1,6 +1,5 @@
|
||||
use super::{
|
||||
BasicBlockId, EffectMask, FunctionSignature, MirFunction, MirInstruction, MirModule, MirType,
|
||||
ValueId,
|
||||
BasicBlockId, EffectMask, FunctionSignature, MirInstruction, MirModule, MirType, ValueId,
|
||||
};
|
||||
use crate::ast::ASTNode;
|
||||
|
||||
@ -63,7 +62,8 @@ impl super::MirBuilder {
|
||||
}
|
||||
}
|
||||
pub(super) fn prepare_module(&mut self) -> Result<(), String> {
|
||||
let module = MirModule::new("main".to_string());
|
||||
let mut module = MirModule::new("main".to_string());
|
||||
module.metadata.source_file = self.current_source_file();
|
||||
let main_signature = FunctionSignature {
|
||||
name: "main".to_string(),
|
||||
params: vec![],
|
||||
@ -72,7 +72,7 @@ impl super::MirBuilder {
|
||||
};
|
||||
|
||||
let entry_block = self.block_gen.next();
|
||||
let mut main_function = MirFunction::new(main_signature, entry_block);
|
||||
let mut main_function = self.new_function_with_metadata(main_signature, entry_block);
|
||||
main_function.metadata.is_entry_point = true;
|
||||
|
||||
self.current_module = Some(module);
|
||||
@ -391,7 +391,7 @@ impl super::MirBuilder {
|
||||
effects: EffectMask::PURE,
|
||||
};
|
||||
let entry = BasicBlockId::new(0);
|
||||
let mut f = MirFunction::new(sig, entry);
|
||||
let mut f = self.new_function_with_metadata(sig, entry);
|
||||
// body: const 1; return it(FunctionEmissionBox を使用)
|
||||
let one = crate::mir::function_emission::emit_const_integer(&mut f, entry, 1);
|
||||
crate::mir::function_emission::emit_return_value(&mut f, entry, one);
|
||||
|
||||
Reference in New Issue
Block a user