diff options
author | Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> | 2004-03-21 00:08:57 +0100 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2004-03-20 23:08:57 +0000 |
commit | f8ad8d7cf8e3c4caf7317900fda3b92f0f7f23b9 (patch) | |
tree | 433e408c11da99bc70ed380b6638087bd38c1d32 /gcc/rtl.h | |
parent | 687c3ea538f70e6a198a11a3999a23b318759e27 (diff) | |
download | gcc-f8ad8d7cf8e3c4caf7317900fda3b92f0f7f23b9.zip gcc-f8ad8d7cf8e3c4caf7317900fda3b92f0f7f23b9.tar.gz gcc-f8ad8d7cf8e3c4caf7317900fda3b92f0f7f23b9.tar.bz2 |
emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER flag.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
flag.
* explow.c (force_not_mem): Set REG_POINTER flag according to
MEM_POINTER one.
* rtl.h (MEM_POINTER): New macro.
(struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
for MEM_POINTER.
From-SVN: r79764
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -243,14 +243,14 @@ struct rtx_def GTY((chain_next ("RTX_NEXT (&%h)"), /* Nonzero if this rtx came from procedure integration. 1 in a REG or PARALLEL means this rtx refers to the return value of the current function. - 1 in a SYMBOL_REF if the symbol is weak. */ + 1 in a SYMBOL_REF if the symbol is weak. + 1 in a MEM if the MEM refers to a scalar, rather than a member of + an aggregate. */ unsigned integrated : 1; /* 1 in an INSN or a SET if this rtx is related to the call frame, either changing how we compute the frame address or saving and restoring registers in the prologue and epilogue. - 1 in a MEM if the MEM refers to a scalar, rather than a member of - an aggregate. - 1 in a REG if the register is a pointer. + 1 in a REG or MEM if it is a pointer. 1 in a SYMBOL_REF if it addresses something in the per-function constant string pool. */ unsigned frame_related : 1; @@ -1136,6 +1136,10 @@ enum label_kind #define REG_POINTER(RTX) \ (RTL_FLAG_CHECK1("REG_POINTER", (RTX), REG)->frame_related) +/* 1 if RTX is a mem that holds a pointer value. */ +#define MEM_POINTER(RTX) \ + (RTL_FLAG_CHECK1("MEM_POINTER", (RTX), MEM)->frame_related) + /* 1 if the given register REG corresponds to a hard register. */ #define HARD_REGISTER_P(REG) (HARD_REGISTER_NUM_P (REGNO (REG))) @@ -1251,7 +1255,7 @@ do { \ /* 1 if RTX is a mem that refers to a scalar. If zero, RTX may or may not refer to a scalar. */ #define MEM_SCALAR_P(RTX) \ - (RTL_FLAG_CHECK1("MEM_SCALAR_P", (RTX), MEM)->frame_related) + (RTL_FLAG_CHECK1("MEM_SCALAR_P", (RTX), MEM)->integrated) /* 1 if RTX is a mem that cannot trap. */ #define MEM_NOTRAP_P(RTX) \ |