Make the dfg.insts table private again.
- Add a dfg.is_inst_valid() method for the verifier. - Use the inst_args_mut() method when rewriting values in the parser. - Add a new branch_destination_mut() to use when rewriting EBBs. This also gets rid of one of the large instruction format switches in the parser.
This commit is contained in:
@@ -26,7 +26,7 @@ pub struct DataFlowGraph {
|
||||
/// Data about all of the instructions in the function, including opcodes and operands.
|
||||
/// The instructions in this map are not in program order. That is tracked by `Layout`, along
|
||||
/// with the EBB containing each instruction.
|
||||
pub insts: EntityMap<Inst, InstructionData>,
|
||||
insts: EntityMap<Inst, InstructionData>,
|
||||
|
||||
/// Memory pool of value lists referenced by instructions in `insts`.
|
||||
pub value_lists: ValueListPool,
|
||||
@@ -77,6 +77,11 @@ impl DataFlowGraph {
|
||||
self.insts.len()
|
||||
}
|
||||
|
||||
/// Returns `true` if the given instruction reference is valid.
|
||||
pub fn inst_is_valid(&self, inst: Inst) -> bool {
|
||||
self.insts.is_valid(inst)
|
||||
}
|
||||
|
||||
/// Get the total number of extended basic blocks created in this function, whether they are
|
||||
/// currently inserted in the layout or not.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user