MODULE = LLVM PACKAGE = LLVM::Value Type type(self) Value self CODE: RETVAL = LLVMTypeOf(self); OUTPUT: RETVAL SV * name(self, ...) Value self CODE: const char *name; if (items == 2) { SV *val = ST(1); const char *name = SvPVbyte_nolen(val); LLVMSetValueName(self, name); } name = LLVMGetValueName(self); RETVAL = newSVpv(name, 0); OUTPUT: RETVAL AV * func_params(self) Value self CODE: AV *params = newAV(); unsigned int i, count = LLVMCountParams(self); Value *values = malloc(sizeof(Value) * count); LLVMGetParams(self, values); for (i = 0; i < count; i++) { SV *param = sv_setref_pv( newSV(0), "LLVM::Value", (void *) values[i] ); av_push(params, param); } RETVAL = params; OUTPUT: RETVAL BasicBlock func_append(self, block_name) Value self SV *block_name CODE: const char *name = SvPVbyte_nolen(block_name); RETVAL = LLVMAppendBasicBlock(self, name); OUTPUT: RETVAL bool global_is_constant(self, ...) Value self CODE: if (items == 2) LLVMSetGlobalConstant(self, SvIV(ST(1))); RETVAL = LLVMIsGlobalConstant(self); OUTPUT: RETVAL bool global_is_threadlocal(self, ...) Value self CODE: if (items == 2) LLVMSetThreadLocal(self, SvIV(ST(1))); RETVAL = LLVMIsThreadLocal(self); OUTPUT: RETVAL