Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

root/gen/metadata.h

Revision 1558:3adcb70700cb, 1.5 kB (checked in by Tomas Lindquist Olsen <tomas.l.olsen gmail com>, 3 years ago)

Added back option to disable metadata generation and users. Set USE_METADATA to OFF in ccmake.

Line 
1 #if USE_METADATA
2
3 #ifndef LDC_GEN_METADATA_H
4 #define LDC_GEN_METADATA_H
5
6 // MDNode was moved into its own header, and contains Value*s
7 #include "llvm/Metadata.h"
8 typedef llvm::Value MDNodeField;
9
10 // Use getNumElements() and getElement() to access elements.
11 inline unsigned MD_GetNumElements(llvm::MDNode* N) {
12     return N->getNumElements();
13 }
14
15 inline MDNodeField* MD_GetElement(llvm::MDNode* N, unsigned i) {
16     return N->getElement(i);
17 }
18
19 #define METADATA_LINKAGE_TYPE  llvm::GlobalValue::WeakODRLinkage
20
21 // *** Metadata for TypeInfo instances ***
22 #define TD_PREFIX "llvm.ldc.typeinfo."
23
24 /// The fields in the metadata node for a TypeInfo instance.
25 /// (Its name will be TD_PREFIX ~ <Name of TypeInfo global>)
26 enum TypeDataFields {
27     TD_Confirm,     /// The TypeInfo this node is for.
28    
29     TD_Type,        /// A value of the LLVM type corresponding to this D type
30    
31     // Must be kept last:
32     TD_NumFields    /// The number of fields in TypeInfo metadata
33 };
34
35
36 // *** Metadata for ClassInfo instances ***
37 #define CD_PREFIX "llvm.ldc.classinfo."
38
39 /// The fields in the metadata node for a ClassInfo instance.
40 /// (Its name will be CD_PREFIX ~ <Name of ClassInfo global>)
41 enum ClassDataFields {
42     CD_BodyType,    /// A value of the LLVM type corresponding to the class body.
43     CD_Finalize,    /// True if this class (or a base class) has a destructor.
44     CD_CustomDelete,/// True if this class has an overridden delete operator.
45    
46     // Must be kept last
47     CD_NumFields    /// The number of fields in ClassInfo metadata
48 };
49
50 #endif
51
52 #endif // USE_METADATA
Note: See TracBrowser for help on using the browser.
Copyright © 2008, LDC Development Team.