Unallocatable registers do not have live intervals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56287 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2008-09-17 18:36:25 +00:00
parent 48fbc2d39b
commit 870e4bef41
2 changed files with 20 additions and 1 deletions

View File

@ -568,7 +568,9 @@ SimpleRegisterCoalescing::UpdateRegDefsUses(unsigned SrcReg, unsigned DstReg,
unsigned CopySrcReg, CopyDstReg;
if (TID.getNumDefs() == 1 && TID.getNumOperands() > 2 &&
tii_->isMoveInstr(*UseMI, CopySrcReg, CopyDstReg) &&
CopySrcReg != CopyDstReg) {
CopySrcReg != CopyDstReg &&
(TargetRegisterInfo::isVirtualRegister(CopyDstReg) ||
allocatableRegs_[CopyDstReg])) {
LiveInterval &LI = li_->getInterval(CopyDstReg);
unsigned DefIdx = li_->getDefIndex(li_->getInstructionIndex(UseMI));
const LiveRange *DLR = LI.getLiveRangeContaining(DefIdx);

View File

@ -0,0 +1,17 @@
; RUN: llvm-as < %s | llc -mtriple=arm-apple-darwin
define void @gcov_exit() nounwind {
entry:
br i1 false, label %bb24, label %bb33.thread
bb24: ; preds = %entry
br label %bb39
bb33.thread: ; preds = %entry
%0 = alloca i8, i32 0 ; <i8*> [#uses=1]
br label %bb39
bb39: ; preds = %bb33.thread, %bb24
%.reg2mem.0 = phi i8* [ %0, %bb33.thread ], [ null, %bb24 ] ; <i8*> [#uses=0]
ret void
}