diff options
Diffstat (limited to 'llvm/lib/LTO/LTOBackend.cpp')
-rw-r--r-- | llvm/lib/LTO/LTOBackend.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/LTO/LTOBackend.cpp b/llvm/lib/LTO/LTOBackend.cpp index b38252a..139c39a 100644 --- a/llvm/lib/LTO/LTOBackend.cpp +++ b/llvm/lib/LTO/LTOBackend.cpp @@ -221,8 +221,13 @@ createTargetMachine(const Config &Conf, const Target *TheTarget, Module &M) { else CodeModel = M.getCodeModel(); + TargetOptions TargetOpts = Conf.Options; + if (TargetOpts.MCOptions.ABIName.empty()) { + TargetOpts.MCOptions.ABIName = M.getTargetABIFromMD(); + } + std::unique_ptr<TargetMachine> TM(TheTarget->createTargetMachine( - TheTriple.str(), Conf.CPU, Features.getString(), Conf.Options, RelocModel, + TheTriple.str(), Conf.CPU, Features.getString(), TargetOpts, RelocModel, CodeModel, Conf.CGOptLevel)); assert(TM && "Failed to create target machine"); |