summaryrefslogtreecommitdiffstats
path: root/llvm/test/Reduce/remove-bbs.ll
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2019-09-18 21:45:05 +0000
committerDavid Blaikie <dblaikie@gmail.com>2019-09-18 21:45:05 +0000
commit070598bb529a9ac1b10e4c65a9644c90855255c4 (patch)
tree54497ef83b757b0bcd1bbee839c633be231434eb /llvm/test/Reduce/remove-bbs.ll
parent3425a896767621d2cb594edbca16424c3ee8b73d (diff)
downloadbcm5719-llvm-070598bb529a9ac1b10e4c65a9644c90855255c4.tar.gz
bcm5719-llvm-070598bb529a9ac1b10e4c65a9644c90855255c4.zip
llvm-reduce: Add pass to reduce basic blocks
Patch by Diego TreviƱo! Differential Revision: https://reviews.llvm.org/D66320 llvm-svn: 372264
Diffstat (limited to 'llvm/test/Reduce/remove-bbs.ll')
-rw-r--r--llvm/test/Reduce/remove-bbs.ll29
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/Reduce/remove-bbs.ll b/llvm/test/Reduce/remove-bbs.ll
new file mode 100644
index 00000000000..9e49bc53168
--- /dev/null
+++ b/llvm/test/Reduce/remove-bbs.ll
@@ -0,0 +1,29 @@
+; Test that llvm-reduce can remove uninteresting Basic Blocks, and remove them from instructions (i.e. SwitchInst, BranchInst and IndirectBrInst)
+; Note: if an uninteresting BB is the default case for a switch, the instruction is removed altogether (since the default case cannot be replaced)
+;
+; RUN: llvm-reduce --test %python --test-arg %p/Inputs/remove-bbs.py %s -o %t
+; RUN: cat %t | FileCheck -implicit-check-not=uninteresting %s
+
+define void @main() {
+interesting:
+ ; CHECK-NOT: switch i32 0, label %uninteresting
+ switch i32 0, label %uninteresting [
+ i32 0, label %uninteresting
+ ]
+
+uninteresting:
+ ret void
+
+interesting2:
+ ; CHECK: switch i32 1, label %interesting3
+ switch i32 1, label %interesting3 [
+ ; CHECK-NOT: i32 0, label %uninteresting
+ i32 0, label %uninteresting
+ ; CHECK: i32 1, label %interesting3
+ i32 1, label %interesting3
+ ]
+
+interesting3:
+ ; CHECK: br label %interesting2
+ br i1 true, label %interesting2, label %uninteresting
+}
OpenPOWER on IntegriCloud