Commit c4484b8f by Richard Henderson Committed by Richard Henderson

re PR rtl-optimization/6165 ([i686] stack frame freed too early)

        PR opt/6165
        * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
        (write_dependence_p): Likewise.

From-SVN: r51882
parent 78ef5b89
2002-04-04 Richard Henderson <rth@redhat.com> 2002-04-04 Richard Henderson <rth@redhat.com>
PR opt/6165
* alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
(write_dependence_p): Likewise.
2002-04-04 Richard Henderson <rth@redhat.com>
* predict.c (estimate_bb_frequencies): Do frequency calculation * predict.c (estimate_bb_frequencies): Do frequency calculation
with a volatile temporary. with a volatile temporary.
......
...@@ -2039,6 +2039,13 @@ true_dependence (mem, mem_mode, x, varies) ...@@ -2039,6 +2039,13 @@ true_dependence (mem, mem_mode, x, varies)
if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem)) if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
return 1; return 1;
/* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
This is used in epilogue deallocation functions. */
if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
return 1;
if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
return 1;
if (DIFFERENT_ALIAS_SETS_P (x, mem)) if (DIFFERENT_ALIAS_SETS_P (x, mem))
return 0; return 0;
...@@ -2173,6 +2180,13 @@ write_dependence_p (mem, x, writep) ...@@ -2173,6 +2180,13 @@ write_dependence_p (mem, x, writep)
if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem)) if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
return 1; return 1;
/* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
This is used in epilogue deallocation functions. */
if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
return 1;
if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
return 1;
if (DIFFERENT_ALIAS_SETS_P (x, mem)) if (DIFFERENT_ALIAS_SETS_P (x, mem))
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment