PR rtl-optimization/53908
* df-problems.c (can_move_insns_across): When doing
memory-reference book-keeping, handle call insns.
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>
From-SVN: r189454
+2012-07-13 Richard Sandiford <rdsandiford@googlemail.com>
+ Steven Bosscher <steven@gcc.gnu.org>
+ Bernd Schmidt <bernds@codesourcery.com>
+
+ PR rtl-optimization/53908
+ * df-problems.c (can_move_insns_across): When doing
+ memory-reference book-keeping, handle call insns.
+
2012-07-13 Richard Guenther <rguenther@suse.de>
* gimple.c (gimple_types_compatible_p_1): Remove redundant
for (insn = across_to; ; insn = next)
{
+ if (CALL_P (insn))
+ {
+ if (RTL_CONST_OR_PURE_CALL_P (insn))
+ /* Pure functions can read from memory. Const functions can
+ read from arguments that the ABI has forced onto the stack.
+ Neither sort of read can be volatile. */
+ memrefs_in_across |= MEMREF_NORMAL;
+ else
+ {
+ memrefs_in_across |= MEMREF_VOLATILE;
+ mem_sets_in_across |= MEMREF_VOLATILE;
+ }
+ }
if (NONDEBUG_INSN_P (insn))
{
memrefs_in_across |= for_each_rtx (&PATTERN (insn), find_memory,