X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FModule.h;h=e6303ac7752d2f6131dff709e00ae6b2bb7ff136;hb=3756e70af69096a82b367ee9667e7720ca2201e4;hp=e068f93deb39f58f4020cc8fe9c7a801d0df4fce;hpb=f20f281368f75239c852fe99c3b3a19278ba38fd;p=oota-llvm.git diff --git a/include/llvm/Module.h b/include/llvm/Module.h index e068f93deb3..e6303ac7752 100644 --- a/include/llvm/Module.h +++ b/include/llvm/Module.h @@ -30,8 +30,7 @@ class GVMaterializer; class LLVMContext; class StructType; template struct DenseMapInfo; -template class DenseMap; +template class DenseMap; template<> struct ilist_traits : public SymbolTableListTraits { @@ -177,13 +176,13 @@ public: /// is an error for two (or more) llvm.module.flags with the /// same ID to have the Override behavior but different /// values. - enum ModAttrBehavior { Error = 1, Warning = 2, Require = 3, Override = 4 }; + enum ModFlagBehavior { Error = 1, Warning = 2, Require = 3, Override = 4 }; struct ModuleFlagEntry { - unsigned Behavior; + ModFlagBehavior Behavior; MDString *Key; Value *Val; - ModuleFlagEntry(unsigned B, MDString *K, Value *V) + ModuleFlagEntry(ModFlagBehavior B, MDString *K, Value *V) : Behavior(B), Key(K), Val(V) {} }; @@ -299,13 +298,9 @@ public: void getMDKindNames(SmallVectorImpl &Result) const; - typedef DenseMap, - DenseMapInfo > NumeredTypesMapTy; + typedef DenseMap > + NumeredTypesMapTy; - /// findUsedStructTypes - Walk the entire module and find all of the - /// struct types that are in use, returning them in a vector. - void findUsedStructTypes(std::vector &StructTypes) const; - /// getTypeByName - Return the type with the specified name, or null if there /// is none by that name. StructType *getTypeByName(StringRef Name) const; @@ -425,8 +420,8 @@ public: /// addModuleFlag - Add a module-level flag to the module-level flags /// metadata. It will create the module-level flags named metadata if it /// doesn't already exist. - void addModuleFlag(ModAttrBehavior Behavior, StringRef Key, Value *Val); - void addModuleFlag(ModAttrBehavior Behavior, StringRef Key, uint32_t Val); + void addModuleFlag(ModFlagBehavior Behavior, StringRef Key, Value *Val); + void addModuleFlag(ModFlagBehavior Behavior, StringRef Key, uint32_t Val); void addModuleFlag(MDNode *Node); /// @} @@ -498,6 +493,13 @@ public: static iplist Module::*getSublistAccess(GlobalAlias*) { return &Module::AliasList; } + /// Get the Module's list of named metadata (constant). + const NamedMDListType &getNamedMDList() const { return NamedMDList; } + /// Get the Module's list of named metadata. + NamedMDListType &getNamedMDList() { return NamedMDList; } + static ilist Module::*getSublistAccess(NamedMDNode*) { + return &Module::NamedMDList; + } /// Get the symbol table of global variable and function identifiers const ValueSymbolTable &getValueSymbolTable() const { return *ValSymTab; } /// Get the Module's symbol table of global variable and function identifiers.