LTO: Simplify code generator initialization

Simplify `LTOCodeGenerator` initialization by initializing simple fields
at their definition.

llvm-svn: 235939
This commit is contained in:
Duncan P. N. Exon Smith 2015-04-27 23:19:26 +00:00
parent e0bca755d8
commit 7832e0a2f0
2 changed files with 11 additions and 25 deletions

View File

@ -155,15 +155,14 @@ private:
typedef StringMap<uint8_t> StringSet;
void initialize();
void destroyMergedModule();
std::unique_ptr<LLVMContext> OwnedContext;
LLVMContext &Context;
Linker IRLinker;
TargetMachine *TargetMach;
bool EmitDwarfDebugInfo;
bool ScopeRestrictionsDone;
lto_codegen_model CodeModel;
TargetMachine *TargetMach = nullptr;
bool EmitDwarfDebugInfo = false;
bool ScopeRestrictionsDone = false;
lto_codegen_model CodeModel = LTO_CODEGEN_PIC_MODEL_DEFAULT;
StringSet MustPreserveSymbols;
StringSet AsmUndefinedRefs;
std::unique_ptr<MemoryBuffer> NativeObjectFile;
@ -172,11 +171,11 @@ private:
std::string MAttr;
std::string NativeObjectPath;
TargetOptions Options;
unsigned OptLevel;
lto_diagnostic_handler_t DiagHandler;
void *DiagContext;
LTOModule *OwnedModule;
bool ShouldInternalize;
unsigned OptLevel = 2;
lto_diagnostic_handler_t DiagHandler = nullptr;
void *DiagContext = nullptr;
LTOModule *OwnedModule = nullptr;
bool ShouldInternalize = true;
};
}
#endif

View File

@ -65,25 +65,12 @@ const char* LTOCodeGenerator::getVersionString() {
LTOCodeGenerator::LTOCodeGenerator()
: Context(getGlobalContext()), IRLinker(new Module("ld-temp.o", Context)) {
initialize();
initializeLTOPasses();
}
LTOCodeGenerator::LTOCodeGenerator(std::unique_ptr<LLVMContext> Context)
: OwnedContext(std::move(Context)), Context(*OwnedContext),
IRLinker(new Module("ld-temp.o", *OwnedContext)), OptLevel(2) {
initialize();
}
void LTOCodeGenerator::initialize() {
TargetMach = nullptr;
EmitDwarfDebugInfo = false;
ScopeRestrictionsDone = false;
CodeModel = LTO_CODEGEN_PIC_MODEL_DEFAULT;
DiagHandler = nullptr;
DiagContext = nullptr;
OwnedModule = nullptr;
ShouldInternalize = true;
IRLinker(new Module("ld-temp.o", *OwnedContext)) {
initializeLTOPasses();
}