0
@@ -49,8 +49,6 @@ llvm_builder_set_insert_point(VALUE self, VALUE rbb) {
0
llvm_builder_bin_op(VALUE self, VALUE rbin_op, VALUE rv1, VALUE rv2) {
0
Check_Type(rbin_op, T_FIXNUM);
0
- //CHECK_TYPE(rv1, cLLVMValue);
0
- //CHECK_TYPE(rv2, cLLVMValue);
0
Instruction::BinaryOps bin_op = (Instruction::BinaryOps)FIX2INT(rbin_op);
0
@@ -59,7 +57,7 @@ llvm_builder_bin_op(VALUE self, VALUE rbin_op, VALUE rv1, VALUE rv2) {
0
Data_Get_Struct(rv1, Value, v1);
0
Data_Get_Struct(rv2, Value, v2);
0
Value *res = builder->CreateBinOp(bin_op, v1, v2);
0
- return
llvm_value_wrap(res);
0
+ return
Data_Wrap_Struct(cLLVMBinaryOperator, NULL, NULL, res);
0
@@ -73,15 +71,17 @@ llvm_builder_phi(VALUE self, VALUE type) {
0
llvm_phi_add_incoming(VALUE self, VALUE val, VALUE rbb) {
0
CHECK_TYPE(val, cLLVMValue);
0
PHINode *phi = LLVM_PHI(self);
0
phi->addIncoming(LLVM_VAL(val), bb);
0
llvm_builder_return(VALUE self, VALUE rv) {
0
-
//CHECK_TYPE(rv, cLLVMValue);
0
+
CHECK_TYPE(rv, cLLVMValue);
0
return Data_Wrap_Struct(cLLVMReturnInst, NULL, NULL, builder->CreateRet(LLVM_VAL(rv)));
0
@@ -142,8 +142,8 @@ VALUE
0
llvm_builder_free(VALUE self, VALUE rptr) {
0
Value *v = LLVM_VAL(rptr);
0
- builder->CreateFree(v);
0
+ Value *free_inst = builder->CreateFree(v);
0
+ return Data_Wrap_Struct(cLLVMFreeInst, NULL, NULL, free_inst);
0
@@ -164,7 +164,7 @@ llvm_builder_load(VALUE self, VALUE rptr) {
0
Data_Get_Struct(rptr, Value, ptr);
0
- return
llvm_value_wrap(builder->CreateLoad(ptr));
0
+ return
Data_Wrap_Struct(cLLVMLoadInst, NULL, NULL, builder->CreateLoad(ptr));
0
@@ -174,7 +174,7 @@ llvm_builder_store(VALUE self, VALUE rv, VALUE rptr) {
0
Data_Get_Struct(rv, Value, v);
0
Data_Get_Struct(rptr, Value, ptr);
0
- return
llvm_value_wrap(builder->CreateStore(v, ptr));
0
+ return
Data_Wrap_Struct(cLLVMStoreInst, NULL, NULL, builder->CreateStore(v, ptr));
0
@@ -183,7 +183,7 @@ llvm_builder_icmp(VALUE self, VALUE pred, VALUE lhs, VALUE rhs) {
0
CmpInst::Predicate p = (CmpInst::Predicate)FIX2INT(pred);
0
Value *v = builder->CreateICmp(p, LLVM_VAL(lhs), LLVM_VAL(rhs));
0
- return
llvm_value_wrap(v);
0
+ return
Data_Wrap_Struct(cLLVMICmpInst, NULL, NULL, v);
0
@@ -192,7 +192,7 @@ llvm_builder_fcmp(VALUE self, VALUE pred, VALUE lhs, VALUE rhs) {
0
CmpInst::Predicate p = (CmpInst::Predicate)FIX2INT(pred);
0
Value *v = builder->CreateFCmp(p, LLVM_VAL(lhs), LLVM_VAL(rhs));
0
- return
llvm_value_wrap(v);
0
+ return
Data_Wrap_Struct(cLLVMFCmpInst, NULL, NULL, v);