Re: RFA/RFC: insns that do not start a source line

2015-10-23 Thread Richard Biener
On Thu, Oct 22, 2015 at 5:14 PM, Bernd Schmidt wrote: > On 10/22/2015 05:08 PM, Bernd Schmidt wrote: > >> So I'm not entirely sure yet what's supposed to happen here, but I think >> the problem could well be in the expansion phase. > > > Forgot to mention another possibility that crossed my mind:

Re: RFA/RFC: insns that do not start a source line

2015-10-22 Thread Bernd Schmidt
On 10/22/2015 05:08 PM, Bernd Schmidt wrote: So I'm not entirely sure yet what's supposed to happen here, but I think the problem could well be in the expansion phase. Forgot to mention another possibility that crossed my mind: don't compare locations for equality in fixup_reorder_chain, inst

Re: RFA/RFC: insns that do not start a source line

2015-10-22 Thread Bernd Schmidt
On 10/22/2015 04:19 PM, Nick Clifton wrote: It is in cfgrtl.c:fixup_reorder_chain() nb = split_edge (e); if (!INSN_P (BB_END (nb))) BB_END (nb) = emit_insn_after_noloc (gen_nop (), BB_END (nb), nb); INSN_LOCATION (BB_END (nb)) = e->goto_lo

Re: RFA/RFC: insns that do not start a source line

2015-10-22 Thread Nick Clifton
Hi Bernd, Could you point me at the code generating these NOPs It is in cfgrtl.c:fixup_reorder_chain() nb = split_edge (e); if (!INSN_P (BB_END (nb))) BB_END (nb) = emit_insn_after_noloc (gen_nop (), BB_END (nb), nb

Re: RFA/RFC: insns that do not start a source line

2015-10-22 Thread Bernd Schmidt
Hi Nick, On 10/22/2015 04:07 PM, Nick Clifton wrote: Sometimes gcc can generate instructions out of order with respect to lines of source code, and this can lead to problems for debuggers. For example, consider this source code snippet: v = 0; /* Line 31 */

RFA/RFC: insns that do not start a source line

2015-10-22 Thread Nick Clifton
Hi Guys, Sometimes gcc can generate instructions out of order with respect to lines of source code, and this can lead to problems for debuggers. For example, consider this source code snippet: v = 0; /* Line 31 */ goto b;/* Line 32 */ a: v++;