aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-02-05 08:09:32 +0000
committerBill Wendling <isanbard@gmail.com>2013-02-05 08:09:32 +0000
commitea59f896a672c2e1ef9f02277bce60257aa60989 (patch)
treeed5d0127c4dc2d60798940bdb27e1670b56d14af /include
parentca531fd4869a17b7a6b16008b9b85741aa6b61e8 (diff)
Add target-dependent versions of addAttribute/removeAttribute to AttrBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174356 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/IR/Attributes.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/llvm/IR/Attributes.h b/include/llvm/IR/Attributes.h
index c726020ab8..61202eebef 100644
--- a/include/llvm/IR/Attributes.h
+++ b/include/llvm/IR/Attributes.h
@@ -20,6 +20,7 @@
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/FoldingSet.h"
#include <cassert>
+#include <map>
#include <string>
namespace llvm {
@@ -341,6 +342,7 @@ template<> struct DenseMapInfo<Attribute::AttrKind> {
/// equality, presence of attributes, etc.
class AttrBuilder {
DenseSet<Attribute::AttrKind> Attrs;
+ std::map<std::string, std::string> TargetDepAttrs;
uint64_t Alignment;
uint64_t StackAlignment;
public:
@@ -361,12 +363,18 @@ public:
/// \brief Add the Attribute object to the builder.
AttrBuilder &addAttribute(Attribute A);
+ /// \brief Add the target-dependent attribute to the builder.
+ AttrBuilder &addAttribute(StringRef A, StringRef V);
+
/// \brief Remove an attribute from the builder.
AttrBuilder &removeAttribute(Attribute::AttrKind Val);
/// \brief Remove the attributes from the builder.
AttrBuilder &removeAttributes(AttributeSet A, uint64_t Index);
+ /// \brief Remove the target-dependent attribute to the builder.
+ AttrBuilder &removeAttribute(StringRef A);
+
/// \brief Return true if the builder has the specified attribute.
bool contains(Attribute::AttrKind A) const;