forked from OSchip/llvm-project
Make bugpoint dead-argument-hacking actually work, and actually test it.
llvm-svn: 105551
This commit is contained in:
parent
34a2249fde
commit
fb8ed43349
|
@ -120,9 +120,14 @@ namespace {
|
||||||
|
|
||||||
typedef SmallVector<RetOrArg, 5> UseVector;
|
typedef SmallVector<RetOrArg, 5> UseVector;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// DAH uses this to specify a different ID.
|
||||||
|
explicit DAE(void *ID) : ModulePass(ID) {}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static char ID; // Pass identification, replacement for typeid
|
static char ID; // Pass identification, replacement for typeid
|
||||||
DAE() : ModulePass(&ID) {}
|
DAE() : ModulePass(&ID) {}
|
||||||
|
|
||||||
bool runOnModule(Module &M);
|
bool runOnModule(Module &M);
|
||||||
|
|
||||||
virtual bool ShouldHackArguments() const { return false; }
|
virtual bool ShouldHackArguments() const { return false; }
|
||||||
|
@ -155,6 +160,8 @@ namespace {
|
||||||
/// by bugpoint.
|
/// by bugpoint.
|
||||||
struct DAH : public DAE {
|
struct DAH : public DAE {
|
||||||
static char ID;
|
static char ID;
|
||||||
|
DAH() : DAE(&ID) {}
|
||||||
|
|
||||||
virtual bool ShouldHackArguments() const { return true; }
|
virtual bool ShouldHackArguments() const { return true; }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
; RUN: bugpoint %s -output-prefix %t -bugpoint-crashcalls -silence-passes
|
; RUN: bugpoint %s -output-prefix %t -bugpoint-crashcalls -silence-passes
|
||||||
|
; RUN: llvm-dis remove_arguments_test.ll.tmp-reduced-simplified.bc -o - | FileCheck %s
|
||||||
|
|
||||||
; Test to make sure that arguments are removed from the function if they are
|
; Test to make sure that arguments are removed from the function if they are
|
||||||
; unnecessary.
|
; unnecessary.
|
||||||
|
|
||||||
declare i32 @test2()
|
declare i32 @test2()
|
||||||
|
|
||||||
|
; CHECK: define void @test() {
|
||||||
define i32 @test(i32 %A, i32 %B, float %C) {
|
define i32 @test(i32 %A, i32 %B, float %C) {
|
||||||
call i32 @test2()
|
call i32 @test2()
|
||||||
ret i32 %1
|
ret i32 %1
|
||||||
|
|
Loading…
Reference in New Issue