Raise the responsibility for passing -disable-llvm-verifier in NDEBUG builds

to the driver, and support it in CodeGenOptsToArgs().  Note that this changes
the default behavior of clang -cc1 to always run the verifier.

llvm-svn: 96077
This commit is contained in:
John McCall 2010-02-13 03:50:24 +00:00
parent f83726f6ba
commit bb79b5f6f3
2 changed files with 7 additions and 6 deletions

View File

@ -687,6 +687,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// The make clang go fast button.
CmdArgs.push_back("-disable-free");
// Disable the verification pass in -asserts builds.
#ifdef NDEBUG
CmdArgs.push_back("-disable-llvm-verifier");
#endif
// Set the main file name, so that debug info works even with
// -save-temps.
CmdArgs.push_back("-main-file-name");

View File

@ -180,6 +180,8 @@ static void CodeGenOptsToArgs(const CodeGenOptions &Opts,
Res.push_back("-mrelocation-model");
Res.push_back(Opts.RelocationModel);
}
if (!Opts.VerifyModule)
Res.push_back("-disable-llvm-verifier");
}
static void DependencyOutputOptsToArgs(const DependencyOutputOptions &Opts,
@ -789,13 +791,7 @@ static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args,
Opts.RelocationModel = getLastArgValue(Args, OPT_mrelocation_model, "pic");
Opts.MainFileName = getLastArgValue(Args, OPT_main_file_name);
// FIXME: Put elsewhere?
#ifdef NDEBUG
Opts.VerifyModule = 0;
#else
Opts.VerifyModule = !Args.hasArg(OPT_disable_llvm_verifier);
#endif
}
static void ParseDependencyOutputArgs(DependencyOutputOptions &Opts,