[Bugpoint redesign] Added Pass to Remove Global Variables
authorDiego Trevino Ferrer <diegof30@gmail.com>
Wed, 14 Aug 2019 21:01:19 +0000 (21:01 +0000)
committerDiego Trevino Ferrer <diegof30@gmail.com>
Wed, 14 Aug 2019 21:01:19 +0000 (21:01 +0000)
commitd1ffcd07456bc8b64056eeec223e87b48fca93b9
tree283ee54a28d6a02fc3bfa6d022230c3e614623a8
parentc17705b7fb192fb03d9f2a540bc918f19f965225
[Bugpoint redesign] Added Pass to Remove Global Variables

Summary:
This pass tries to remove Global Variables, as well as their derived uses. For example if a variable `@x` is used by `%call1` and `%call2`, both these uses and the definition of `@x` are deleted. Moreover if `%call1` or `%call2` are used elsewhere those uses are also deleted, and so on recursively.

I'm still uncertain if this pass should remove derived uses, I'm open to suggestions.

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64176

llvm-svn: 368918
llvm/test/Reduce/Inputs/remove-global-vars.py [new file with mode: 0755]
llvm/test/Reduce/remove-funcs.ll
llvm/test/Reduce/remove-global-vars.ll [new file with mode: 0644]
llvm/tools/llvm-reduce/CMakeLists.txt
llvm/tools/llvm-reduce/DeltaManager.h
llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp [new file with mode: 0644]
llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.h [new file with mode: 0644]