Mercurial > projects > ldc
comparison gen/metadata.h @ 1343:c21a6654cce2
Update for metadata changes in LLVM trunk.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Mon, 11 May 2009 11:59:22 +0200 |
parents | 4099548c80e0 |
children | 3297edb697eb |
comparison
equal
deleted
inserted
replaced
1342:16d9afa22df4 | 1343:c21a6654cce2 |
---|---|
3 | 3 |
4 #include "gen/llvm-version.h" | 4 #include "gen/llvm-version.h" |
5 | 5 |
6 #if LLVM_REV >= 68420 | 6 #if LLVM_REV >= 68420 |
7 // Yay, we have metadata! | 7 // Yay, we have metadata! |
8 | |
9 // The metadata interface is still in flux... | |
10 #if LLVM_REV >= 71407 | |
11 // MDNode was moved into its own header, and contains Value*s | |
12 #include "llvm/MDNode.h" | |
13 typedef llvm::Value MDNodeField; | |
14 | |
15 // Use getNumElements() and getElement() to access elements. | |
16 inline unsigned MD_GetNumElements(llvm::MDNode* N) { | |
17 return N->getNumElements(); | |
18 } | |
19 inline MDNodeField* MD_GetElement(llvm::MDNode* N, unsigned i) { | |
20 return N->getElement(i); | |
21 } | |
22 #else | |
23 // MDNode is in Constants.h, and contains Constant*s | |
24 #include "llvm/Constants.h" | |
25 typedef llvm::Constant MDNodeField; | |
26 | |
27 // Use getNumOperands() and getOperand() to access elements. | |
28 inline unsigned MD_GetNumElements(llvm::MDNode* N) { | |
29 return N->getNumOperands(); | |
30 } | |
31 inline MDNodeField* MD_GetElement(llvm::MDNode* N, unsigned i) { | |
32 return N->getOperand(i); | |
33 } | |
34 #endif | |
8 | 35 |
9 #define USE_METADATA | 36 #define USE_METADATA |
10 #define METADATA_LINKAGE_TYPE llvm::GlobalValue::WeakODRLinkage | 37 #define METADATA_LINKAGE_TYPE llvm::GlobalValue::WeakODRLinkage |
11 | 38 |
12 // *** Metadata for TypeInfo instances *** | 39 // *** Metadata for TypeInfo instances *** |