summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rwxr-xr-xllvm/test/Reduce/Inputs/remove-funcs.sh9
-rw-r--r--llvm/test/Reduce/remove-funcs.ll34
2 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/Reduce/Inputs/remove-funcs.sh b/llvm/test/Reduce/Inputs/remove-funcs.sh
new file mode 100755
index 00000000000..533ca62c0b1
--- /dev/null
+++ b/llvm/test/Reduce/Inputs/remove-funcs.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+matches=$(cat $1 | grep "@interesting" | wc -l)
+
+if [[ $matches > 0 ]]; then
+ exit 0
+else
+ exit 1
+fi
diff --git a/llvm/test/Reduce/remove-funcs.ll b/llvm/test/Reduce/remove-funcs.ll
new file mode 100644
index 00000000000..6125f7f1180
--- /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.sh %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
+}
OpenPOWER on IntegriCloud