mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-01 19:29:22 +00:00
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
33 lines
1.0 KiB
LLVM
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
|
|
}
|