ir.c
// Merge tac with the instruction after it. The next instruction is removed from the chain.
Merge tac with the instruction after it. The next instruction is removed from the chain.
Merge tac with the instruction after it . The next instruction is removed from the chain .
static void merge_instructions(Tac *tac, int ir_index, int allow_labelled_next) {
    if (!tac->next) panic("merge_instructions called on a tac without next\n");
    if (tac->next->label && !allow_labelled_next) panic("merge_instructions called on a tac with a label");
    Tac *next = tac->next;
    tac->next = next->next;
    if (tac->next) tac->next->prev = tac;
    next->prev = 0;
    next->next = 0;
}
static void merge_instructions ( Tac * tac , int ir_index , int allow_labelled_next ) { if ( ! tac -> next ) panic ( " \n " ) ; if ( tac -> next -> label && ! allow_labelled_next ) panic ( " " ) ; Tac * next = tac -> next ; tac -> next = next -> next ; if ( tac -> next ) tac -> next -> prev = tac ; next -> prev = 0 ; next -> next = 0 ; }
Merge tac with the instruction after it.
Merge tac with the instruction after it .
// Nuke the references to the removed node to prevent confusion