summaryrefslogtreecommitdiffstats
path: root/llvm/test/Reduce
diff options
context:
space:
mode:
authorDiego Trevino Ferrer <diegof30@gmail.com>2019-08-08 22:16:33 +0000
committerDiego Trevino Ferrer <diegof30@gmail.com>2019-08-08 22:16:33 +0000
commitddc64eb948c7e71039325f21bc4e1cc763494da5 (patch)
treedbe0cd9c324b0fbad0c464911ee0ec74057a9873 /llvm/test/Reduce
parentbb17e46644bbebdc665ccdee941aab48a9ee0bd4 (diff)
downloadbcm5719-llvm-ddc64eb948c7e71039325f21bc4e1cc763494da5.tar.gz
bcm5719-llvm-ddc64eb948c7e71039325f21bc4e1cc763494da5.zip
Added Delta IR Reduction Tool
Summary: Tool parses input IR file, and runs the delta debugging algorithm to reduce the functions inside the input file. Reviewers: alexshap, chandlerc Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63672 > llvm-svn: 368071 llvm-svn: 368358
Diffstat (limited to 'llvm/test/Reduce')
-rwxr-xr-xllvm/test/Reduce/Inputs/remove-funcs.py10
-rw-r--r--llvm/test/Reduce/remove-funcs.ll34
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
+}
OpenPOWER on IntegriCloud