mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-16 20:40:16 +00:00
Add support for accessing an MDNode's operands via the C binding. Patch by
Anthony Bryant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164247 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6c9176aeec
commit
4caf5281bf
@ -1868,6 +1868,27 @@ LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count);
|
||||
*/
|
||||
const char *LLVMGetMDString(LLVMValueRef V, unsigned* Len);
|
||||
|
||||
/**
|
||||
* Obtain the number of operands from an MDNode value.
|
||||
*
|
||||
* @param V MDNode to get number of operands from.
|
||||
* @return Number of operands of the MDNode.
|
||||
*/
|
||||
unsigned LLVMGetMDNodeNumOperands(LLVMValueRef V);
|
||||
|
||||
/**
|
||||
* Obtain the given MDNode's operands.
|
||||
*
|
||||
* The passed LLVMValueRef pointer should point to enough memory to hold all of
|
||||
* the operands of the given MDNode (see LLVMGetMDNodeNumOperands) as
|
||||
* LLVMValueRefs. This memory will be populated with the LLVMValueRefs of the
|
||||
* MDNode's operands.
|
||||
*
|
||||
* @param V MDNode to get the operands from.
|
||||
* @param Dest Destination array for operands.
|
||||
*/
|
||||
void LLVMGetMDNodeOperands(LLVMValueRef V, LLVMValueRef *Dest);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
@ -568,6 +568,19 @@ const char *LLVMGetMDString(LLVMValueRef V, unsigned* Len) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned LLVMGetMDNodeNumOperands(LLVMValueRef V)
|
||||
{
|
||||
return cast<MDNode>(unwrap(V))->getNumOperands();
|
||||
}
|
||||
|
||||
void LLVMGetMDNodeOperands(LLVMValueRef V, LLVMValueRef *Dest)
|
||||
{
|
||||
const MDNode *N = cast<MDNode>(unwrap(V));
|
||||
const unsigned numOperands = N->getNumOperands();
|
||||
for (unsigned i = 0; i < numOperands; i++)
|
||||
Dest[i] = wrap(N->getOperand(i));
|
||||
}
|
||||
|
||||
unsigned LLVMGetNamedMetadataNumOperands(LLVMModuleRef M, const char* name)
|
||||
{
|
||||
if (NamedMDNode *N = unwrap(M)->getNamedMetadata(name)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user