Hi, The attached patch is to work around PR debug/48178 on SH which causes ~2000 failures in the test for sh4-unknown-linux-gnu. s390 has avoided the same issue with the target specific patch and the patch below is quite similar with it. Tested with "make -k check" on sh4-unknown-linux-gnu and applied on trunk.
Regards, kaz -- 2011-03-19 Kaz Kojima <kkoj...@gcc.gnu.org> PR debug/48178 * config/sh/sh.c (find_barrier): Don't emit a constant pool between a call and its corresponding CALL_ARG_LOCATION note. --- ORIG/trunk/gcc/config/sh/sh.c 2011-03-19 09:34:38.000000000 +0900 +++ LOCAL/trunk/gcc/config/sh/sh.c 2011-03-19 15:06:13.000000000 +0900 @@ -4876,6 +4876,16 @@ find_barrier (int num_mova, rtx mova, rt || LABEL_P (from)) from = PREV_INSN (from); + /* Make sure we do not split between a call and its corresponding + CALL_ARG_LOCATION note. */ + if (CALL_P (from)) + { + rtx next = NEXT_INSN (from); + if (next && NOTE_P (next) + && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION) + from = next; + } + from = emit_jump_insn_after (gen_jump (label), from); JUMP_LABEL (from) = label; LABEL_NUSES (label) = 1;