diff options
| author | Diego Trevino Ferrer <diegof30@gmail.com> | 2019-08-08 22:16:33 +0000 |
|---|---|---|
| committer | Diego Trevino Ferrer <diegof30@gmail.com> | 2019-08-08 22:16:33 +0000 |
| commit | ddc64eb948c7e71039325f21bc4e1cc763494da5 (patch) | |
| tree | dbe0cd9c324b0fbad0c464911ee0ec74057a9873 /llvm/test | |
| parent | bb17e46644bbebdc665ccdee941aab48a9ee0bd4 (diff) | |
| download | bcm5719-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')
| -rw-r--r-- | llvm/test/CMakeLists.txt | 1 | ||||
| -rwxr-xr-x | llvm/test/Reduce/Inputs/remove-funcs.py | 10 | ||||
| -rw-r--r-- | llvm/test/Reduce/remove-funcs.ll | 34 |
3 files changed, 45 insertions, 0 deletions
diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt index 03d154e39d0..a409cd31af5 100644 --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -89,6 +89,7 @@ set(LLVM_TEST_DEPENDS llvm-rc llvm-readobj llvm-readelf + llvm-reduce llvm-rtdyld llvm-size llvm-split 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 +} |

