On 06/26/2014 02:15 PM, Uros Bizjak wrote: > * except.c (emit_note_eh_region_end): New helper function. > (convert_to_eh_region_ranges): Use emit_note_eh_region_end to > emit EH_REGION_END note.
This bit looks good. > rtx insn, next, prev; > - for (insn = get_insns (); insn; insn = next) > + for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) > { > - next = NEXT_INSN (insn); > if (BARRIER_P (insn)) > { > prev = prev_nonnote_insn (insn); > if (!prev) > continue; > + > + /* Make sure we do not split a call and its corresponding > + CALL_ARG_LOCATION note. */ > + next = NEXT_INSN (prev); > + if (next == NULL) > + continue; > + if (NOTE_P (next) > + && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION) > + prev = next; > + This bit looks more complicated than it needs to be. It would also be helpful for legibility to move the declarations from the top to the first uses. The next == NULL test can never be true, since we've already searched backward from insn. r~