Remove a variable in ModuleContext

This commit is contained in:
Guojie Luo 2022-03-16 19:53:39 +08:00
parent be64cf9b03
commit e8a6fedc99
2 changed files with 8 additions and 6 deletions

View File

@ -73,7 +73,11 @@ impl AlwaysStatement {
};
let mut proc_data = UnitData::new(
UnitKind::Process,
UnitName::local(format!("{}.always.{}", context.name, context.process.len())),
UnitName::local(format!(
"{}.always.{}",
context.name,
context.module.processes().count()
)),
proc_signature,
);
let mut proc_builder = UnitBuilder::new_anonymous(&mut proc_data);
@ -111,8 +115,8 @@ impl AlwaysStatement {
}
let proc_id = context.module.add_unit(proc_data);
context.process.push(proc_id);
// clean up
context.lvalues.clear();
context.rvalues.clear();
@ -137,7 +141,7 @@ impl AlwaysStatement {
Some(builder) => {
let block_0 = builder.named_block("0");
let block_init = builder.named_block("init");
let block_check = builder.named_block("check");
let _block_check = builder.named_block("check");
builder.append_to(block_0);
let outputs: Vec<Value> = builder.unit().output_args().collect();
for output in outputs {

View File

@ -1,13 +1,12 @@
use linked_hash_map::LinkedHashMap;
use linked_hash_set::LinkedHashSet;
use llhd::ir::{Module, UnitId};
use llhd::ir::Module;
use std::fmt;
pub struct ModuleContext {
pub name: String,
pub module: Module,
pub symbol: LinkedHashMap<String, SymbolInfo>,
pub process: Vec<UnitId>,
pub lvalues: LinkedHashSet<String>,
pub rvalues: LinkedHashSet<String>,
}
@ -44,7 +43,6 @@ impl ModuleContext {
name: String::new(),
module: Module::new(),
symbol: LinkedHashMap::new(),
process: Vec::new(),
lvalues: LinkedHashSet::new(),
rvalues: LinkedHashSet::new(),
}