re PR rtl-optimization/61801 (sched2 miscompiles syscall sequence with -g)

2014-07-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/61801
	* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
	ASM_INPUT don't set reg_pending_barrier if it appears in a
	debug-insn.

From-SVN: r212738
This commit is contained in:
Richard Biener 2014-07-17 07:47:19 +00:00 committed by Richard Biener
parent 6782b1ef34
commit bf95b6295c
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2014-07-17 Richard Biener <rguenther@suse.de>
PR rtl-optimization/61801
* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
ASM_INPUT don't set reg_pending_barrier if it appears in a
debug-insn.
2014-07-16 DJ Delorie <dj@redhat.com> 2014-07-16 DJ Delorie <dj@redhat.com>
* config/rx/rx.c (rx_option_override): Fix alignment values. * config/rx/rx.c (rx_option_override): Fix alignment values.

View File

@ -2750,7 +2750,8 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx insn)
Consider for instance a volatile asm that changes the fpu rounding Consider for instance a volatile asm that changes the fpu rounding
mode. An insn should not be moved across this even if it only uses mode. An insn should not be moved across this even if it only uses
pseudo-regs because it might give an incorrectly rounded result. */ pseudo-regs because it might give an incorrectly rounded result. */
if (code != ASM_OPERANDS || MEM_VOLATILE_P (x)) if ((code != ASM_OPERANDS || MEM_VOLATILE_P (x))
&& !DEBUG_INSN_P (insn))
reg_pending_barrier = TRUE_BARRIER; reg_pending_barrier = TRUE_BARRIER;
/* For all ASM_OPERANDS, we must traverse the vector of input operands. /* For all ASM_OPERANDS, we must traverse the vector of input operands.