[llvm] r217689 - [A57FPLoadBalancing] Ignore <def>s when checking if a chain may be killed.

James Molloy james.molloy at arm.com
Fri Sep 12 09:55:26 PDT 2014


Author: jamesm
Date: Fri Sep 12 11:55:26 2014
New Revision: 217689

URL: http://llvm.org/viewvc/llvm-project?rev=217689&view=rev
Log:
[A57FPLoadBalancing] Ignore <def>s when checking if a chain may be killed.

Defs are seen before uses, so a def without the kill flag doesn't necessarily
mean that the register is not killed on that instruction. It may be killed
in a later use operand.

Modified:
    llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp

Modified: llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp?rev=217689&r1=217688&r2=217689&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp Fri Sep 12 11:55:26 2014
@@ -662,6 +662,10 @@ maybeKillChain(MachineOperand &MO, unsig
   // determine if a chain should be ended and remove from ActiveChains.
   MachineInstr *MI = MO.getParent();
 
+  if (MO.isReg() && MO.isDef())
+    // We don't care about defs. We see them before uses, so reject them early.
+    return;
+
   if (MO.isReg()) {
 
     // If this is a KILL of a current chain, record it.





More information about the llvm-commits mailing list