bugpoint Enhancement.
authorJF Bastien <jfb@google.com>
Mon, 20 Apr 2015 23:42:22 +0000 (23:42 +0000)
committerJF Bastien <jfb@google.com>
Mon, 20 Apr 2015 23:42:22 +0000 (23:42 +0000)
commit7b862ec88e743a6f5f28b143d5a37eff00865451
treeadcaf910f3068a995844c171aae9b49fcc4eff30
parentaf337cd20ed59f01f118e685ac6fd48b93604e34
bugpoint Enhancement.

Summary:
This patch adds two flags to `bugpoint`: "-replace-funcs-with-null" and "-disable-pass-list-reduction".

When "-replace-funcs-with-null" is specified, bugpoint will, instead of simply deleting function bodies, replace all uses of functions and then will delete functions completely from the test module, correctly handling aliasing and @llvm.used && @llvm.compiler.used. This part was conceived while trying to debug the PNaCl IR simplification passes, which don't allow undefined functions (ie no declarations).

With "-disable-pass-list-reduction", bugpoint won't try to reduce the set of passes causing the "crash". This is needed in cases where one is trying to debug an issue inside the PNaCl IR simplification passes which is causing an PNaCl ABI verification error, for example.

Reviewers: jfb

Reviewed By: jfb

Subscribers: jfb, llvm-commits

Differential Revision: http://reviews.llvm.org/D8555

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235362 91177308-0d34-0410-b5e6-96231b3b80d8
test/BugPoint/replace-funcs-with-null.ll [new file with mode: 0644]
tools/bugpoint-passes/TestPasses.cpp
tools/bugpoint/CrashDebugger.cpp