diff options
author | Evan Cheng <evan.cheng@apple.com> | 2010-03-11 08:20:21 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2010-03-11 08:20:21 +0000 |
commit | 826cbac2a0cef418fd8949813761c2ed975f3df1 (patch) | |
tree | 7081d6d99453ea9ba519ff9c58836f6b5c199660 /include/llvm/CodeGen/LiveIntervalAnalysis.h | |
parent | 41b39e9908ef22f01e51bbb1239d67fe23b53617 (diff) | |
download | external_llvm-826cbac2a0cef418fd8949813761c2ed975f3df1.zip external_llvm-826cbac2a0cef418fd8949813761c2ed975f3df1.tar.gz external_llvm-826cbac2a0cef418fd8949813761c2ed975f3df1.tar.bz2 |
The check for coalescing a virtual register to a physical register, e.g.
cl = EXTRACT_SUBREG reg1024, 1, is overly conservative. It should check
for overlaps of vr's live interval with the super registers of the
physical register (ECX in this case) and let JoinIntervals() handle checking
the coalescing feasibility against the physical register (cl in this case).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98251 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/LiveIntervalAnalysis.h')
-rw-r--r-- | include/llvm/CodeGen/LiveIntervalAnalysis.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/include/llvm/CodeGen/LiveIntervalAnalysis.h b/include/llvm/CodeGen/LiveIntervalAnalysis.h index e8856ac..1a2cc25 100644 --- a/include/llvm/CodeGen/LiveIntervalAnalysis.h +++ b/include/llvm/CodeGen/LiveIntervalAnalysis.h @@ -127,11 +127,11 @@ namespace llvm { bool conflictsWithPhysReg(const LiveInterval &li, VirtRegMap &vrm, unsigned reg); - /// conflictsWithPhysRegRef - Similar to conflictsWithPhysRegRef except - /// it can check use as well. - bool conflictsWithPhysRegRef(LiveInterval &li, unsigned Reg, - bool CheckUse, - SmallPtrSet<MachineInstr*,32> &JoinedCopies); + /// conflictsWithSubPhysRegRef - Similar to conflictsWithPhysRegRef except + /// it checks for sub-register reference and it can check use as well. + bool conflictsWithSubPhysRegRef(LiveInterval &li, unsigned Reg, + bool CheckUse, + SmallPtrSet<MachineInstr*,32> &JoinedCopies); // Interval creation LiveInterval &getOrCreateInterval(unsigned reg) { |