summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-10-19 10:12:41 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-10-19 10:12:41 +0000
commit6aa5c26c81071e22a23a6f0ae7dcac6080ad6597 (patch)
tree3a5596ca7926235cf9519ff63885c06e09f2945a /test
parent250c6801e4e16e4118fc130dff94dc89ea9332f1 (diff)
downloadllvm-6aa5c26c81071e22a23a6f0ae7dcac6080ad6597.tar.gz
llvm-6aa5c26c81071e22a23a6f0ae7dcac6080ad6597.tar.bz2
llvm-6aa5c26c81071e22a23a6f0ae7dcac6080ad6597.tar.xz
Add pass printing support to BlockFrequencyInfo pass. The implementation
layer already had support for printing the results of this analysis, but the wiring was missing. Now that printing the analysis works, actually bring some of this analysis, and the BranchProbabilityInfo analysis that it wraps, under test! I'm planning on fixing some bugs and doing other work here, so having a nice place to add regression tests and a way to observe the results is really useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142491 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Analysis/BlockFrequencyInfo/basic.ll24
-rw-r--r--test/Analysis/BlockFrequencyInfo/dg.exp3
2 files changed, 27 insertions, 0 deletions
diff --git a/test/Analysis/BlockFrequencyInfo/basic.ll b/test/Analysis/BlockFrequencyInfo/basic.ll
new file mode 100644
index 0000000000..c09e3ff03e
--- /dev/null
+++ b/test/Analysis/BlockFrequencyInfo/basic.ll
@@ -0,0 +1,24 @@
+; RUN: opt < %s -analyze -block-freq | FileCheck %s
+
+define i32 @test1(i32 %i, i32* %a) {
+; CHECK: Printing analysis {{.*}} for function 'test1'
+; CHECK: entry = 1024
+entry:
+ br label %body
+
+; Loop backedges are weighted and thus their bodies have a greater frequency.
+; CHECK: body = 31744
+body:
+ %iv = phi i32 [ 0, %entry ], [ %next, %body ]
+ %base = phi i32 [ 0, %entry ], [ %sum, %body ]
+ %arrayidx = getelementptr inbounds i32* %a, i32 %iv
+ %0 = load i32* %arrayidx
+ %sum = add nsw i32 %0, %base
+ %next = add i32 %iv, 1
+ %exitcond = icmp eq i32 %next, %i
+ br i1 %exitcond, label %exit, label %body
+
+; CHECK: exit = 1024
+exit:
+ ret i32 %sum
+}
diff --git a/test/Analysis/BlockFrequencyInfo/dg.exp b/test/Analysis/BlockFrequencyInfo/dg.exp
new file mode 100644
index 0000000000..f2005891a5
--- /dev/null
+++ b/test/Analysis/BlockFrequencyInfo/dg.exp
@@ -0,0 +1,3 @@
+load_lib llvm.exp
+
+RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]