diff options
author | Fangrui Song <maskray@google.com> | 2018-11-01 20:02:49 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2018-11-01 20:02:49 +0000 |
commit | ccfc8415c29a9e04929422b4577fdddb3292da9d (patch) | |
tree | 33986689000e1f1597f5c7a6a27bd5d8caf72c39 | |
parent | 4af6025f09aadee25c024da32d07cd4a06076770 (diff) | |
download | bcm5719-llvm-ccfc8415c29a9e04929422b4577fdddb3292da9d.tar.gz bcm5719-llvm-ccfc8415c29a9e04929422b4577fdddb3292da9d.zip |
Set MAttrs in LTO mode
Summary: Without this patch, MAttrs are not set.
Patch by Yin Ma
Reviewers: espindola, MaskRay, ruiu, pcc
Reviewed By: MaskRay, pcc
Subscribers: pcc, emaste, sbc100, inglorion, arichardson, aheejin, steven_wu, llvm-commits
Differential Revision: https://reviews.llvm.org/D53446
llvm-svn: 345884
-rw-r--r-- | lld/COFF/LTO.cpp | 2 | ||||
-rw-r--r-- | lld/Common/TargetOptionsCommandFlags.cpp | 1 | ||||
-rw-r--r-- | lld/ELF/LTO.cpp | 1 | ||||
-rw-r--r-- | lld/include/lld/Common/TargetOptionsCommandFlags.h | 1 | ||||
-rw-r--r-- | lld/wasm/LTO.cpp | 1 |
5 files changed, 6 insertions, 0 deletions
diff --git a/lld/COFF/LTO.cpp b/lld/COFF/LTO.cpp index 93f7ba3f9e4..66ae7b1d228 100644 --- a/lld/COFF/LTO.cpp +++ b/lld/COFF/LTO.cpp @@ -60,6 +60,8 @@ static std::unique_ptr<lto::LTO> createLTO() { C.DisableVerify = true; C.DiagHandler = diagnosticHandler; C.OptLevel = Config->LTOO; + C.MAttrs = GetMAttrs(); + if (Config->SaveTemps) checkError(C.addSaveTemps(std::string(Config->OutputFile) + ".", /*UseInputModulePath*/ true)); diff --git a/lld/Common/TargetOptionsCommandFlags.cpp b/lld/Common/TargetOptionsCommandFlags.cpp index b46df363c36..7a3fc510704 100644 --- a/lld/Common/TargetOptionsCommandFlags.cpp +++ b/lld/Common/TargetOptionsCommandFlags.cpp @@ -32,3 +32,4 @@ llvm::Optional<llvm::CodeModel::Model> lld::GetCodeModelFromCMModel() { } std::string lld::GetCPUStr() { return ::getCPUStr(); } +std::vector<std::string> lld::GetMAttrs() { return ::MAttrs; } diff --git a/lld/ELF/LTO.cpp b/lld/ELF/LTO.cpp index e640106d460..c3e59b5b71e 100644 --- a/lld/ELF/LTO.cpp +++ b/lld/ELF/LTO.cpp @@ -88,6 +88,7 @@ static lto::Config createConfig() { C.DiagHandler = diagnosticHandler; C.OptLevel = Config->LTOO; C.CPU = GetCPUStr(); + C.MAttrs = GetMAttrs(); // Set up a custom pipeline if we've been asked to. C.OptPipeline = Config->LTONewPmPasses; diff --git a/lld/include/lld/Common/TargetOptionsCommandFlags.h b/lld/include/lld/Common/TargetOptionsCommandFlags.h index 8443b184aa7..2eaecb72759 100644 --- a/lld/include/lld/Common/TargetOptionsCommandFlags.h +++ b/lld/include/lld/Common/TargetOptionsCommandFlags.h @@ -19,4 +19,5 @@ namespace lld { llvm::TargetOptions InitTargetOptionsFromCodeGenFlags(); llvm::Optional<llvm::CodeModel::Model> GetCodeModelFromCMModel(); std::string GetCPUStr(); +std::vector<std::string> GetMAttrs(); } diff --git a/lld/wasm/LTO.cpp b/lld/wasm/LTO.cpp index 933607a0938..9bb21917e28 100644 --- a/lld/wasm/LTO.cpp +++ b/lld/wasm/LTO.cpp @@ -55,6 +55,7 @@ static std::unique_ptr<lto::LTO> createLTO() { C.DisableVerify = Config->DisableVerify; C.DiagHandler = diagnosticHandler; C.OptLevel = Config->LTOO; + C.MAttrs = GetMAttrs(); if (Config->SaveTemps) checkError(C.addSaveTemps(Config->OutputFile.str() + ".", |