aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-03 20:10:24 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-03 20:10:24 +0000
commit0ab7103e06ee1da7bde5b196a68be77ab49a005d (patch)
treeb43967a87c6c80bd83fdcfcc8bd2c48da2dd95d8 /include/llvm
parent09a887345f283f3ffb46a36e78ca761026ab0cf2 (diff)
downloadexternal_llvm-0ab7103e06ee1da7bde5b196a68be77ab49a005d.zip
external_llvm-0ab7103e06ee1da7bde5b196a68be77ab49a005d.tar.gz
external_llvm-0ab7103e06ee1da7bde5b196a68be77ab49a005d.tar.bz2
Make the hasPHIKills flag a computed property.
The VNInfo::HAS_PHI_KILL is only half supported. We precompute it in LiveIntervalAnalysis, but it isn't properly updated by live range splitting and functions like shrinkToUses(). It is only used in one place: RegisterCoalescer::removeCopyByCommutingDef(). This patch changes that function to use a new LiveIntervals::hasPHIKill() function that computes the flag for a given value number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161254 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/CodeGen/LiveIntervalAnalysis.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/LiveIntervalAnalysis.h b/include/llvm/CodeGen/LiveIntervalAnalysis.h
index abeb0fb..da521db 100644
--- a/include/llvm/CodeGen/LiveIntervalAnalysis.h
+++ b/include/llvm/CodeGen/LiveIntervalAnalysis.h
@@ -246,6 +246,10 @@ namespace llvm {
/// return NULL.
MachineBasicBlock *intervalIsInOneMBB(const LiveInterval &LI) const;
+ /// Returns true if VNI is killed by any PHI-def values in LI.
+ /// This may conservatively return true to avoid expensive computations.
+ bool hasPHIKill(const LiveInterval &LI, const VNInfo *VNI) const;
+
/// addKillFlags - Add kill flags to any instruction that kills a virtual
/// register.
void addKillFlags();