summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm/CodeGen/CommandFlags.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include/llvm/CodeGen/CommandFlags.h')
-rw-r--r--llvm/include/llvm/CodeGen/CommandFlags.h30
1 files changed, 19 insertions, 11 deletions
diff --git a/llvm/include/llvm/CodeGen/CommandFlags.h b/llvm/include/llvm/CodeGen/CommandFlags.h
index 0d898827efc..317a5d3f54c 100644
--- a/llvm/include/llvm/CodeGen/CommandFlags.h
+++ b/llvm/include/llvm/CodeGen/CommandFlags.h
@@ -346,21 +346,29 @@ static inline void setFunctionAttributes(StringRef CPU, StringRef Features,
Module &M) {
for (auto &F : M) {
auto &Ctx = F.getContext();
- AttributeList Attrs = F.getAttributes();
- AttrBuilder NewAttrs;
+ AttributeList Attrs = F.getAttributes(), NewAttrs;
if (!CPU.empty())
- NewAttrs.addAttribute("target-cpu", CPU);
+ NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
+ "target-cpu", CPU);
+
if (!Features.empty())
- NewAttrs.addAttribute("target-features", Features);
+ NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
+ "target-features", Features);
+
if (DisableFPElim.getNumOccurrences() > 0)
- NewAttrs.addAttribute("no-frame-pointer-elim",
- DisableFPElim ? "true" : "false");
+ NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
+ "no-frame-pointer-elim",
+ DisableFPElim ? "true" : "false");
+
if (DisableTailCalls.getNumOccurrences() > 0)
- NewAttrs.addAttribute("disable-tail-calls",
- toStringRef(DisableTailCalls));
+ NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
+ "disable-tail-calls",
+ toStringRef(DisableTailCalls));
+
if (StackRealign)
- NewAttrs.addAttribute("stackrealign");
+ NewAttrs = NewAttrs.addAttribute(Ctx, AttributeList::FunctionIndex,
+ "stackrealign");
if (TrapFuncName.getNumOccurrences() > 0)
for (auto &B : F)
@@ -374,8 +382,8 @@ static inline void setFunctionAttributes(StringRef CPU, StringRef Features,
Attribute::get(Ctx, "trap-func-name", TrapFuncName));
// Let NewAttrs override Attrs.
- F.setAttributes(
- Attrs.addAttributes(Ctx, AttributeList::FunctionIndex, NewAttrs));
+ NewAttrs = Attrs.addAttributes(Ctx, AttributeList::FunctionIndex, NewAttrs);
+ F.setAttributes(NewAttrs);
}
}
OpenPOWER on IntegriCloud