move debug info generation flag into CompileOptions.

llvm-svn: 66478
This commit is contained in:
Chris Lattner 2009-03-09 22:00:34 +00:00
parent 3cdd6493e9
commit 1349ab7c9f
4 changed files with 10 additions and 12 deletions

View File

@ -56,8 +56,7 @@ ASTConsumer *CreateBackendConsumer(BackendAction Action,
const LangOptions &Features,
const CompileOptions &CompileOpts,
const std::string& InFile,
const std::string& OutFile,
bool GenerateDebugInfo);
const std::string& OutFile);
ASTConsumer* CreateHTMLPrinter(const std::string &OutFile, Diagnostic &D,
Preprocessor *PP, PreprocessorFactory* PPF);

View File

@ -44,7 +44,6 @@ namespace {
CompileOptions CompileOpts;
const std::string &InputFile;
std::string OutputFile;
bool GenerateDebugInfo;
ASTContext *Context;
Timer LLVMIRGeneration;
@ -79,16 +78,14 @@ namespace {
public:
BackendConsumer(BackendAction action, Diagnostic &Diags,
const LangOptions &langopts, const CompileOptions &compopts,
const std::string &infile, const std::string &outfile,
bool debug) :
const std::string &infile, const std::string &outfile) :
Action(action),
CompileOpts(compopts),
InputFile(infile),
OutputFile(outfile),
GenerateDebugInfo(debug),
LLVMIRGeneration("LLVM IR Generation Time"),
CodeGenerationTime("Code Generation Time"),
Gen(CreateLLVMCodeGen(Diags, langopts, InputFile, GenerateDebugInfo)),
Gen(CreateLLVMCodeGen(Diags, langopts, InputFile, compopts.DebugInfo)),
TheModule(0), TheTargetData(0), AsmOutStream(0), ModuleProvider(0),
CodeGenPasses(0), PerModulePasses(0), PerFunctionPasses(0) {
@ -427,14 +424,13 @@ ASTConsumer *clang::CreateBackendConsumer(BackendAction Action,
const LangOptions &LangOpts,
const CompileOptions &CompileOpts,
const std::string& InFile,
const std::string& OutFile,
bool GenerateDebugInfo) {
const std::string& OutFile) {
// FIXME: If optimizing, disable all debug info generation. The LLVM
// optimizer and backend is not ready to handle it when optimizations
// are enabled.
if (CompileOpts.OptimizationLevel > 0)
GenerateDebugInfo = false;
const_cast<CompileOptions&>(CompileOpts).DebugInfo = false;
return new BackendConsumer(Action, Diags, LangOpts, CompileOpts,
InFile, OutFile, GenerateDebugInfo);
InFile, OutFile);
}

View File

@ -1167,6 +1167,7 @@ TargetCPU("mcpu",
static void InitializeCompileOptions(CompileOptions &Opts) {
Opts.OptimizeSize = OptSize;
Opts.DebugInfo = GenerateDebugInfo;
if (OptSize) {
// -Os implies -O2
// FIXME: Diagnose conflicting options.
@ -1246,7 +1247,7 @@ static ASTConsumer *CreateASTConsumer(const std::string& InFile,
CompileOptions Opts;
InitializeCompileOptions(Opts);
return CreateBackendConsumer(Act, Diag, LangOpts, Opts,
InFile, OutputFile, GenerateDebugInfo);
InFile, OutputFile);
}
case SerializeAST:

View File

@ -21,6 +21,7 @@ namespace clang {
struct CompileOptions {
unsigned OptimizationLevel : 3; /// The -O[0-4] option specified.
unsigned OptimizeSize : 1; /// If -Os is specified.
unsigned DebugInfo : 1; /// Should generate deubg info (-g).
unsigned UnitAtATime : 1; /// Unused. For mirroring GCC
/// optimization selection.
unsigned InlineFunctions : 1; /// Should functions be inlined?
@ -42,6 +43,7 @@ public:
CompileOptions() {
OptimizationLevel = 0;
OptimizeSize = 0;
DebugInfo = 0;
UnitAtATime = 1;
InlineFunctions = SimplifyLibCalls = UnrollLoops = 0;
VerifyModule = 1;