forked from OSchip/llvm-project
Add an llvm-c function that lets you insert an instruction with a name.
llvm-svn: 79163
This commit is contained in:
parent
f57618f62d
commit
9813beadcd
|
@ -654,6 +654,8 @@ external builder : unit -> llbuilder = "llvm_builder"
|
||||||
external position_builder : (llbasicblock, llvalue) llpos -> llbuilder -> unit
|
external position_builder : (llbasicblock, llvalue) llpos -> llbuilder -> unit
|
||||||
= "llvm_position_builder"
|
= "llvm_position_builder"
|
||||||
external insertion_block : llbuilder -> llbasicblock = "llvm_insertion_block"
|
external insertion_block : llbuilder -> llbasicblock = "llvm_insertion_block"
|
||||||
|
external insert_into_builder : llvalue -> string -> llbuilder -> unit
|
||||||
|
= "llvm_insert_into_builder"
|
||||||
|
|
||||||
let builder_at ip =
|
let builder_at ip =
|
||||||
let b = builder () in
|
let b = builder () in
|
||||||
|
|
|
@ -1324,6 +1324,12 @@ val position_at_end : llbasicblock -> llbuilder -> unit
|
||||||
See the method [llvm::LLVMBuilder::GetInsertBlock]. *)
|
See the method [llvm::LLVMBuilder::GetInsertBlock]. *)
|
||||||
external insertion_block : llbuilder -> llbasicblock = "llvm_insertion_block"
|
external insertion_block : llbuilder -> llbasicblock = "llvm_insertion_block"
|
||||||
|
|
||||||
|
(** [insert_into_builder i name b] inserts the specified instruction [i] at the
|
||||||
|
position specified by the instruction builder [b].
|
||||||
|
See the method [llvm::LLVMBuilder::Insert]. *)
|
||||||
|
external insert_into_builder : llvalue -> string -> llbuilder -> unit
|
||||||
|
= "llvm_insert_into_builder"
|
||||||
|
|
||||||
|
|
||||||
(** {7 Terminators} *)
|
(** {7 Terminators} *)
|
||||||
|
|
||||||
|
|
|
@ -917,6 +917,13 @@ CAMLprim LLVMBasicBlockRef llvm_insertion_block(LLVMBuilderRef B) {
|
||||||
return InsertBlock;
|
return InsertBlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* llvalue -> string -> llbuilder -> unit */
|
||||||
|
CAMLprim value llvm_insert_into_builder(LLVMValueRef I, value Name,
|
||||||
|
LLVMBuilderRef B) {
|
||||||
|
LLVMInsertIntoBuilderWithName(B, I, String_val(Name));
|
||||||
|
return Val_unit;
|
||||||
|
}
|
||||||
|
|
||||||
/*--... Terminators ........................................................--*/
|
/*--... Terminators ........................................................--*/
|
||||||
|
|
||||||
/* llbuilder -> llvalue */
|
/* llbuilder -> llvalue */
|
||||||
|
|
|
@ -658,6 +658,8 @@ void LLVMPositionBuilderAtEnd(LLVMBuilderRef Builder, LLVMBasicBlockRef Block);
|
||||||
LLVMBasicBlockRef LLVMGetInsertBlock(LLVMBuilderRef Builder);
|
LLVMBasicBlockRef LLVMGetInsertBlock(LLVMBuilderRef Builder);
|
||||||
void LLVMClearInsertionPosition(LLVMBuilderRef Builder);
|
void LLVMClearInsertionPosition(LLVMBuilderRef Builder);
|
||||||
void LLVMInsertIntoBuilder(LLVMBuilderRef Builder, LLVMValueRef Instr);
|
void LLVMInsertIntoBuilder(LLVMBuilderRef Builder, LLVMValueRef Instr);
|
||||||
|
void LLVMInsertIntoBuilderWithName(LLVMBuilderRef Builder, LLVMValueRef Instr,
|
||||||
|
const char *Name);
|
||||||
void LLVMDisposeBuilder(LLVMBuilderRef Builder);
|
void LLVMDisposeBuilder(LLVMBuilderRef Builder);
|
||||||
|
|
||||||
/* Terminators */
|
/* Terminators */
|
||||||
|
|
|
@ -1464,6 +1464,11 @@ void LLVMInsertIntoBuilder(LLVMBuilderRef Builder, LLVMValueRef Instr) {
|
||||||
unwrap(Builder)->Insert(unwrap<Instruction>(Instr));
|
unwrap(Builder)->Insert(unwrap<Instruction>(Instr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LLVMInsertIntoBuilderWithName(LLVMBuilderRef Builder, LLVMValueRef Instr,
|
||||||
|
const char *Name) {
|
||||||
|
unwrap(Builder)->Insert(unwrap<Instruction>(Instr), Name);
|
||||||
|
}
|
||||||
|
|
||||||
void LLVMDisposeBuilder(LLVMBuilderRef Builder) {
|
void LLVMDisposeBuilder(LLVMBuilderRef Builder) {
|
||||||
delete unwrap(Builder);
|
delete unwrap(Builder);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue