Adding a collector name attribute to Function in the IR. These
methods are new to Function:
bool hasCollector() const;
const std::string &getCollector() const;
void setCollector(const std::string &);
void clearCollector();
The assembly representation is as such:
define void @f() gc "shadow-stack" { ...
The implementation uses an on-the-side table to map Functions to
collector names, such that there is no overhead. A StringPool is
further used to unique collector names, which are extremely
likely to be unique per process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44769 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/llvmAsmParser.h.cvs b/lib/AsmParser/llvmAsmParser.h.cvs
index a943b41..39fd138 100644
--- a/lib/AsmParser/llvmAsmParser.h.cvs
+++ b/lib/AsmParser/llvmAsmParser.h.cvs
@@ -181,9 +181,10 @@
NEST = 397,
READNONE = 398,
READONLY = 399,
- DEFAULT = 400,
- HIDDEN = 401,
- PROTECTED = 402
+ GC = 400,
+ DEFAULT = 401,
+ HIDDEN = 402,
+ PROTECTED = 403
};
#endif
/* Tokens. */
@@ -329,16 +330,17 @@
#define NEST 397
#define READNONE 398
#define READONLY 399
-#define DEFAULT 400
-#define HIDDEN 401
-#define PROTECTED 402
+#define GC 400
+#define DEFAULT 401
+#define HIDDEN 402
+#define PROTECTED 403
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 945 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
+#line 945 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
{
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
@@ -385,8 +387,8 @@
llvm::ICmpInst::Predicate IPredicate;
llvm::FCmpInst::Predicate FPredicate;
}
-/* Line 1489 of yacc.c. */
-#line 390 "llvmAsmParser.tab.h"
+/* Line 1529 of yacc.c. */
+#line 392 "llvmAsmParser.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1