llvm-6502/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll
Chandler Carruth a37512049c [PM] Port LoopInfo to the new pass manager, adding both a LoopAnalysis
pass and a LoopPrinterPass with the expected associated wiring.

I've added a RUN line to the only test case (!!!) we have that actually
prints loops. Everything seems to be working.

This is somewhat exciting as this is the first analysis using another
analysis to go in for the new pass manager. =D I also believe it is the
last analysis necessary for porting instcombine, but of course I may yet
discover more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226560 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-20 10:58:50 +00:00

33 lines
1.0 KiB
LLVM

; This testcase was incorrectly computing that the loopentry.7 loop was
; not a child of the loopentry.6 loop.
;
; RUN: opt < %s -analyze -loops | FileCheck %s
; RUN: opt < %s -passes='print<loops>' -disable-output 2>&1 | FileCheck %s
; CHECK: Loop at depth 4 containing: %loopentry.7<header><latch><exiting>
define void @getAndMoveToFrontDecode() {
br label %endif.2
endif.2: ; preds = %loopexit.5, %0
br i1 false, label %loopentry.5, label %UnifiedExitNode
loopentry.5: ; preds = %loopexit.6, %endif.2
br i1 false, label %loopentry.6, label %UnifiedExitNode
loopentry.6: ; preds = %loopentry.7, %loopentry.5
br i1 false, label %loopentry.7, label %loopexit.6
loopentry.7: ; preds = %loopentry.7, %loopentry.6
br i1 false, label %loopentry.7, label %loopentry.6
loopexit.6: ; preds = %loopentry.6
br i1 false, label %loopentry.5, label %loopexit.5
loopexit.5: ; preds = %loopexit.6
br i1 false, label %endif.2, label %UnifiedExitNode
UnifiedExitNode: ; preds = %loopexit.5, %loopentry.5, %endif.2
ret void
}