Fix the problem with running cleanups in bugpoint: We were deleting arguments

of intrinsic functions, causing the verifier to fail.

llvm-svn: 9745
This commit is contained in:
Chris Lattner 2003-11-05 21:53:41 +00:00
parent a616c55ba9
commit 4e1b467594
1 changed files with 4 additions and 1 deletions

View File

@ -99,6 +99,8 @@ namespace {
struct DAH : public DAE {
virtual bool ShouldHackArguments() const { return true; }
};
RegisterPass<DAH> Y("deadarghaX0r",
"Dead Argument Hacking (bugpoint usage only)");
}
/// createDeadArgEliminationPass - This pass removes arguments from functions
@ -163,7 +165,8 @@ void DAE::SurveyFunction(Function &F) {
bool FunctionIntrinsicallyLive = false;
Liveness RetValLiveness = F.getReturnType() == Type::VoidTy ? Live : Dead;
if (!F.hasInternalLinkage() && !ShouldHackArguments())
if (!F.hasInternalLinkage() &&
(!ShouldHackArguments() || F.getIntrinsicID()))
FunctionIntrinsicallyLive = true;
else
for (Value::use_iterator I = F.use_begin(), E = F.use_end(); I != E; ++I) {