]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - opencl/llvm.git/commitdiff
RegisterCoalescer::reMaterializeTrivialDef() can constrain the destination
authorCameron Zwarich <zwarich@apple.com>
Thu, 14 Feb 2013 03:25:24 +0000 (03:25 +0000)
committerCameron Zwarich <zwarich@apple.com>
Thu, 14 Feb 2013 03:25:24 +0000 (03:25 +0000)
register class to match the defining instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175130 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegisterCoalescer.cpp

index 07ae8a2e3af6eb2b63152da8233143e92a878595..e2488adcdc8e27455ec8382abc0e9f43382c716d 100644 (file)
@@ -769,7 +769,7 @@ bool RegisterCoalescer::reMaterializeTrivialDef(CoalescerPair &CP,
     // extract_subreg, insert_subreg, subreg_to_reg coalescing.
     const TargetRegisterClass *RC = TII->getRegClass(MCID, 0, TRI, *MF);
     if (TargetRegisterInfo::isVirtualRegister(DstReg)) {
-      if (MRI->getRegClass(DstReg) != RC)
+      if (!MRI->constrainRegClass(DstReg, RC))
         return false;
     } else if (!RC->contains(DstReg))
       return false;