1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll
Jakub Kuderski 04daad837a [Dominators] Don't compute DFS InOut numbers eagerly.
Summary:
DFS InOut numbers currently get eagerly computer upon DomTree construction. They are only needed to answer dome dominance queries and they get invalidated by updates and recalculations. Because of that, it is faster in practice to compute them lazily when they are actually needed.

Clang built without this patch takes 6m 45s to boostrap on my machine, and with the patch applied 6m 38s.

Reviewers: sanjoy, dberlin, chandlerc

Reviewed By: dberlin

Subscribers: davide, llvm-commits

Differential Revision: https://reviews.llvm.org/D34296

llvm-svn: 306778
2017-06-30 01:28:21 +00:00

23 lines
636 B
LLVM

; RUN: opt < %s -domtree -break-crit-edges -analyze -domtree | FileCheck %s
; RUN: opt < %s -passes='require<domtree>,break-crit-edges,print<domtree>' -disable-output 2>&1| FileCheck %s
; PR932
; CHECK: [3] %brtrue {{{[0-9]+}},{{[0-9]+}}}
declare void @use1(i32)
define void @f(i32 %i, i1 %c) {
entry:
%A = icmp eq i32 %i, 0 ; <i1> [#uses=1]
br i1 %A, label %brtrue, label %brfalse
brtrue: ; preds = %brtrue, %entry
%B = phi i1 [ true, %brtrue ], [ false, %entry ] ; <i1> [#uses=1]
call void @use1( i32 %i )
br i1 %B, label %brtrue, label %brfalse
brfalse: ; preds = %brtrue, %entry
call void @use1( i32 %i )
ret void
}