AMDGPU/SI: The SIShrinkInstructions pass should only fold immediates with one use
authorTom Stellard <thomas.stellard@amd.com>
Thu, 9 Jul 2015 16:30:36 +0000 (16:30 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 9 Jul 2015 16:30:36 +0000 (16:30 +0000)
This is convered by existing testcases and will be exposed by a future
commit.

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

lib/Target/AMDGPU/SIShrinkInstructions.cpp

index 51e72cdb5f9ed289b5ed585f5c93e5cbeebe2d81..cb9d7f7c59dbf59cfd40d2061e23d9bcdf04b98b 100644 (file)
@@ -149,7 +149,7 @@ static void foldImmediates(MachineInstr &MI, const SIInstrInfo *TII,
     return;
 
   // Try to fold Src0
-  if (Src0.isReg()) {
+  if (Src0.isReg() && MRI.hasOneUse(Src0.getReg())) {
     unsigned Reg = Src0.getReg();
     MachineInstr *Def = MRI.getUniqueVRegDef(Reg);
     if (Def && Def->isMoveImmediate()) {