forked from OSchip/llvm-project
move debug info generation flag into CompileOptions.
llvm-svn: 66478
This commit is contained in:
parent
3cdd6493e9
commit
1349ab7c9f
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue