summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/COFF/LTO.cpp2
-rw-r--r--lld/Common/TargetOptionsCommandFlags.cpp1
-rw-r--r--lld/ELF/LTO.cpp1
-rw-r--r--lld/include/lld/Common/TargetOptionsCommandFlags.h1
-rw-r--r--lld/wasm/LTO.cpp1
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() + ".",
OpenPOWER on IntegriCloud