summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp23
1 files changed, 9 insertions, 14 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
index 40b809b949b..1a8afee8818 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
@@ -114,21 +114,16 @@ bool WebAssemblyPeephole::runOnMachineFunction(MachineFunction &MF) {
LibFunc::Func Func;
if (LibInfo.getLibFunc(Name, Func)) {
const auto &Op2 = MI.getOperand(2);
- if (Op2.isReg()) {
- MachineOperand &MO = MI.getOperand(0);
- unsigned OldReg = MO.getReg();
- unsigned NewReg = Op2.getReg();
- if (MRI.getRegClass(NewReg) != MRI.getRegClass(OldReg))
- report_fatal_error("Peephole: call to builtin function with "
- "wrong signature, from/to mismatch");
- Changed |= MaybeRewriteToDiscard(OldReg, NewReg, MO, MFI, MRI);
- } else if (Op2.isFI()) {
- break;
- } else {
+ if (!Op2.isReg())
report_fatal_error("Peephole: call to builtin function with "
- "wrong signature, not consuming reg or "
- "frame index");
- }
+ "wrong signature, not consuming reg");
+ MachineOperand &MO = MI.getOperand(0);
+ unsigned OldReg = MO.getReg();
+ unsigned NewReg = Op2.getReg();
+ if (MRI.getRegClass(NewReg) != MRI.getRegClass(OldReg))
+ report_fatal_error("Peephole: call to builtin function with "
+ "wrong signature, from/to mismatch");
+ Changed |= MaybeRewriteToDiscard(OldReg, NewReg, MO, MFI, MRI);
}
}
}
OpenPOWER on IntegriCloud