aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2016-05-12 04:19:09 +0000
committerDan Gohman <dan433584@gmail.com>2016-05-12 04:19:09 +0000
commit33e694a8077809dc414145d65a31f73068c85589 (patch)
tree04d59b2c5d3e682996e18b9221170c9348f23400 /llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
parent1fb10e846a22f0569372f71c1ad2d68997d70779 (diff)
downloadllvm-33e694a8077809dc414145d65a31f73068c85589.zip
llvm-33e694a8077809dc414145d65a31f73068c85589.tar.gz
llvm-33e694a8077809dc414145d65a31f73068c85589.tar.bz2
[WebAssembly] Fast-isel support for calls, arguments, and selects.
llvm-svn: 269273
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
index 8a00d54..1e6d5f0 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
@@ -297,13 +297,14 @@ static MachineInstr *MoveAndTeeForMultiUse(
unsigned NewReg = MRI.createVirtualRegister(RegClass);
unsigned TeeReg = MRI.createVirtualRegister(RegClass);
unsigned DefReg = MRI.createVirtualRegister(RegClass);
+ MachineOperand &DefMO = Def->getOperand(0);
MRI.replaceRegWith(Reg, NewReg);
MachineInstr *Tee = BuildMI(MBB, Insert, Insert->getDebugLoc(),
TII->get(GetTeeLocalOpcode(RegClass)), TeeReg)
.addReg(NewReg, RegState::Define)
- .addReg(DefReg);
+ .addReg(DefReg, getUndefRegState(DefMO.isDead()));
Op.setReg(TeeReg);
- Def->getOperand(0).setReg(DefReg);
+ DefMO.setReg(DefReg);
LIS.InsertMachineInstrInMaps(*Tee);
LIS.removeInterval(Reg);
LIS.createAndComputeVirtRegInterval(NewReg);