diff options
author | David Blaikie <dblaikie@gmail.com> | 2019-09-18 21:45:05 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2019-09-18 21:45:05 +0000 |
commit | 070598bb529a9ac1b10e4c65a9644c90855255c4 (patch) | |
tree | 54497ef83b757b0bcd1bbee839c633be231434eb /llvm/test/Reduce/remove-bbs.ll | |
parent | 3425a896767621d2cb594edbca16424c3ee8b73d (diff) | |
download | bcm5719-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.ll | 29 |
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 +} |