mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-19 04:50:29 +00:00
Remove temporary tuple fix alloca instructions if they are never used
This commit is contained in:
@@ -309,7 +309,15 @@ gb_internal void lb_run_remove_dead_instruction_pass(lbProcedure *p) {
|
||||
|
||||
// NOTE(bill): Explicit instructions are set here because some instructions could have side effects
|
||||
switch (LLVMGetInstructionOpcode(curr_instr)) {
|
||||
// case LLVMAlloca:
|
||||
case LLVMAlloca:
|
||||
if (map_get(&p->tuple_fix_map, curr_instr) != nullptr) {
|
||||
// NOTE(bill, 2025-12-27): Remove temporary tuple fix alloca instructions
|
||||
// if they are never used
|
||||
removal_count += 1;
|
||||
LLVMInstructionEraseFromParent(curr_instr);
|
||||
was_dead_instructions = true;
|
||||
}
|
||||
break;
|
||||
case LLVMLoad:
|
||||
if (LLVMGetVolatile(curr_instr)) {
|
||||
break;
|
||||
|
||||
@@ -1212,15 +1212,6 @@ gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> c
|
||||
}
|
||||
tuple_fix_values[ret_count-1] = result;
|
||||
|
||||
#if 0
|
||||
for (isize j = 0; j < ret_count; j++) {
|
||||
tuple_geps[j] = lb_emit_struct_ep(p, result_ptr, cast(i32)j);
|
||||
}
|
||||
for (isize j = 0; j < ret_count; j++) {
|
||||
lb_emit_store(p, tuple_geps[j], tuple_fix_values[j]);
|
||||
}
|
||||
#endif
|
||||
|
||||
result = lb_emit_load(p, result_ptr);
|
||||
|
||||
lbTupleFix tf = {tuple_fix_values};
|
||||
|
||||
Reference in New Issue
Block a user