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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211804 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tom Roeder 2014-06-26 20:43:27 +00:00
parent c2d93c4048
commit 9ad9c96755

View File

@ -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);