declare i8* @calloc(i32) declare void @free(i8*) define i32 @main() { %cells = call i8* @calloc(i32 30000) %cell_index_ptr = alloca i32 store i32 0, i32* %cell_index_ptr ; we implement the BF program '>' ; increment the cell_index %cell_index = load i32* %cell_index_ptr %new_cell_index = add i32 1, %cell_index store i32 %new_cell_index, i32* %cell_index_ptr call void @free(i8* %cells) ; sanity check: exit((int)cell_index); %exit_code = load i32* %cell_index_ptr ret i32 %exit_code }