Skip to content

Commit d831796

Browse files
author
Evan Cheng
committed
Fixed a typo that's causing a missing kill marker.
llvm-svn: 41893
1 parent 302def2 commit d831796

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

llvm/lib/CodeGen/LiveVariables.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,9 +306,8 @@ bool LiveVariables::HandlePhysRegKill(unsigned Reg, MachineInstr *RefMI,
306306
for (const unsigned *SubRegs = RegInfo->getImmediateSubRegisters(Reg);
307307
unsigned SubReg = *SubRegs; ++SubRegs) {
308308
MachineInstr *LastRef = PhysRegInfo[SubReg];
309-
if (LastRef != RefMI)
310-
SubKills.insert(SubReg);
311-
else if (!HandlePhysRegKill(SubReg, RefMI, SubKills))
309+
if (LastRef != RefMI ||
310+
!HandlePhysRegKill(SubReg, RefMI, SubKills))
312311
SubKills.insert(SubReg);
313312
}
314313

@@ -336,7 +335,7 @@ void LiveVariables::addRegisterKills(unsigned Reg, MachineInstr *MI,
336335
bool LiveVariables::HandlePhysRegKill(unsigned Reg, MachineInstr *RefMI) {
337336
SmallSet<unsigned, 4> SubKills;
338337
if (HandlePhysRegKill(Reg, RefMI, SubKills)) {
339-
addRegisterKilled(Reg, RefMI);
338+
addRegisterKilled(Reg, RefMI, true);
340339
return true;
341340
} else {
342341
// Some sub-registers are killed by another MI.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
; RUN: llvm-as < %s | llc -mtriple=powerpc64-apple-darwin
2+
3+
declare void @cxa_atexit_check_1(i8*)
4+
5+
define i32 @check_cxa_atexit(i32 (void (i8*)*, i8*, i8*)* %cxa_atexit, void (i8*)* %cxa_finalize) {
6+
entry:
7+
%tmp7 = call i32 null( void (i8*)* @cxa_atexit_check_1, i8* null, i8* null ) ; <i32> [#uses=0]
8+
br i1 false, label %cond_true, label %cond_next
9+
10+
cond_true: ; preds = %entry
11+
ret i32 0
12+
13+
cond_next: ; preds = %entry
14+
ret i32 0
15+
}

0 commit comments

Comments
 (0)