aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard@codesourcery.com>2006-03-03 09:11:58 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2006-03-03 09:11:58 +0000
commit3fa9c136c3bed104251cba446fb9989504528e00 (patch)
tree735d1313d25f4094319b64fffac6f6b86aaed7f1 /gcc
parentf677599ed9974ede2549beab2eee10b9242bb845 (diff)
downloadgcc-3fa9c136c3bed104251cba446fb9989504528e00.zip
gcc-3fa9c136c3bed104251cba446fb9989504528e00.tar.gz
gcc-3fa9c136c3bed104251cba446fb9989504528e00.tar.bz2
tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of SYMBOL_REF_IN_BLOCK_P.
* doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of SYMBOL_REF_IN_BLOCK_P. * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead of SYMBOL_FLAG_IN_BLOCK. * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of SYMBOL_REF_IN_BLOCK_P. * explow.c (use_anchored_address): Likewise. * rtl.c (rtx_size): Likewise. * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO instead of SYMBOL_FLAG_IN_BLOCK. (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of SYMBOL_REF_IN_BLOCK_P. (assemble_variable): Likewise. (output_constant_def_contents): Likewise. (output_constant_pool): Likewise. (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO instead of SYMBOL_FLAG_IN_BLOCK. * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of SYMBOL_REF_IN_BLOCK_P. (SYMBOL_REF_BLOCK): Likewise. (SYMBOL_REF_OFFSET): Likewise. (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of SYMBOL_REF_IN_BLOCK_P. (SYMBOL_FLAG_IN_BLOCK): Replace with... (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this. (SYMBOL_REF_IN_BLOCK_P): Replace with... (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this. From-SVN: r111675
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog30
-rw-r--r--gcc/doc/rtl.texi23
-rw-r--r--gcc/doc/tm.texi2
-rw-r--r--gcc/explow.c2
-rw-r--r--gcc/gengtype.c7
-rw-r--r--gcc/rtl.c2
-rw-r--r--gcc/rtl.h28
-rw-r--r--gcc/varasm.c17
8 files changed, 73 insertions, 38 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4f1f040..1152768 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,33 @@
+2006-03-03 Richard Sandiford <richard@codesourcery.com>
+
+ * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
+ of SYMBOL_FLAG_IN_BLOCK.
+ * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
+ instead of SYMBOL_REF_IN_BLOCK_P.
+ * explow.c (use_anchored_address): Likewise.
+ * rtl.c (rtx_size): Likewise.
+ * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
+ instead of SYMBOL_FLAG_IN_BLOCK.
+ (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ (assemble_variable): Likewise.
+ (output_constant_def_contents): Likewise.
+ (output_constant_pool): Likewise.
+ (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
+ instead of SYMBOL_FLAG_IN_BLOCK.
+ * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ (SYMBOL_REF_BLOCK): Likewise.
+ (SYMBOL_REF_OFFSET): Likewise.
+ (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
+ SYMBOL_REF_IN_BLOCK_P.
+ (SYMBOL_FLAG_IN_BLOCK): Replace with...
+ (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
+ (SYMBOL_REF_IN_BLOCK_P): Replace with...
+ (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
+
2006-03-03 Jakub Jelinek <jakub@redhat.com>
* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi
index 76b3a3c..71e6df7 100644
--- a/gcc/doc/rtl.texi
+++ b/gcc/doc/rtl.texi
@@ -502,12 +502,11 @@ This is a multi-bit field accessor that returns the @code{tls_model}
to be used for a thread-local storage symbol. It returns zero for
non-thread-local symbols.
-@findex SYMBOL_REF_IN_BLOCK_P
-@findex SYMBOL_FLAG_IN_BLOCK
-@item SYMBOL_FLAG_IN_BLOCK
-Set if the symbol has been assigned to an @code{object_block} structure.
-@code{SYMBOL_REF_BLOCK} and @code{SYMBOL_REF_BLOCK_OFFSET} provide more
-information about such symbols.
+@findex SYMBOL_REF_HAS_BLOCK_INFO_P
+@findex SYMBOL_FLAG_HAS_BLOCK_INFO
+@item SYMBOL_FLAG_HAS_BLOCK_INFO
+Set if the symbol has @code{SYMBOL_REF_BLOCK} and
+@code{SYMBOL_REF_BLOCK_OFFSET} fields.
@findex SYMBOL_REF_ANCHOR_P
@findex SYMBOL_FLAG_ANCHOR
@@ -518,7 +517,7 @@ are symbols that have a known position within an @code{object_block}
and that can be used to access nearby members of that block.
They are used to implement @option{-fsection-anchors}.
-If this flag is set, then @code{SYMBOL_FLAG_IN_BLOCK} will be too.
+If this flag is set, then @code{SYMBOL_FLAG_HAS_BLOCK_INFO} will be too.
@end table
Bits beginning with @code{SYMBOL_FLAG_MACH_DEP} are available for
@@ -527,14 +526,16 @@ the target's use.
@findex SYMBOL_REF_BLOCK
@item SYMBOL_REF_BLOCK (@var{x})
-If @samp{SYMBOL_REF_IN_BLOCK_P (@var{x})}, this is the @samp{object_block}
-structure to which the symbol belongs, or @code{NULL} if none.
+If @samp{SYMBOL_REF_HAS_BLOCK_INFO_P (@var{x})}, this is the
+@samp{object_block} structure to which the symbol belongs,
+or @code{NULL} if it has not been assigned a block.
@findex SYMBOL_REF_BLOCK_OFFSET
@item SYMBOL_REF_BLOCK_OFFSET (@var{x})
-If @samp{SYMBOL_REF_IN_BLOCK_P (@var{x})}, this is the offset of @var{x}
+If @samp{SYMBOL_REF_HAS_BLOCK_INFO_P (@var{x})}, this is the offset of @var{x}
from the first object in @samp{SYMBOL_REF_BLOCK (@var{x})}. The value is
-negative if @var{x} has not yet been assigned an offset.
+negative if @var{x} has not yet been assigned to a block, or it has not
+been given an offset within that block.
@end table
@node Flags
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index e99989f..674cd95 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -5329,7 +5329,7 @@ is @code{NULL}, which disables the use of section anchors altogether.
@deftypefn {Target Hook} bool TARGET_USE_ANCHORS_FOR_SYMBOL_P (rtx @var{x})
Return true if GCC should attempt to use anchors to access @code{SYMBOL_REF}
-@var{x}. You can assume @samp{SYMBOL_REF_IN_BLOCK_P (@var{x})} and
+@var{x}. You can assume @samp{SYMBOL_REF_HAS_BLOCK_INFO_P (@var{x})} and
@samp{!SYMBOL_REF_ANCHOR_P (@var{x})}.
The default version is correct for most targets, but you might need to
diff --git a/gcc/explow.c b/gcc/explow.c
index 361c717..2cc3489 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -566,7 +566,7 @@ use_anchored_address (rtx x)
/* Check whether BASE is suitable for anchors. */
if (GET_CODE (base) != SYMBOL_REF
- || !SYMBOL_REF_IN_BLOCK_P (base)
+ || !SYMBOL_REF_HAS_BLOCK_INFO_P (base)
|| SYMBOL_REF_ANCHOR_P (base)
|| SYMBOL_REF_BLOCK (base) == NULL
|| !targetm.use_anchors_for_symbol_p (base))
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index a30e294..2ca4ac7 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -675,10 +675,11 @@ adjust_field_rtx_def (type_p t, options_p ARG_UNUSED (opt))
if (i == SYMBOL_REF)
{
- /* Add the "block_sym" field if SYMBOL_REF_IN_BLOCK_P holds. */
+ /* Add the "block_sym" field if SYMBOL_REF_HAS_BLOCK_INFO_P holds. */
type_p field_tp = find_structure ("block_symbol", 0);
- subfields = create_optional_field (subfields, field_tp, "block_sym",
- "SYMBOL_REF_IN_BLOCK_P (&%0)");
+ subfields
+ = create_optional_field (subfields, field_tp, "block_sym",
+ "SYMBOL_REF_HAS_BLOCK_INFO_P (&%0)");
}
sname = xasprintf ("rtx_def_%s", rtx_name[i]);
diff --git a/gcc/rtl.c b/gcc/rtl.c
index fca8ffa..b1c1ac1 100644
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -175,7 +175,7 @@ rtvec_alloc (int n)
unsigned int
rtx_size (rtx x)
{
- if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_IN_BLOCK_P (x))
+ if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_HAS_BLOCK_INFO_P (x))
return RTX_HDR_SIZE + sizeof (struct block_symbol);
return RTX_CODE_SIZE (GET_CODE (x));
}
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 236c8a1..409734d 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -178,7 +178,7 @@ typedef union rtunion_def rtunion;
/* This structure remembers the position of a SYMBOL_REF within an
object_block structure. A SYMBOL_REF only provides this information
- if SYMBOL_REF_IN_BLOCK_P is true. */
+ if SYMBOL_REF_HAS_BLOCK_INFO_P is true. */
struct block_symbol GTY(()) {
/* The usual SYMBOL_REF fields. */
rtunion GTY ((skip)) fld[3];
@@ -212,7 +212,7 @@ struct object_block GTY(())
order of increasing offset and the following conditions will
hold for each element X:
- SYMBOL_REF_IN_BLOCK_P (X)
+ SYMBOL_REF_HAS_BLOCK_INFO_P (X)
!SYMBOL_REF_ANCHOR_P (X)
SYMBOL_REF_BLOCK (X) == [address of this structure]
SYMBOL_REF_BLOCK_OFFSET (X) >= 0. */
@@ -222,7 +222,7 @@ struct object_block GTY(())
in order of increasing offset, and then increasing TLS model.
The following conditions will hold for each element X in this vector:
- SYMBOL_REF_IN_BLOCK_P (X)
+ SYMBOL_REF_HAS_BLOCK_INFO_P (X)
SYMBOL_REF_ANCHOR_P (X)
SYMBOL_REF_BLOCK (X) == [address of this structure]
SYMBOL_REF_BLOCK_OFFSET (X) >= 0. */
@@ -529,7 +529,7 @@ struct rtvec_def GTY(()) {
#define BLOCK_SYMBOL_CHECK(RTX) __extension__ \
({ rtx const _symbol = (RTX); \
unsigned int flags = RTL_CHECKC1 (_symbol, 1, SYMBOL_REF).rt_int; \
- if ((flags & SYMBOL_FLAG_IN_BLOCK) == 0) \
+ if ((flags & SYMBOL_FLAG_HAS_BLOCK_INFO) == 0) \
rtl_check_failed_block_symbol (__FILE__, __LINE__, \
__FUNCTION__); \
&_symbol->u.block_sym; })
@@ -1318,11 +1318,11 @@ do { \
#define SYMBOL_REF_EXTERNAL_P(RTX) \
((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_EXTERNAL) != 0)
/* Set if this symbol has a block_symbol structure associated with it. */
-#define SYMBOL_FLAG_IN_BLOCK (1 << 7)
-#define SYMBOL_REF_IN_BLOCK_P(RTX) \
- ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_IN_BLOCK) != 0)
+#define SYMBOL_FLAG_HAS_BLOCK_INFO (1 << 7)
+#define SYMBOL_REF_HAS_BLOCK_INFO_P(RTX) \
+ ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_HAS_BLOCK_INFO) != 0)
/* Set if this symbol is a section anchor. SYMBOL_REF_ANCHOR_P implies
- SYMBOL_REF_IN_BLOCK_P. */
+ SYMBOL_REF_HAS_BLOCK_INFO_P. */
#define SYMBOL_FLAG_ANCHOR (1 << 8)
#define SYMBOL_REF_ANCHOR_P(RTX) \
((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_ANCHOR) != 0)
@@ -1331,13 +1331,15 @@ do { \
#define SYMBOL_FLAG_MACH_DEP_SHIFT 9
#define SYMBOL_FLAG_MACH_DEP (1 << SYMBOL_FLAG_MACH_DEP_SHIFT)
-/* The block to which the given SYMBOL_REF belongs, or NULL if none.
- Only valid if SYMBOL_REF_IN_BLOCK_P (RTX). */
+/* If SYMBOL_REF_HAS_BLOCK_INFO_P (RTX), this is the object_block
+ structure to which the symbol belongs, or NULL if it has not been
+ assigned a block. */
#define SYMBOL_REF_BLOCK(RTX) (BLOCK_SYMBOL_CHECK (RTX)->block)
-/* The byte offset of the given SYMBOL_REF from the start of its block,
- or a negative value if the symbol has not yet been assigned a position.
- Only valid if SYMBOL_REF_IN_BLOCK_P (RTX). */
+/* If SYMBOL_REF_HAS_BLOCK_INFO_P (RTX), this is the offset of RTX from
+ the first object in SYMBOL_REF_BLOCK (RTX). The value is negative if
+ RTX has not yet been assigned to a block, or it has not been given an
+ offset within that block. */
#define SYMBOL_REF_BLOCK_OFFSET(RTX) (BLOCK_SYMBOL_CHECK (RTX)->offset)
/* Define a macro to look for REG_INC notes,
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 801d11e..4835c30 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -365,7 +365,7 @@ create_block_symbol (const char *label, struct object_block *block,
PUT_CODE (symbol, SYMBOL_REF);
PUT_MODE (symbol, Pmode);
XSTR (symbol, 0) = label;
- SYMBOL_REF_FLAGS (symbol) = SYMBOL_FLAG_IN_BLOCK;
+ SYMBOL_REF_FLAGS (symbol) = SYMBOL_FLAG_HAS_BLOCK_INFO;
/* Initialize the block_symbol stuff. */
SYMBOL_REF_BLOCK (symbol) = block;
@@ -986,11 +986,11 @@ make_decl_rtl (tree decl)
decl attribute overrides another. */
targetm.encode_section_info (decl, DECL_RTL (decl), false);
- /* If the old address was assigned to an object block, see whether
- that block is still in the right section. */
+ /* If the symbol has a SYMBOL_REF_BLOCK field, update it based
+ on the new decl information. */
if (MEM_P (x)
&& GET_CODE (XEXP (x, 0)) == SYMBOL_REF
- && SYMBOL_REF_IN_BLOCK_P (XEXP (x, 0)))
+ && SYMBOL_REF_HAS_BLOCK_INFO_P (XEXP (x, 0)))
change_symbol_block (XEXP (x, 0), get_block_for_decl (decl));
/* Make this function static known to the mudflap runtime. */
@@ -1819,7 +1819,7 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED,
/* If the decl is part of an object_block, make sure that the decl
has been positioned within its block, but do not write out its
definition yet. output_object_blocks will do that later. */
- if (SYMBOL_REF_IN_BLOCK_P (symbol) && SYMBOL_REF_BLOCK (symbol))
+ if (SYMBOL_REF_HAS_BLOCK_INFO_P (symbol) && SYMBOL_REF_BLOCK (symbol))
{
gcc_assert (!dont_output_data);
place_block_symbol (symbol);
@@ -2947,7 +2947,7 @@ output_constant_def_contents (rtx symbol)
/* If the constant is part of an object block, make sure that the
decl has been positioned within its block, but do not write out
its definition yet. output_object_blocks will do that later. */
- if (SYMBOL_REF_IN_BLOCK_P (symbol) && SYMBOL_REF_BLOCK (symbol))
+ if (SYMBOL_REF_HAS_BLOCK_INFO_P (symbol) && SYMBOL_REF_BLOCK (symbol))
place_block_symbol (symbol);
else
{
@@ -3508,7 +3508,8 @@ output_constant_pool (const char *fnname ATTRIBUTE_UNUSED,
the constant has been positioned within its block, but do not
write out its definition yet. output_object_blocks will do
that later. */
- if (SYMBOL_REF_IN_BLOCK_P (desc->sym) && SYMBOL_REF_BLOCK (desc->sym))
+ if (SYMBOL_REF_HAS_BLOCK_INFO_P (desc->sym)
+ && SYMBOL_REF_BLOCK (desc->sym))
place_block_symbol (desc->sym);
else
{
@@ -5683,7 +5684,7 @@ default_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
if (GET_CODE (symbol) != SYMBOL_REF)
return;
- flags = SYMBOL_REF_FLAGS (symbol) & SYMBOL_FLAG_IN_BLOCK;
+ flags = SYMBOL_REF_FLAGS (symbol) & SYMBOL_FLAG_HAS_BLOCK_INFO;
if (TREE_CODE (decl) == FUNCTION_DECL)
flags |= SYMBOL_FLAG_FUNCTION;
if (targetm.binds_local_p (decl))