* function.c (purge_addressof_1): Postpone insn in fewer cases.

From-SVN: r66286
This commit is contained in:
Zdenek Dvorak 2003-04-30 12:03:35 +02:00 committed by Zdenek Dvorak
parent ad03daf005
commit b2a7fa89ee
2 changed files with 13 additions and 7 deletions

View File

@ -1,3 +1,7 @@
2003-04-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* function.c (purge_addressof_1): Postpone insn in fewer cases.
2003-04-29 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/host-darwin.c (segv_handler): When -dH is used,

View File

@ -3075,13 +3075,6 @@ purge_addressof_1 (loc, insn, force, store, may_postpone, ht)
{
rtx sub = XEXP (XEXP (x, 0), 0);
if (may_postpone)
{
if (!postponed_insns || XEXP (postponed_insns, 0) != insn)
postponed_insns = alloc_INSN_LIST (insn, postponed_insns);
return true;
}
if (GET_CODE (sub) == MEM)
sub = adjust_address_nv (sub, GET_MODE (x), 0);
else if (GET_CODE (sub) == REG
@ -3091,6 +3084,15 @@ purge_addressof_1 (loc, insn, force, store, may_postpone, ht)
{
int size_x, size_sub;
if (may_postpone)
{
/* Postpone for now, so that we do not emit bitfield arithmetics
unless there is some benefit from it. */
if (!postponed_insns || XEXP (postponed_insns, 0) != insn)
postponed_insns = alloc_INSN_LIST (insn, postponed_insns);
return true;
}
if (!insn)
{
/* When processing REG_NOTES look at the list of