Combine redundant match arm bodies.

This commit is contained in:
Dan Gohman
2017-11-03 16:40:51 -07:00
parent c7f01f88b2
commit acc6d941a3
6 changed files with 14 additions and 14 deletions

View File

@@ -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,
} }

View File

@@ -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,
} }

View File

@@ -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(()),

View File

@@ -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(),
} }

View File

@@ -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,
} }

View File

@@ -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,
} }