alias.c: (mark_constant_function): Don't check pure functions.
authorJohn Wehle <john@feith.com>
Fri, 20 Oct 2000 04:56:21 +0000 (04:56 +0000)
committerJohn Wehle <wehle@gcc.gnu.org>
Fri, 20 Oct 2000 04:56:21 +0000 (04:56 +0000)
commitbf6d9fd730ee324567bc8aaf70e6effa557e0d25
tree201554ac1d3485982312d26bdd55e6a11243e633
parentcab8e2bd65e10cbd59f4240056710c9653aa4418
alias.c: (mark_constant_function): Don't check pure functions.

* alias.c: (mark_constant_function): Don't check pure functions.
Initialize and end alias analysis.
(nonlocal_mentioned_p): Rename from nonlocal_reference_p.
Don't make a special exception for recursion.  Handle
UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
unless it's volatile.

* local-alloc.c (equivalence): New structure.
(reg_equiv): Define.
(contains_replace_regs): Remove array and use
field in reg_equiv.
(memref_referenced_p): Likewise.
(no_equiv): Likewise.
(update_equiv_regs): Likewise.

(equiv_init_varies_p,
equiv_init_movable_p): New functions.
(update_equiv_regs): Use them.  Use rtx_varies_p
instead of function_invariant_p.  Process insns
from end to beginning.  Allow a REG_EQUIV insn
within the same loop as a use to be moved, also
allow it to be moved out of a loop.  Update
REG_DEAD notes when substituting into an insn.

From-SVN: r36957
gcc/ChangeLog
gcc/alias.c
gcc/local-alloc.c