Combine redundant match arm bodies.
This commit is contained in:
@@ -61,7 +61,7 @@ impl ValueConversion {
|
|||||||
ValueConversion::IntSplit => ty.half_width().expect("Integer type too small to split"),
|
ValueConversion::IntSplit => ty.half_width().expect("Integer type too small to split"),
|
||||||
ValueConversion::VectorSplit => ty.half_vector().expect("Not a vector"),
|
ValueConversion::VectorSplit => ty.half_vector().expect("Not a vector"),
|
||||||
ValueConversion::IntBits => Type::int(ty.bits()).expect("Bad integer size"),
|
ValueConversion::IntBits => Type::int(ty.bits()).expect("Bad integer size"),
|
||||||
ValueConversion::Sext(nty) => nty,
|
ValueConversion::Sext(nty) |
|
||||||
ValueConversion::Uext(nty) => nty,
|
ValueConversion::Uext(nty) => nty,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ impl ValueConversion {
|
|||||||
/// Is this a split conversion that results in two arguments?
|
/// Is this a split conversion that results in two arguments?
|
||||||
pub fn is_split(self) -> bool {
|
pub fn is_split(self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
ValueConversion::IntSplit => true,
|
ValueConversion::IntSplit |
|
||||||
ValueConversion::VectorSplit => true,
|
ValueConversion::VectorSplit => true,
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -356,8 +356,8 @@ impl InstructionData {
|
|||||||
/// Multi-destination branches like `br_table` return `None`.
|
/// Multi-destination branches like `br_table` return `None`.
|
||||||
pub fn branch_destination(&self) -> Option<Ebb> {
|
pub fn branch_destination(&self) -> Option<Ebb> {
|
||||||
match *self {
|
match *self {
|
||||||
InstructionData::Jump { destination, .. } => Some(destination),
|
InstructionData::Jump { destination, .. } |
|
||||||
InstructionData::Branch { destination, .. } => Some(destination),
|
InstructionData::Branch { destination, .. } |
|
||||||
InstructionData::BranchIcmp { destination, .. } => Some(destination),
|
InstructionData::BranchIcmp { destination, .. } => Some(destination),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
@@ -369,8 +369,8 @@ impl InstructionData {
|
|||||||
/// Multi-destination branches like `br_table` return `None`.
|
/// Multi-destination branches like `br_table` return `None`.
|
||||||
pub fn branch_destination_mut(&mut self) -> Option<&mut Ebb> {
|
pub fn branch_destination_mut(&mut self) -> Option<&mut Ebb> {
|
||||||
match *self {
|
match *self {
|
||||||
InstructionData::Jump { ref mut destination, .. } => Some(destination),
|
InstructionData::Jump { ref mut destination, .. } |
|
||||||
InstructionData::Branch { ref mut destination, .. } => Some(destination),
|
InstructionData::Branch { ref mut destination, .. } |
|
||||||
InstructionData::BranchIcmp { ref mut destination, .. } => Some(destination),
|
InstructionData::BranchIcmp { ref mut destination, .. } => Some(destination),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ impl<'a> LocationVerifier<'a> {
|
|||||||
/// Update diversions to reflect the current instruction and check their consistency.
|
/// Update diversions to reflect the current instruction and check their consistency.
|
||||||
fn update_diversions(&self, inst: ir::Inst, divert: &mut RegDiversions) -> Result {
|
fn update_diversions(&self, inst: ir::Inst, divert: &mut RegDiversions) -> Result {
|
||||||
let (arg, src) = match self.func.dfg[inst] {
|
let (arg, src) = match self.func.dfg[inst] {
|
||||||
ir::InstructionData::RegMove { arg, src, .. } => (arg, ir::ValueLoc::Reg(src)),
|
ir::InstructionData::RegMove { arg, src, .. } |
|
||||||
ir::InstructionData::RegSpill { arg, src, .. } => (arg, ir::ValueLoc::Reg(src)),
|
ir::InstructionData::RegSpill { arg, src, .. } => (arg, ir::ValueLoc::Reg(src)),
|
||||||
ir::InstructionData::RegFill { arg, src, .. } => (arg, ir::ValueLoc::Stack(src)),
|
ir::InstructionData::RegFill { arg, src, .. } => (arg, ir::ValueLoc::Stack(src)),
|
||||||
_ => return Ok(()),
|
_ => return Ok(()),
|
||||||
|
|||||||
@@ -39,9 +39,9 @@ impl StdError for Error {
|
|||||||
fn description(&self) -> &str {
|
fn description(&self) -> &str {
|
||||||
use Error::*;
|
use Error::*;
|
||||||
match *self {
|
match *self {
|
||||||
Syntax(ref s) => s,
|
Syntax(ref s) |
|
||||||
UndefVariable(ref s) => s,
|
UndefVariable(ref s) |
|
||||||
Backref(ref s) => s,
|
Backref(ref s) |
|
||||||
DuplicateDef(ref s) => s,
|
DuplicateDef(ref s) => s,
|
||||||
Regex(ref err) => err.description(),
|
Regex(ref err) => err.description(),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ impl Part {
|
|||||||
/// Get the variabled referenced by this part, if any.
|
/// Get the variabled referenced by this part, if any.
|
||||||
pub fn ref_var(&self) -> Option<&str> {
|
pub fn ref_var(&self) -> Option<&str> {
|
||||||
match *self {
|
match *self {
|
||||||
Part::Var(ref var) => Some(var),
|
Part::Var(ref var) |
|
||||||
Part::DefVar { ref var, .. } => Some(var),
|
Part::DefVar { ref var, .. } => Some(var),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1387,9 +1387,9 @@ impl<'a> Parser<'a> {
|
|||||||
|
|
||||||
// extended-basic-block ::= ebb-header * { instruction }
|
// extended-basic-block ::= ebb-header * { instruction }
|
||||||
while match self.token() {
|
while match self.token() {
|
||||||
Some(Token::Value(_)) => true,
|
Some(Token::Value(_)) |
|
||||||
Some(Token::Identifier(_)) => true,
|
Some(Token::Identifier(_)) |
|
||||||
Some(Token::LBracket) => true,
|
Some(Token::LBracket) |
|
||||||
Some(Token::SourceLoc(_)) => true,
|
Some(Token::SourceLoc(_)) => true,
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user