Ryozuki
; ModuleID = 'Main'
source_filename = "program.ed"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
declare !dbg !2 ptr @malloc(i64)
declare !dbg !9 void @free(ptr)
define i32 @main(i32 %0, ptr %1) !dbg !13 {
entry:
call void @llvm.dbg.value(metadata ptr %1, metadata !21, metadata !DIExpression()), !dbg !23
call void @llvm.dbg.value(metadata i32 %0, metadata !19, metadata !DIExpression()), !dbg !24
%return_ptr = alloca i32, align 4, !dbg !25
%argc = alloca i32, align 4, !dbg !24
store i32 %0, ptr %argc, align 4, !dbg !24
%argv = alloca ptr, align 8, !dbg !23
store ptr %1, ptr %argv, align 8, !dbg !23
%x = alloca ptr, align 8, !dbg !26
%temp_var_4 = alloca ptr, align 8, !dbg !26
br label %block_0, !dbg !26
block_0: ; preds = %entry
%2 = call ptr @malloc(i64 32), !dbg !27
store ptr %2, ptr %temp_var_4, align 8, !dbg !27
br label %block_1, !dbg !27
block_1: ; preds = %block_0
call void @llvm.dbg.declare(metadata ptr %x, metadata !22, metadata !DIExpression()), !dbg !26
%3 = load ptr, ptr %temp_var_4, align 8, !dbg !28
call void @llvm.dbg.value(metadata ptr %3, metadata !22, metadata !DIExpression()), !dbg !26
store ptr %3, ptr %x, align 8, !dbg !28
%4 = load ptr, ptr %x, align 8, !dbg !29
call void @free(ptr %4), !dbg !29
br label %block_2, !dbg !29
block_2: ; preds = %block_1
store i32 0, ptr %return_ptr, align 4, !dbg !30
%5 = load i32, ptr %return_ptr, align 4, !dbg !31
ret i32 %5, !dbg !31
}