This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Propagation of "pointer" attribute on registers
- From: Pat Haugen <pthaugen at us dot ibm dot com>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 18 Feb 2005 13:28:26 -0600
- Subject: Propagation of "pointer" attribute on registers
Is there a reason REG_POINTER isn't propagated to the target register for
rtl insns of the form "reg_x = regP_y + reg_z", where regP_y is a reg
marked as REG_POINTER? It seems the attribute is only propagated when we
have "reg_x = regP_y + CONST", at least in the couple instances I saw
(regclass.c:reg_scan_mark_refs() and explow.c:memory_address()). I've run
across a case where lack of the REG_POINTER attribute is causing global PRE
to miss a hoisting opportunity since a memory reference no longer looks
available (memory disambiguation fails in alias.c:base_alias_check() since
we can't determine the base address of the memory reference).
-Pat