[WebAssembly] Implement prolog/epilog insertion and FrameIndex elimination
[oota-llvm.git] / lib / Target / WebAssembly / WebAssemblyPeephole.cpp
index ab539e1c287062bd0c19286a557ef1289b1d264c..4ad6eed7385bbe572c934bdc4746529e9f5bab1e 100644 (file)
@@ -69,7 +69,9 @@ bool WebAssemblyPeephole::runOnMachineFunction(MachineFunction &MF) {
         // can use $discard instead.
         MachineOperand &MO = MI.getOperand(0);
         unsigned OldReg = MO.getReg();
-        if (OldReg == MI.getOperand(3).getReg()) {
+        // TODO: Handle SP/physregs
+        if (OldReg == MI.getOperand(3).getReg()
+            && TargetRegisterInfo::isVirtualRegister(MI.getOperand(3).getReg())) {
           Changed = true;
           unsigned NewReg = MRI.createVirtualRegister(MRI.getRegClass(OldReg));
           MO.setReg(NewReg);