See http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01240.html, this causes us to miss sibcall opportunities with -g Index: gcc-3.3.3/gcc/sibcall.c =================================================================== --- gcc-3.3.3.orig/gcc/sibcall.c 2009-11-20 13:04:57.000000000 +0100 +++ gcc-3.3.3/gcc/sibcall.c 2009-11-20 13:06:50.000000000 +0100 @@ -377,7 +377,8 @@ call_ends_block_p (insn, end) { rtx new_insn; /* END might be a note, so get the last nonnote insn of the block. */ - end = next_nonnote_insn (PREV_INSN (end)); + if (GET_CODE (end) == NOTE) + end = prev_nonnote_insn (end); /* If the call was the end of the block, then we're OK. */ if (insn == end)