; RUN: opt < %s -passes='print<postdomtree>' 2>&1 | FileCheck %s | |
@a = external global i32, align 4 | |
define void @fn1() { | |
entry: | |
store i32 5, ptr @a, align 4 | |
%call = call i32 (...) @foo() | |
%tobool = icmp ne i32 %call, 0 | |
br i1 %tobool, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
br label %loop | |
loop: ; preds = %loop, %if.then | |
%0 = load i32, ptr @a, align 4 | |
call void @bar(i32 %0) | |
br label %loop | |
if.end: ; preds = %entry | |
store i32 6, ptr @a, align 4 | |
ret void | |
} | |
declare i32 @foo(...) | |
declare void @bar(i32) | |
; CHECK: Inorder PostDominator Tree: | |
; CHECK-NEXT: [1] <<exit node>> | |
; CHECK: [2] %loop | |
; CHECK-NEXT: [3] %if.then | |
; CHECK: Roots: %if.end %loop |