mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 14:40:25 +00:00
The command line options need to be processed before we create the TargetMachine.
Move the processing of the command line options to right before we create the TargetMachine instead of after. <rdar://problem/13468287> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182611 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5a02fc4b5f
commit
8c18a6fe37
@ -220,10 +220,15 @@ const void* LTOCodeGenerator::compile(size_t* length, std::string& errMsg) {
|
||||
return _nativeObjectFile->getBufferStart();
|
||||
}
|
||||
|
||||
bool LTOCodeGenerator::determineTarget(std::string& errMsg) {
|
||||
bool LTOCodeGenerator::determineTarget(std::string &errMsg) {
|
||||
if (_target != NULL)
|
||||
return false;
|
||||
|
||||
// if options were requested, set them
|
||||
if (!_codegenOptions.empty())
|
||||
cl::ParseCommandLineOptions(_codegenOptions.size(),
|
||||
const_cast<char **>(&_codegenOptions[0]));
|
||||
|
||||
std::string TripleStr = _linker.getModule()->getTargetTriple();
|
||||
if (TripleStr.empty())
|
||||
TripleStr = sys::getDefaultTargetTriple();
|
||||
@ -361,12 +366,7 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out,
|
||||
|
||||
Module* mergedModule = _linker.getModule();
|
||||
|
||||
// if options were requested, set them
|
||||
if (!_codegenOptions.empty())
|
||||
cl::ParseCommandLineOptions(_codegenOptions.size(),
|
||||
const_cast<char **>(&_codegenOptions[0]));
|
||||
|
||||
// mark which symbols can not be internalized
|
||||
// Mark which symbols can not be internalized
|
||||
this->applyScopeRestrictions();
|
||||
|
||||
// Instantiate the pass manager to organize the passes.
|
||||
@ -382,12 +382,11 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out,
|
||||
// Enabling internalize here would use its AllButMain variant. It
|
||||
// keeps only main if it exists and does nothing for libraries. Instead
|
||||
// we create the pass ourselves with the symbol list provided by the linker.
|
||||
if (!DisableOpt) {
|
||||
if (!DisableOpt)
|
||||
PassManagerBuilder().populateLTOPassManager(passes,
|
||||
/*Internalize=*/false,
|
||||
!DisableInline,
|
||||
DisableGVNLoadPRE);
|
||||
}
|
||||
|
||||
// Make sure everything is still good.
|
||||
passes.add(createVerifierPass());
|
||||
|
Loading…
Reference in New Issue
Block a user