Add NamedMetaData

This commit is contained in:
Siu Kwan Lam 2012-10-16 16:35:20 -05:00
commit e0d1b94053
6 changed files with 138 additions and 0 deletions

View file

@ -574,6 +574,14 @@ class Module(llvm.Ownable, llvm.Cacheable):
else:
return data
def get_or_insert_named_metadata(self, name):
ptr = _core.LLVMModuleGetOrInsertNamedMetaData(self.ptr, name)
return NamedMetaData(ptr)
def get_named_metadata(self, name):
ptr = _core.LLVMModuleGetNamedMetaData(self.ptr, name)
return NamedMetaData(ptr)
#===----------------------------------------------------------------------===
# Types
#===----------------------------------------------------------------------===
@ -1542,6 +1550,31 @@ class MetaDataString(Value):
'''Same as MDString::getString'''
return self.name
class NamedMetaData(llvm.Cacheable):
@staticmethod
def get_or_insert(mod, name):
return mod.get_or_insert_named_metadata(name)
@staticmethod
def get(mod, name):
return mod.get_named_metadata(name)
def __init__(self, ptr):
self.ptr = ptr
def delete(self):
_core.LLVMEraseNamedMetaData(self.ptr)
@property
def name(self):
return _core.LLVMNamedMetaDataGetName(self.ptr)
def __str__(self):
return _core.LLVMDumpNamedMDToString(self.ptr)
def add(self, operand):
_core.LLVMNamedMetaDataAddOperand(self.ptr, operand.ptr)
#===----------------------------------------------------------------------===
# Instruction
#===----------------------------------------------------------------------===