forked from OSchip/llvm-project
Add some useful accessors to c++ api that appear to be missing from the c api
llvm-svn: 138371
This commit is contained in:
parent
bf77e51fa1
commit
43c322b5b2
|
@ -744,6 +744,7 @@ LLVMValueRef LLVMBasicBlockAsValue(LLVMBasicBlockRef BB);
|
|||
LLVMBool LLVMValueIsBasicBlock(LLVMValueRef Val);
|
||||
LLVMBasicBlockRef LLVMValueAsBasicBlock(LLVMValueRef Val);
|
||||
LLVMValueRef LLVMGetBasicBlockParent(LLVMBasicBlockRef BB);
|
||||
LLVMValueRef LLVMGetBasicBlockTerminator(LLVMBasicBlockRef BB);
|
||||
unsigned LLVMCountBasicBlocks(LLVMValueRef Fn);
|
||||
void LLVMGetBasicBlocks(LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks);
|
||||
LLVMBasicBlockRef LLVMGetFirstBasicBlock(LLVMValueRef Fn);
|
||||
|
@ -763,14 +764,16 @@ LLVMBasicBlockRef LLVMAppendBasicBlock(LLVMValueRef Fn, const char *Name);
|
|||
LLVMBasicBlockRef LLVMInsertBasicBlock(LLVMBasicBlockRef InsertBeforeBB,
|
||||
const char *Name);
|
||||
void LLVMDeleteBasicBlock(LLVMBasicBlockRef BB);
|
||||
void LLVMRemoveBasicBlockFromParent(LLVMBasicBlockRef BB);
|
||||
|
||||
void LLVMMoveBasicBlockBefore(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos);
|
||||
void LLVMMoveBasicBlockAfter(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos);
|
||||
|
||||
/* Operations on instructions */
|
||||
LLVMBasicBlockRef LLVMGetInstructionParent(LLVMValueRef Inst);
|
||||
LLVMValueRef LLVMGetFirstInstruction(LLVMBasicBlockRef BB);
|
||||
LLVMValueRef LLVMGetLastInstruction(LLVMBasicBlockRef BB);
|
||||
|
||||
/* Operations on instructions */
|
||||
LLVMBasicBlockRef LLVMGetInstructionParent(LLVMValueRef Inst);
|
||||
LLVMValueRef LLVMGetNextInstruction(LLVMValueRef Inst);
|
||||
LLVMValueRef LLVMGetPreviousInstruction(LLVMValueRef Inst);
|
||||
|
||||
|
@ -787,6 +790,9 @@ void LLVMSetInstrParamAlignment(LLVMValueRef Instr, unsigned index,
|
|||
LLVMBool LLVMIsTailCall(LLVMValueRef CallInst);
|
||||
void LLVMSetTailCall(LLVMValueRef CallInst, LLVMBool IsTailCall);
|
||||
|
||||
/* Operations on switch instructions (only) */
|
||||
LLVMBasicBlockRef LLVMGetSwitchDefaultDest(LLVMValueRef SwitchInstr);
|
||||
|
||||
/* Operations on phi nodes */
|
||||
void LLVMAddIncoming(LLVMValueRef PhiNode, LLVMValueRef *IncomingValues,
|
||||
LLVMBasicBlockRef *IncomingBlocks, unsigned Count);
|
||||
|
|
|
@ -1382,6 +1382,10 @@ LLVMValueRef LLVMGetBasicBlockParent(LLVMBasicBlockRef BB) {
|
|||
return wrap(unwrap(BB)->getParent());
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMGetBasicBlockTerminator(LLVMBasicBlockRef BB) {
|
||||
return wrap(unwrap(BB)->getTerminator());
|
||||
}
|
||||
|
||||
unsigned LLVMCountBasicBlocks(LLVMValueRef FnRef) {
|
||||
return unwrap<Function>(FnRef)->size();
|
||||
}
|
||||
|
@ -1454,6 +1458,10 @@ void LLVMDeleteBasicBlock(LLVMBasicBlockRef BBRef) {
|
|||
unwrap(BBRef)->eraseFromParent();
|
||||
}
|
||||
|
||||
void LLVMRemoveBasicBlockFromParent(LLVMBasicBlockRef BBRef) {
|
||||
unwrap(BBRef)->removeFromParent();
|
||||
}
|
||||
|
||||
void LLVMMoveBasicBlockBefore(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos) {
|
||||
unwrap(BB)->moveBefore(unwrap(MovePos));
|
||||
}
|
||||
|
@ -1553,6 +1561,12 @@ void LLVMSetTailCall(LLVMValueRef Call, LLVMBool isTailCall) {
|
|||
unwrap<CallInst>(Call)->setTailCall(isTailCall);
|
||||
}
|
||||
|
||||
/*--.. Operations on switch instructions (only) ............................--*/
|
||||
|
||||
LLVMBasicBlockRef LLVMGetSwitchDefaultDest(LLVMValueRef Switch) {
|
||||
return wrap(unwrap<SwitchInst>(Switch)->getDefaultDest());
|
||||
}
|
||||
|
||||
/*--.. Operations on phi nodes .............................................--*/
|
||||
|
||||
void LLVMAddIncoming(LLVMValueRef PhiNode, LLVMValueRef *IncomingValues,
|
||||
|
|
Loading…
Reference in New Issue