summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Roeder <tmroeder@google.com>2014-06-26 20:43:27 +0000
committerTom Roeder <tmroeder@google.com>2014-06-26 20:43:27 +0000
commitb508119fb65167ad2062eb5bca810414485ddd35 (patch)
treea221c5be2c8defb2425088013c6af9c4555c9642
parent1530adffdda179d06faa7fdf4539afaa7896b891 (diff)
downloadbcm5719-llvm-b508119fb65167ad2062eb5bca810414485ddd35.tar.gz
bcm5719-llvm-b508119fb65167ad2062eb5bca810414485ddd35.zip
Fix the new LTOCodeGenerator setup in gold to parse options before using MAttrs.
This fixes a regression that made clang -flto -Wl,--plugin-opt=-mattr=+aes not pass the "+aes" option to the LTOCodeGenerator attributes. llvm-svn: 211804
-rw-r--r--llvm/tools/gold/gold-plugin.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/llvm/tools/gold/gold-plugin.cpp b/llvm/tools/gold/gold-plugin.cpp
index 3c2da94af53..c3ae5a6c30b 100644
--- a/llvm/tools/gold/gold-plugin.cpp
+++ b/llvm/tools/gold/gold-plugin.cpp
@@ -234,15 +234,6 @@ ld_plugin_status onload(ld_plugin_tv *tv) {
InitializeAllAsmParsers();
InitializeAllAsmPrinters();
CodeGen = new LTOCodeGenerator();
- if (MAttrs.size()) {
- std::string Attrs;
- for (unsigned I = 0; I < MAttrs.size(); ++I) {
- if (I > 0)
- Attrs.append(",");
- Attrs.append(MAttrs[I]);
- }
- CodeGen->setAttr(Attrs.c_str());
- }
// Pass through extra options to the code generator.
if (!options::extra.empty()) {
@@ -253,6 +244,16 @@ ld_plugin_status onload(ld_plugin_tv *tv) {
}
CodeGen->parseCodeGenDebugOptions();
+ if (MAttrs.size()) {
+ std::string Attrs;
+ for (unsigned I = 0; I < MAttrs.size(); ++I) {
+ if (I > 0)
+ Attrs.append(",");
+ Attrs.append(MAttrs[I]);
+ }
+ CodeGen->setAttr(Attrs.c_str());
+ }
+
TargetOpts = InitTargetOptionsFromCodeGenFlags();
CodeGen->setTargetOptions(TargetOpts);
OpenPOWER on IntegriCloud