diff options
| author | Dan Gohman <gohman@apple.com> | 2008-12-20 16:34:57 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2008-12-20 16:34:57 +0000 |
| commit | bb92a1b8154ac70f907ad9178ecb1ceb3eed4266 (patch) | |
| tree | 9ee552df946ff908c9996bf05f6e0c652da00f1a | |
| parent | e10c2c32af55dc7a2a52d4af9b17f8d26eef1ecb (diff) | |
| download | bcm5719-llvm-bb92a1b8154ac70f907ad9178ecb1ceb3eed4266.tar.gz bcm5719-llvm-bb92a1b8154ac70f907ad9178ecb1ceb3eed4266.zip | |
Use the correct Preds and Succs lists in setHeightDirty()
and setDepthDirty(), respectively. This fixes PR3241.
llvm-svn: 61276
| -rw-r--r-- | llvm/lib/CodeGen/ScheduleDAG.cpp | 8 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/fold-pcmpeqd-0.ll | 2 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/pr3241.ll | 29 |
3 files changed, 34 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/ScheduleDAG.cpp b/llvm/lib/CodeGen/ScheduleDAG.cpp index f9ec225f3eb..59fd341e31a 100644 --- a/llvm/lib/CodeGen/ScheduleDAG.cpp +++ b/llvm/lib/CodeGen/ScheduleDAG.cpp @@ -126,8 +126,8 @@ void SUnit::setDepthDirty() { WorkList.pop_back(); if (!SU->isDepthCurrent) continue; SU->isDepthCurrent = false; - for (SUnit::const_succ_iterator I = Succs.begin(), - E = Succs.end(); I != E; ++I) + for (SUnit::const_succ_iterator I = SU->Succs.begin(), + E = SU->Succs.end(); I != E; ++I) WorkList.push_back(I->getSUnit()); } } @@ -140,8 +140,8 @@ void SUnit::setHeightDirty() { WorkList.pop_back(); if (!SU->isHeightCurrent) continue; SU->isHeightCurrent = false; - for (SUnit::const_pred_iterator I = Preds.begin(), - E = Preds.end(); I != E; ++I) + for (SUnit::const_pred_iterator I = SU->Preds.begin(), + E = SU->Preds.end(); I != E; ++I) WorkList.push_back(I->getSUnit()); } } diff --git a/llvm/test/CodeGen/X86/fold-pcmpeqd-0.ll b/llvm/test/CodeGen/X86/fold-pcmpeqd-0.ll index 152c12215dc..a529f91598f 100644 --- a/llvm/test/CodeGen/X86/fold-pcmpeqd-0.ll +++ b/llvm/test/CodeGen/X86/fold-pcmpeqd-0.ll @@ -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 ; This testcase shouldn't need to spill the -1 value, diff --git a/llvm/test/CodeGen/X86/pr3241.ll b/llvm/test/CodeGen/X86/pr3241.ll new file mode 100644 index 00000000000..665a763f34f --- /dev/null +++ b/llvm/test/CodeGen/X86/pr3241.ll @@ -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) |

