Skip to content

Commit

Permalink
Rename Jump to Terminator
Browse files Browse the repository at this point in the history
  • Loading branch information
HMPerson1 committed Mar 15, 2018
1 parent a682779 commit c247036
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 15 deletions.
8 changes: 4 additions & 4 deletions src/middle/ir_reader/lowering.rs
Expand Up @@ -155,25 +155,25 @@ impl<'a> LowerSsa<'a> {

let next_node = opt_next_addr.map_or(Ok(self.exit_node), |a| self.block_at(a))?;
match sbb.jump {
Some(sast::Jump::Uncond(tgt)) => {
Some(sast::Terminator::JmpUncond(tgt)) => {
let tgt_bb = self.block_at(tgt)?;
self.ssa.insert_control_edge(bb, tgt_bb, UNCOND_EDGE);
}
Some(sast::Jump::Cond(sel_sop, if_tgt, opt_else_tgt)) => {
Some(sast::Terminator::JmpCond(sel_sop, if_tgt, opt_else_tgt)) => {
let sel_op = self.lower_operand(sel_sop)?;
let if_bb = self.block_at(if_tgt)?;
let else_bb = opt_else_tgt.map_or(Ok(next_node), |a| self.block_at(a))?;
self.ssa.set_selector(sel_op, bb);
self.ssa.insert_control_edge(bb, if_bb, TRUE_EDGE);
self.ssa.insert_control_edge(bb, else_bb, FALSE_EDGE);
}
Some(sast::Jump::Indirect(sel_sop)) => {
Some(sast::Terminator::JmpIndirect(sel_sop)) => {
let sel_op = self.lower_operand(sel_sop)?;
self.ssa.set_selector(sel_op, bb);
self.ssa
.insert_control_edge(bb, self.exit_node, UNCOND_EDGE);
}
Some(sast::Jump::Unreachable) => {
Some(sast::Terminator::Unreachable) => {
// nothing to do
}
None => {
Expand Down
12 changes: 6 additions & 6 deletions src/middle/ir_reader/parser.lalrpop
Expand Up @@ -21,7 +21,7 @@ RegisterList: Vec<PhysReg> =
"registers: " <Comma<PhysReg>> ";" => <>;

BasicBlock: BasicBlock =
<addr:BBHeader> <ops:Operation*> <jump:Jump?> => BasicBlock { <> };
<addr:BBHeader> <ops:Operation*> <jump:Terminator?> => BasicBlock { <> };

BBHeader: ir::MAddress =
"bb_" <MAddress> "(" ")" ":" => <>;
Expand Down Expand Up @@ -58,11 +58,11 @@ Expr: Expr = {
<ResizeType> <WidthSpec> "(" <Operand> ")" => Expr::Resize(<>),
};

Jump: Jump = {
"JMP" <MAddress> => Jump::Uncond(<>),
"JMP" "IF" <Operand> <MAddress> <("ELSE" <MAddress>)?> => Jump::Cond(<>),
"JMP" "TO" <Operand> => Jump::Indirect(<>),
"UNREACHABLE" => Jump::Unreachable,
Terminator: Terminator = {
"JMP" <MAddress> => Terminator::JmpUncond(<>),
"JMP" "IF" <Operand> <MAddress> <("ELSE" <MAddress>)?> => Terminator::JmpCond(<>),
"JMP" "TO" <Operand> => Terminator::JmpIndirect(<>),
"UNREACHABLE" => Terminator::Unreachable,
};

FinalRegState: Vec<(PhysReg, Operand)> =
Expand Down
10 changes: 5 additions & 5 deletions src/middle/ir_reader/simple_ast.rs
Expand Up @@ -19,7 +19,7 @@ pub struct Function {
pub struct BasicBlock {
pub addr: ir::MAddress,
pub ops: Vec<Operation>,
pub jump: Option<Jump>,
pub jump: Option<Terminator>,
}

#[derive(Debug)]
Expand Down Expand Up @@ -64,10 +64,10 @@ pub enum Operand {
}

#[derive(Debug)]
pub enum Jump {
Uncond(ir::MAddress),
Cond(Operand, ir::MAddress, Option<ir::MAddress>),
Indirect(Operand),
pub enum Terminator {
JmpUncond(ir::MAddress),
JmpCond(Operand, ir::MAddress, Option<ir::MAddress>),
JmpIndirect(Operand),
Unreachable,
}

Expand Down

0 comments on commit c247036

Please sign in to comment.