diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-05-13 10:39:16 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-05-13 10:39:16 +0000 |
commit | da3cd1136113a13ae25b7deaf4bc02e250af054c (patch) | |
tree | bc60a87a8aa3c9a5fb0a854d48dfb065714a3899 /gcc/rtl.h | |
parent | fcc74520d0d99921af1d22971465d07225b488f9 (diff) | |
download | gcc-da3cd1136113a13ae25b7deaf4bc02e250af054c.zip gcc-da3cd1136113a13ae25b7deaf4bc02e250af054c.tar.gz gcc-da3cd1136113a13ae25b7deaf4bc02e250af054c.tar.bz2 |
rtl.def (SYMBOL_REF): Remove middle "0" field.
gcc/
* rtl.def (SYMBOL_REF): Remove middle "0" field.
* rtl.h (block_symbol): Reduce number of fields to 2.
(rtx_def): Add u2.symbol_ref_flags.
(SYMBOL_REF_FLAGS): Use it.
(SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
(SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
* gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
Lower index of SYMBOL_REF_DATA.
* print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
Print SYMBOL_REF_FLAGS at the same time.
* genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
From-SVN: r210363
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 19 |
1 files changed, 12 insertions, 7 deletions
@@ -211,7 +211,7 @@ union rtunion if SYMBOL_REF_HAS_BLOCK_INFO_P is true. */ struct GTY(()) block_symbol { /* The usual SYMBOL_REF fields. */ - rtunion GTY ((skip)) fld[3]; + rtunion GTY ((skip)) fld[2]; /* The block that contains this object. */ struct object_block *block; @@ -362,6 +362,9 @@ struct GTY((chain_next ("RTX_NEXT (&%h)"), /* The INSN_UID of an RTX_INSN-class code. */ int insn_uid; + /* The SYMBOL_REF_FLAGS of a SYMBOL_REF. */ + unsigned int symbol_ref_flags; + /* The PAT_VAR_LOCATION_STATUS of a VAR_LOCATION. */ enum var_init_status var_location_status; @@ -1765,24 +1768,24 @@ do { \ /* A pointer attached to the SYMBOL_REF; either SYMBOL_REF_DECL or SYMBOL_REF_CONSTANT. */ -#define SYMBOL_REF_DATA(RTX) X0ANY ((RTX), 2) +#define SYMBOL_REF_DATA(RTX) X0ANY ((RTX), 1) /* Set RTX's SYMBOL_REF_DECL to DECL. RTX must not be a constant pool symbol. */ #define SET_SYMBOL_REF_DECL(RTX, DECL) \ - (gcc_assert (!CONSTANT_POOL_ADDRESS_P (RTX)), X0TREE ((RTX), 2) = (DECL)) + (gcc_assert (!CONSTANT_POOL_ADDRESS_P (RTX)), X0TREE ((RTX), 1) = (DECL)) /* The tree (decl or constant) associated with the symbol, or null. */ #define SYMBOL_REF_DECL(RTX) \ - (CONSTANT_POOL_ADDRESS_P (RTX) ? NULL : X0TREE ((RTX), 2)) + (CONSTANT_POOL_ADDRESS_P (RTX) ? NULL : X0TREE ((RTX), 1)) /* Set RTX's SYMBOL_REF_CONSTANT to C. RTX must be a constant pool symbol. */ #define SET_SYMBOL_REF_CONSTANT(RTX, C) \ - (gcc_assert (CONSTANT_POOL_ADDRESS_P (RTX)), X0CONSTANT ((RTX), 2) = (C)) + (gcc_assert (CONSTANT_POOL_ADDRESS_P (RTX)), X0CONSTANT ((RTX), 1) = (C)) /* The rtx constant pool entry for a symbol, or null. */ #define SYMBOL_REF_CONSTANT(RTX) \ - (CONSTANT_POOL_ADDRESS_P (RTX) ? X0CONSTANT ((RTX), 2) : NULL) + (CONSTANT_POOL_ADDRESS_P (RTX) ? X0CONSTANT ((RTX), 1) : NULL) /* A set of flags on a symbol_ref that are, in some respects, redundant with information derivable from the tree decl associated with this symbol. @@ -1791,7 +1794,9 @@ do { \ this information to avoid recomputing it. Finally, this allows space for the target to store more than one bit of information, as with SYMBOL_REF_FLAG. */ -#define SYMBOL_REF_FLAGS(RTX) X0INT ((RTX), 1) +#define SYMBOL_REF_FLAGS(RTX) \ + (RTL_FLAG_CHECK1 ("SYMBOL_REF_FLAGS", (RTX), SYMBOL_REF) \ + ->u2.symbol_ref_flags) /* These flags are common enough to be defined for all targets. They are computed by the default version of targetm.encode_section_info. */ |