1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 13:33:37 +02:00
llvm-mirror/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll
Chandler Carruth 7cd55815b7 [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.

llvm-svn: 226560
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
}