diff options
Diffstat (limited to 'llvm/test/Reduce')
| -rwxr-xr-x | llvm/test/Reduce/Inputs/remove-funcs.py | 10 | ||||
| -rw-r--r-- | llvm/test/Reduce/remove-funcs.ll | 34 |
2 files changed, 44 insertions, 0 deletions
diff --git a/llvm/test/Reduce/Inputs/remove-funcs.py b/llvm/test/Reduce/Inputs/remove-funcs.py new file mode 100755 index 00000000000..dc0203ce515 --- /dev/null +++ b/llvm/test/Reduce/Inputs/remove-funcs.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python + +import sys + +input = open(sys.argv[1], "r") +for line in input: + if "@interesting" in line: + sys.exit(0) + +sys.exit(1) # IR isn't interesting diff --git a/llvm/test/Reduce/remove-funcs.ll b/llvm/test/Reduce/remove-funcs.ll new file mode 100644 index 00000000000..7d6fba86cc3 --- /dev/null +++ b/llvm/test/Reduce/remove-funcs.ll @@ -0,0 +1,34 @@ +; Test that llvm-reduce can remove uninteresting functions as well as +; their InstCalls. +; +; RUN: llvm-reduce --test %p/Inputs/remove-funcs.py %s +; RUN: cat reduced.ll | FileCheck %s +; REQUIRES: plugins, shell + +; CHECK-NOT: uninteresting1() +define i32 @uninteresting1() { +entry: + ret i32 0 +} + +; CHECK: interesting() +define i32 @interesting() { +entry: + ; CHECK: call i32 @interesting() + %call2 = call i32 @interesting() + ; CHECK-NOT: call i32 @uninteresting1() + %call = call i32 @uninteresting1() + ret i32 5 +} + +; CHECK-NOT: uninteresting2() +define i32 @uninteresting2() { +entry: + ret i32 0 +} + +; CHECK-NOT: uninteresting3() +define i32 @uninteresting3() { +entry: + ret i32 10 +} |

