diff options
author | Derek Schuff <dschuff@google.com> | 2016-01-26 22:47:43 +0000 |
---|---|---|
committer | Derek Schuff <dschuff@google.com> | 2016-01-26 22:47:43 +0000 |
commit | 90d9e8d37048f799d7e2174426f831a27cd0d23f (patch) | |
tree | 9a690bc744a37131733688961c3bd202f631e9d1 /llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp | |
parent | c2752daa6bf70786ebbb448208af8fb62a431ecc (diff) | |
download | bcm5719-llvm-90d9e8d37048f799d7e2174426f831a27cd0d23f.tar.gz bcm5719-llvm-90d9e8d37048f799d7e2174426f831a27cd0d23f.zip |
[WebAssembly] Omit no-op adds for non-mem uses of FrameIndex
Differential Revision: http://reviews.llvm.org/D16554
llvm-svn: 258872
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp index 1a8afee8818..5e879e2e04c 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp @@ -120,7 +120,10 @@ bool WebAssemblyPeephole::runOnMachineFunction(MachineFunction &MF) { MachineOperand &MO = MI.getOperand(0); unsigned OldReg = MO.getReg(); unsigned NewReg = Op2.getReg(); - if (MRI.getRegClass(NewReg) != MRI.getRegClass(OldReg)) + + // TODO: Handle SP/physregs in MaybeRewriteToDiscard + if (TargetRegisterInfo::isVirtualRegister(NewReg) && + (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); |