Track defs for all aliases in NEONMoveFix.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 6 Jul 2010 23:26:23 +0000 (23:26 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 6 Jul 2010 23:26:23 +0000 (23:26 +0000)
This means that an instruction defining an S register will affect the domain of
the parent D register.

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

lib/Target/ARM/NEONMoveFix.cpp

index 0a4400cc7ddd7cfa7da9c477385c970f637c5958..bbdd3c7f7c3e09553a1c72b4827fd11d90f95d64 100644 (file)
@@ -105,8 +105,8 @@ bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) {
       unsigned MOReg = MO.getReg();
 
       Defs[MOReg] = MI;
-      // Catch subregs as well.
-      for (const unsigned *R = TRI->getSubRegisters(MOReg); *R; ++R)
+      // Catch aliases as well.
+      for (const unsigned *R = TRI->getAliasSet(MOReg); *R; ++R)
         Defs[*R] = MI;
     }
   }