[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