Use the correct Preds and Succs lists in setHeightDirty()

and setDepthDirty(), respectively. This fixes PR3241.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61276 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2008-12-20 16:34:57 +00:00
parent b8fd41985f
commit f89e6e6577
3 changed files with 34 additions and 5 deletions

View File

@ -126,8 +126,8 @@ void SUnit::setDepthDirty() {
WorkList.pop_back(); WorkList.pop_back();
if (!SU->isDepthCurrent) continue; if (!SU->isDepthCurrent) continue;
SU->isDepthCurrent = false; SU->isDepthCurrent = false;
for (SUnit::const_succ_iterator I = Succs.begin(), for (SUnit::const_succ_iterator I = SU->Succs.begin(),
E = Succs.end(); I != E; ++I) E = SU->Succs.end(); I != E; ++I)
WorkList.push_back(I->getSUnit()); WorkList.push_back(I->getSUnit());
} }
} }
@ -140,8 +140,8 @@ void SUnit::setHeightDirty() {
WorkList.pop_back(); WorkList.pop_back();
if (!SU->isHeightCurrent) continue; if (!SU->isHeightCurrent) continue;
SU->isHeightCurrent = false; SU->isHeightCurrent = false;
for (SUnit::const_pred_iterator I = Preds.begin(), for (SUnit::const_pred_iterator I = SU->Preds.begin(),
E = Preds.end(); I != E; ++I) E = SU->Preds.end(); I != E; ++I)
WorkList.push_back(I->getSUnit()); WorkList.push_back(I->getSUnit());
} }
} }

View File

@ -1,4 +1,4 @@
; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | grep pcmpeqd | count 1 ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | not grep pcmpeqd
; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep pcmpeqd | count 1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep pcmpeqd | count 1
; This testcase shouldn't need to spill the -1 value, ; This testcase shouldn't need to spill the -1 value,

View File

@ -0,0 +1,29 @@
; RUN: llvm-as < %s | llc -march=x86
; PR3241
@g_620 = external global i32
define void @func_18(i32 %p_21) nounwind {
entry:
%t0 = call i32 @func_31(i32 %p_21) nounwind
%t1 = call i32 @safe_add_macro_uint32_t_u_u() nounwind
%t2 = icmp sgt i32 %t1, 0
%t3 = zext i1 %t2 to i32
%t4 = load i32* @g_620, align 4
%t5 = icmp eq i32 %t3, %t4
%t6 = xor i32 %p_21, 1
%t7 = call i32 @func_55(i32 %t6) nounwind
br i1 %t5, label %return, label %bb
bb:
unreachable
return:
unreachable
}
declare i32 @func_31(i32)
declare i32 @safe_add_macro_uint32_t_u_u()
declare i32 @func_55(i32)