summaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorPatrik Hagglund <patrik.h.hagglund@ericsson.com>2014-01-14 14:09:00 +0000
committerPatrik Hagglund <patrik.h.hagglund@ericsson.com>2014-01-14 14:09:00 +0000
commitfc40386116ac01aef455fdfd56e4c1b1baff6685 (patch)
tree280e6cc59a30a59a7fe285e0a45a2bdebc88a097 /lib/CodeGen
parent527fa8c18c56565caf4654965baad5f2c79d24a0 (diff)
downloadllvm-fc40386116ac01aef455fdfd56e4c1b1baff6685.tar.gz
llvm-fc40386116ac01aef455fdfd56e4c1b1baff6685.tar.bz2
llvm-fc40386116ac01aef455fdfd56e4c1b1baff6685.tar.xz
Fix valgrind warning for gcc builds.
Sorry, I don't understand why the warning is generated (a gcc bug?). Anyhow, the change should improve readablity. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199214 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/RegisterCoalescer.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/CodeGen/RegisterCoalescer.cpp b/lib/CodeGen/RegisterCoalescer.cpp
index dd86c1f010..efe7161e16 100644
--- a/lib/CodeGen/RegisterCoalescer.cpp
+++ b/lib/CodeGen/RegisterCoalescer.cpp
@@ -816,18 +816,17 @@ bool RegisterCoalescer::reMaterializeTrivialDef(CoalescerPair &CP,
}
if (TargetRegisterInfo::isVirtualRegister(DstReg)) {
- unsigned NewIdx = NewMI->getOperand(0).getSubReg();
+ unsigned NewIdx;
const TargetRegisterClass *RCForInst;
- if (NewIdx)
- RCForInst = TRI->getMatchingSuperRegClass(MRI->getRegClass(DstReg), DefRC,
- NewIdx);
if (MRI->constrainRegClass(DstReg, DefRC)) {
// The materialized instruction is quite capable of setting DstReg
// directly, but it may still have a now-trivial subregister index which
// we should clear.
NewMI->getOperand(0).setSubReg(0);
- } else if (NewIdx && RCForInst) {
+ } else if ((NewIdx = NewMI->getOperand(0).getSubReg()) &&
+ (RCForInst = TRI->getMatchingSuperRegClass(
+ MRI->getRegClass(DstReg), DefRC, NewIdx))) {
// The subreg index on NewMI is essential; we still have to make sure
// DstReg:idx is in a class that NewMI can use.
MRI->constrainRegClass(DstReg, RCForInst);