-> ValueRef;
/* Memory */
- pub fn LLVMBuildMalloc(B: BuilderRef, Ty: TypeRef, Name: *const c_char)
- -> ValueRef;
- pub fn LLVMBuildArrayMalloc(B: BuilderRef,
- Ty: TypeRef,
- Val: ValueRef,
- Name: *const c_char)
- -> ValueRef;
pub fn LLVMBuildAlloca(B: BuilderRef, Ty: TypeRef, Name: *const c_char)
-> ValueRef;
- pub fn LLVMBuildArrayAlloca(B: BuilderRef,
- Ty: TypeRef,
- Val: ValueRef,
- Name: *const c_char)
- -> ValueRef;
pub fn LLVMBuildFree(B: BuilderRef, PointerVal: ValueRef) -> ValueRef;
pub fn LLVMBuildLoad(B: BuilderRef,
PointerVal: ValueRef,
B(cx).not(v)
}
-/* Memory */
-pub fn Malloc(cx: Block, ty: Type, debug_loc: DebugLoc) -> ValueRef {
- unsafe {
- if cx.unreachable.get() {
- return llvm::LLVMGetUndef(Type::i8p(cx.ccx()).to_ref());
- }
- debug_loc.apply(cx.fcx);
- B(cx).malloc(ty)
- }
-}
-
-pub fn ArrayMalloc(cx: Block,
- ty: Type,
- val: ValueRef,
- debug_loc: DebugLoc) -> ValueRef {
- unsafe {
- if cx.unreachable.get() {
- return llvm::LLVMGetUndef(Type::i8p(cx.ccx()).to_ref());
- }
- debug_loc.apply(cx.fcx);
- B(cx).array_malloc(ty, val)
- }
-}
-
pub fn Alloca(cx: Block, ty: Type, name: &str) -> ValueRef {
unsafe {
if cx.unreachable.get() { return llvm::LLVMGetUndef(ty.ptr_to().to_ref()); }
b.alloca(ty, name)
}
-pub fn ArrayAlloca(cx: Block, ty: Type, val: ValueRef) -> ValueRef {
- unsafe {
- if cx.unreachable.get() { return llvm::LLVMGetUndef(ty.ptr_to().to_ref()); }
- let b = cx.fcx.ccx.builder();
- b.position_before(cx.fcx.alloca_insert_pt.get().unwrap());
- DebugLoc::None.apply(cx.fcx);
- b.array_alloca(ty, val)
- }
-}
-
pub fn Free(cx: Block, pointer_val: ValueRef) {
if cx.unreachable.get() { return; }
B(cx).free(pointer_val)
}
}
- /* Memory */
- pub fn malloc(&self, ty: Type) -> ValueRef {
- self.count_insn("malloc");
- unsafe {
- llvm::LLVMBuildMalloc(self.llbuilder, ty.to_ref(), noname())
- }
- }
-
- pub fn array_malloc(&self, ty: Type, val: ValueRef) -> ValueRef {
- self.count_insn("arraymalloc");
- unsafe {
- llvm::LLVMBuildArrayMalloc(self.llbuilder, ty.to_ref(), val, noname())
- }
- }
-
pub fn alloca(&self, ty: Type, name: &str) -> ValueRef {
self.count_insn("alloca");
unsafe {
}
}
- pub fn array_alloca(&self, ty: Type, val: ValueRef) -> ValueRef {
- self.count_insn("arrayalloca");
- unsafe {
- llvm::LLVMBuildArrayAlloca(self.llbuilder, ty.to_ref(), val, noname())
- }
- }
-
pub fn free(&self, ptr: ValueRef) {
self.count_insn("free");
unsafe {