re PR rtl-optimization/53908 (csa removes needed memory load)
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
This commit is contained in:
parent
a2faea4bda
commit
b1435931f2
@ -1,3 +1,11 @@
|
||||
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
|
||||
|
@ -4068,6 +4068,19 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to,
|
||||
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user