From f8ad8d7cf8e3c4caf7317900fda3b92f0f7f23b9 Mon Sep 17 00:00:00 2001 From: Zdenek Dvorak Date: Sun, 21 Mar 2004 00:08:57 +0100 Subject: 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 --- gcc/rtl.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'gcc/rtl.h') diff --git a/gcc/rtl.h b/gcc/rtl.h index e98203f..26466a9 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -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) \ -- cgit v1.1