* emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
const_double_htab_hash, const_double_htab_eq,
mem_attrs_htab_hash): Likewise.
* loop-iv.c (biv_eq): Likewise.
* print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
Likewise.
* rtl-error.c (location_for_asm, diagnostic_for_asm,
error_for_asm, warning_for_asm, _fatal_insn,
_fatal_insn_not_found): Likewise.
* rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
rtl_check_failed_type2, rtl_check_failed_code1,
rtl_check_failed_code2, rtl_check_failed_code_mode,
rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
* rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
rtl_check_failed_type2, rtl_check_failed_code1,
rtl_check_failed_code2, rtl_check_failed_code_mode,
rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
rtx_unstable_p, get_integer_term, get_related_value,
offset_within_block_p, reg_mentioned_p, count_occurrences,
reg_referenced_p, reg_used_between_p, no_labels_between_p,
single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
find_reg_note, find_regno_note, find_reg_equal_equiv_note,
find_constant_src, find_reg_fusage, find_regno_fusage,
pure_call_p, remove_note, side_effects_p, volatile_refs_p,
volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
computed_jump_p, auto_inc_p, in_expr_list_p,
remove_node_from_expr_list, loc_mentioned_in_p,
label_is_jump_target_p, reversed_comparison_code_parts,
debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
print_inline_rtx): Likewise.
* rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
get_integer_term, get_related_value, offset_within_block_p,
count_occurrences, reg_mentioned_p, no_labels_between_p,
reg_used_between_p, reg_referenced_p, single_set_2,
multiple_sets, set_noop_p, refers_to_regno_p,
reg_overlap_mentioned_p, dead_or_set_p,
covers_regno_no_parallel_p, covers_regno_p,
dead_or_set_regno_p, find_reg_note, find_regno_note,
find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
side_effects_p, may_trap_p_1, may_trap_p,
may_trap_after_code_motion_p, may_trap_or_fault_p,
inequality_comparisons_p, tablejump_p, computed_jump_p_1,
computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
* simplify-rtx.c (neg_const_int, plus_minus_operand_p,
mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
Likewise.
* toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
warning_for_asm): Likewise.
* tree.h (print_rtl): Likewise.
* varasm.c (get_pool_mode): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126922
138bc75d-0d04-0410-961f-
82ee72b054a4
2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * cfglayout.c (insn_scope, insn_line): Constify.
+ * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
+ const_double_htab_hash, const_double_htab_eq,
+ mem_attrs_htab_hash): Likewise.
+ * loop-iv.c (biv_eq): Likewise.
+ * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
+ print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
+ debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
+ Likewise.
+ * rtl-error.c (location_for_asm, diagnostic_for_asm,
+ error_for_asm, warning_for_asm, _fatal_insn,
+ _fatal_insn_not_found): Likewise.
+ * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
+ rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
+ rtl_check_failed_type2, rtl_check_failed_code1,
+ rtl_check_failed_code2, rtl_check_failed_code_mode,
+ rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
+ * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
+ rtl_check_failed_type2, rtl_check_failed_code1,
+ rtl_check_failed_code2, rtl_check_failed_code_mode,
+ rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
+ SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
+ shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
+ get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
+ mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
+ rtx_unstable_p, get_integer_term, get_related_value,
+ offset_within_block_p, reg_mentioned_p, count_occurrences,
+ reg_referenced_p, reg_used_between_p, no_labels_between_p,
+ single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
+ reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
+ find_reg_note, find_regno_note, find_reg_equal_equiv_note,
+ find_constant_src, find_reg_fusage, find_regno_fusage,
+ pure_call_p, remove_note, side_effects_p, volatile_refs_p,
+ volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
+ may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
+ computed_jump_p, auto_inc_p, in_expr_list_p,
+ remove_node_from_expr_list, loc_mentioned_in_p,
+ label_is_jump_target_p, reversed_comparison_code_parts,
+ debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
+ print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
+ print_inline_rtx): Likewise.
+ * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
+ computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
+ rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
+ get_integer_term, get_related_value, offset_within_block_p,
+ count_occurrences, reg_mentioned_p, no_labels_between_p,
+ reg_used_between_p, reg_referenced_p, single_set_2,
+ multiple_sets, set_noop_p, refers_to_regno_p,
+ reg_overlap_mentioned_p, dead_or_set_p,
+ covers_regno_no_parallel_p, covers_regno_p,
+ dead_or_set_regno_p, find_reg_note, find_regno_note,
+ find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
+ find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
+ remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
+ side_effects_p, may_trap_p_1, may_trap_p,
+ may_trap_after_code_motion_p, may_trap_or_fault_p,
+ inequality_comparisons_p, tablejump_p, computed_jump_p_1,
+ computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
+ subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
+ * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
+ mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
+ Likewise.
+ * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
+ warning_for_asm): Likewise.
+ * tree.h (print_rtl): Likewise.
+ * varasm.c (get_pool_mode): Likewise.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
* c-lex.c (c_lex_with_flags, lex_string): Constify.
* c-ppoutput.c (print_line, pp_dir_change): Likewise.
* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
void verify_insn_chain (void);
static void fixup_fallthru_exit_predecessor (void);
-static tree insn_scope (rtx);
+static tree insn_scope (const_rtx);
\f
rtx
unlink_insn_chain (rtx first, rtx last)
/* Return lexical scope block insn belong to. */
static tree
-insn_scope (rtx insn)
+insn_scope (const_rtx insn)
{
int max = VEC_length (int, block_locators_locs);
int min = 0;
/* Return line number of the statement that produced this insn. */
int
-insn_line (rtx insn)
+insn_line (const_rtx insn)
{
return locator_line (INSN_LOCATOR (insn));
}
/* Return source file of the statement that produced this insn. */
const char *
-insn_file (rtx insn)
+insn_file (const_rtx insn)
{
return locator_file (INSN_LOCATOR (insn));
}
static hashval_t
const_int_htab_hash (const void *x)
{
- return (hashval_t) INTVAL ((rtx) x);
+ return (hashval_t) INTVAL ((const_rtx) x);
}
/* Returns nonzero if the value represented by X (which is really a
static int
const_int_htab_eq (const void *x, const void *y)
{
- return (INTVAL ((rtx) x) == *((const HOST_WIDE_INT *) y));
+ return (INTVAL ((const_rtx) x) == *((const HOST_WIDE_INT *) y));
}
/* Returns a hash code for X (which is really a CONST_DOUBLE). */
static hashval_t
const_double_htab_hash (const void *x)
{
- rtx value = (rtx) x;
+ const_rtx const value = (const_rtx) x;
hashval_t h;
if (GET_MODE (value) == VOIDmode)
static int
const_double_htab_eq (const void *x, const void *y)
{
- rtx a = (rtx)x, b = (rtx)y;
+ const_rtx const a = (const_rtx)x, b = (const_rtx)y;
if (GET_MODE (a) != GET_MODE (b))
return 0;
static hashval_t
mem_attrs_htab_hash (const void *x)
{
- mem_attrs *p = (mem_attrs *) x;
+ const mem_attrs *const p = (const mem_attrs *) x;
return (p->alias ^ (p->align * 1000)
^ ((p->offset ? INTVAL (p->offset) : 0) * 50000)
static int
biv_eq (const void *b, const void *r)
{
- return ((const struct biv_entry *) b)->regno == REGNO ((rtx) r);
+ return ((const struct biv_entry *) b)->regno == REGNO ((const_rtx) r);
}
/* Prepare the data for an induction variable analysis of a LOOP. */
static int indent;
-static void print_rtx (rtx);
+static void print_rtx (const_rtx);
/* String printed at beginning of each RTL when it is dumped.
This string is set to ASM_COMMENT_START when the RTL is dumped in
#ifndef GENERATOR_FILE
static void
-print_decl_name (FILE *outfile, tree node)
+print_decl_name (FILE *outfile, const_tree node)
{
if (DECL_NAME (node))
fputs (IDENTIFIER_POINTER (DECL_NAME (node)), outfile);
}
void
-print_mem_expr (FILE *outfile, tree expr)
+print_mem_expr (FILE *outfile, const_tree expr)
{
if (TREE_CODE (expr) == COMPONENT_REF)
{
/* Print IN_RTX onto OUTFILE. This is the recursive part of printing. */
static void
-print_rtx (rtx in_rtx)
+print_rtx (const_rtx in_rtx)
{
int i = 0;
int j;
characters. */
void
-print_inline_rtx (FILE *outf, rtx x, int ind)
+print_inline_rtx (FILE *outf, const_rtx x, int ind)
{
int oldsaw = sawclose;
int oldindent = indent;
/* Call this function from the debugger to see what X looks like. */
void
-debug_rtx (rtx x)
+debug_rtx (const_rtx x)
{
outfile = stderr;
sawclose = 0;
EG: -5 prints 2 rtx's on either side (in addition to the specified rtx). */
void
-debug_rtx_list (rtx x, int n)
+debug_rtx_list (const_rtx x, int n)
{
int i,count;
- rtx insn;
+ const_rtx insn;
count = n == 0 ? 1 : n < 0 ? -n : n;
/* Call this function to print an rtx list from START to END inclusive. */
void
-debug_rtx_range (rtx start, rtx end)
+debug_rtx_range (const_rtx start, const_rtx end)
{
while (1)
{
and then call debug_rtx_list to print it, using DEBUG_RTX_COUNT.
The found insn is returned to enable further debugging analysis. */
-rtx
-debug_rtx_find (rtx x, int uid)
+const_rtx
+debug_rtx_find (const_rtx x, int uid)
{
while (x != 0 && INSN_UID (x) != uid)
x = NEXT_INSN (x);
If RTX_FIRST is not an insn, then it alone is printed, with no newline. */
void
-print_rtl (FILE *outf, rtx rtx_first)
+print_rtl (FILE *outf, const_rtx rtx_first)
{
- rtx tmp_rtx;
+ const_rtx tmp_rtx;
outfile = outf;
sawclose = 0;
/* Return nonzero if we actually printed anything. */
int
-print_rtl_single (FILE *outf, rtx x)
+print_rtl_single (FILE *outf, const_rtx x)
{
outfile = outf;
sawclose = 0;
if RTX is a CONST_INT then print in decimal format. */
void
-print_simple_rtl (FILE *outf, rtx x)
+print_simple_rtl (FILE *outf, const_rtx x)
{
flag_simple = 1;
print_rtl (outf, x);
#include "intl.h"
#include "diagnostic.h"
-static location_t location_for_asm (rtx);
-static void diagnostic_for_asm (rtx, const char *, va_list *, diagnostic_t) ATTRIBUTE_GCC_DIAG(2,0);
+static location_t location_for_asm (const_rtx);
+static void diagnostic_for_asm (const_rtx, const char *, va_list *, diagnostic_t) ATTRIBUTE_GCC_DIAG(2,0);
/* Figure the location of the given INSN. */
static location_t
-location_for_asm (rtx insn)
+location_for_asm (const_rtx insn)
{
rtx body = PATTERN (insn);
rtx asmop;
of the insn INSN. This is used only when INSN is an `asm' with operands,
and each ASM_OPERANDS records its own source file and line. */
static void
-diagnostic_for_asm (rtx insn, const char *msg, va_list *args_ptr,
+diagnostic_for_asm (const_rtx insn, const char *msg, va_list *args_ptr,
diagnostic_t kind)
{
diagnostic_info diagnostic;
}
void
-error_for_asm (rtx insn, const char *gmsgid, ...)
+error_for_asm (const_rtx insn, const char *gmsgid, ...)
{
va_list ap;
}
void
-warning_for_asm (rtx insn, const char *gmsgid, ...)
+warning_for_asm (const_rtx insn, const char *gmsgid, ...)
{
va_list ap;
}
void
-_fatal_insn (const char *msgid, rtx insn, const char *file, int line,
+_fatal_insn (const char *msgid, const_rtx insn, const char *file, int line,
const char *function)
{
error ("%s", _(msgid));
}
void
-_fatal_insn_not_found (rtx insn, const char *file, int line,
+_fatal_insn_not_found (const_rtx insn, const char *file, int line,
const char *function)
{
if (INSN_CODE (insn) < 0)
/* Return the number of bytes occupied by rtx value X. */
unsigned int
-rtx_size (rtx x)
+rtx_size (const_rtx x)
{
if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_HAS_BLOCK_INFO_P (x))
return RTX_HDR_SIZE + sizeof (struct block_symbol);
/* Return true if ORIG is a sharable CONST. */
bool
-shared_const_p (rtx orig)
+shared_const_p (const_rtx orig)
{
gcc_assert (GET_CODE (orig) == CONST);
/* Create a new copy of an rtx. Only copy just one level. */
rtx
-shallow_copy_rtx_stat (rtx orig MEM_STAT_DECL)
+shallow_copy_rtx_stat (const_rtx orig MEM_STAT_DECL)
{
- unsigned int size;
- rtx copy;
-
- size = rtx_size (orig);
- copy = (rtx) ggc_alloc_zone_pass_stat (size, &rtl_zone);
- memcpy (copy, orig, size);
- return copy;
+ const unsigned int size = rtx_size (orig);
+ rtx const copy = (rtx) ggc_alloc_zone_pass_stat (size, &rtl_zone);
+ return memcpy (copy, orig, size);
}
\f
/* Nonzero when we are generating CONCATs. */
This is the Lisp function EQUAL for rtx arguments. */
int
-rtx_equal_p (rtx x, rtx y)
+rtx_equal_p (const_rtx x, const_rtx y)
{
int i;
int j;
\f
#if defined ENABLE_RTL_CHECKING && (GCC_VERSION >= 2007)
void
-rtl_check_failed_bounds (rtx r, int n, const char *file, int line,
+rtl_check_failed_bounds (const_rtx r, int n, const char *file, int line,
const char *func)
{
internal_error
}
void
-rtl_check_failed_type1 (rtx r, int n, int c1, const char *file, int line,
+rtl_check_failed_type1 (const_rtx r, int n, int c1, const char *file, int line,
const char *func)
{
internal_error
}
void
-rtl_check_failed_type2 (rtx r, int n, int c1, int c2, const char *file,
+rtl_check_failed_type2 (const_rtx r, int n, int c1, int c2, const char *file,
int line, const char *func)
{
internal_error
}
void
-rtl_check_failed_code1 (rtx r, enum rtx_code code, const char *file,
+rtl_check_failed_code1 (const_rtx r, enum rtx_code code, const char *file,
int line, const char *func)
{
internal_error ("RTL check: expected code '%s', have '%s' in %s, at %s:%d",
}
void
-rtl_check_failed_code2 (rtx r, enum rtx_code code1, enum rtx_code code2,
+rtl_check_failed_code2 (const_rtx r, enum rtx_code code1, enum rtx_code code2,
const char *file, int line, const char *func)
{
internal_error
}
void
-rtl_check_failed_code_mode (rtx r, enum rtx_code code, enum machine_mode mode,
+rtl_check_failed_code_mode (const_rtx r, enum rtx_code code, enum machine_mode mode,
bool not_mode, const char *file, int line,
const char *func)
{
/* XXX Maybe print the vector? */
void
-rtvec_check_failed_bounds (rtvec r, int n, const char *file, int line,
+rtvec_check_failed_bounds (const_rtvec r, int n, const char *file, int line,
const char *func)
{
internal_error
#if defined ENABLE_RTL_FLAG_CHECKING
void
-rtl_check_failed_flag (const char *name, rtx r, const char *file,
+rtl_check_failed_flag (const char *name, const_rtx r, const char *file,
int line, const char *func)
{
internal_error
__FUNCTION__); \
&_symbol->u.block_sym; })
-extern void rtl_check_failed_bounds (rtx, int, const char *, int,
+extern void rtl_check_failed_bounds (const_rtx, int, const char *, int,
const char *)
ATTRIBUTE_NORETURN;
-extern void rtl_check_failed_type1 (rtx, int, int, const char *, int,
+extern void rtl_check_failed_type1 (const_rtx, int, int, const char *, int,
const char *)
ATTRIBUTE_NORETURN;
-extern void rtl_check_failed_type2 (rtx, int, int, int, const char *,
+extern void rtl_check_failed_type2 (const_rtx, int, int, int, const char *,
int, const char *)
ATTRIBUTE_NORETURN;
-extern void rtl_check_failed_code1 (rtx, enum rtx_code, const char *,
+extern void rtl_check_failed_code1 (const_rtx, enum rtx_code, const char *,
int, const char *)
ATTRIBUTE_NORETURN;
-extern void rtl_check_failed_code2 (rtx, enum rtx_code, enum rtx_code,
+extern void rtl_check_failed_code2 (const_rtx, enum rtx_code, enum rtx_code,
const char *, int, const char *)
ATTRIBUTE_NORETURN;
-extern void rtl_check_failed_code_mode (rtx, enum rtx_code, enum machine_mode,
+extern void rtl_check_failed_code_mode (const_rtx, enum rtx_code, enum machine_mode,
bool, const char *, int, const char *)
ATTRIBUTE_NORETURN;
extern void rtl_check_failed_block_symbol (const char *, int, const char *)
ATTRIBUTE_NORETURN;
-extern void rtvec_check_failed_bounds (rtvec, int, const char *, int,
+extern void rtvec_check_failed_bounds (const_rtvec, int, const char *, int,
const char *)
ATTRIBUTE_NORETURN;
__FUNCTION__); \
_rtx; })
-extern void rtl_check_failed_flag (const char *, rtx, const char *,
+extern void rtl_check_failed_flag (const char *, const_rtx, const char *,
int, const char *)
ATTRIBUTE_NORETURN
;
/* Retrieve the kind of LABEL. */
#define LABEL_KIND(LABEL) __extension__ \
-({ __typeof (LABEL) const _label = (LABEL); \
+({ __typeof (LABEL) const _label = (LABEL); \
if (GET_CODE (_label) != CODE_LABEL) \
rtl_check_failed_flag ("LABEL_KIND", _label, __FILE__, __LINE__, \
__FUNCTION__); \
/* Set the kind of LABEL. */
#define SET_LABEL_KIND(LABEL, KIND) do { \
- rtx const _label = (LABEL); \
+ __typeof (LABEL) const _label = (LABEL); \
const unsigned int _kind = (KIND); \
if (GET_CODE (_label) != CODE_LABEL) \
rtl_check_failed_flag ("SET_LABEL_KIND", _label, __FILE__, __LINE__, \
/* Force the REGNO macro to only be used on the lhs. */
static inline unsigned int
-rhs_regno (rtx x)
+rhs_regno (const_rtx x)
{
return XCUINT (x, 0, REG);
}
extern void init_rtlanal (void);
extern int rtx_cost (rtx, enum rtx_code);
extern int address_cost (rtx, enum machine_mode);
-extern unsigned int subreg_lsb (rtx);
+extern unsigned int subreg_lsb (const_rtx);
extern unsigned int subreg_lsb_1 (enum machine_mode, enum machine_mode,
unsigned int);
extern unsigned int subreg_regno_offset (unsigned int, enum machine_mode,
unsigned int, enum machine_mode);
extern bool subreg_offset_representable_p (unsigned int, enum machine_mode,
unsigned int, enum machine_mode);
-extern unsigned int subreg_regno (rtx);
-extern unsigned int subreg_nregs (rtx);
+extern unsigned int subreg_regno (const_rtx);
+extern unsigned int subreg_nregs (const_rtx);
extern unsigned HOST_WIDE_INT nonzero_bits (rtx, enum machine_mode);
extern unsigned int num_sign_bit_copies (rtx, enum machine_mode);
extern bool constant_pool_constant_p (rtx);
#define rtx_alloc(c) rtx_alloc_stat (c MEM_STAT_INFO)
extern rtvec rtvec_alloc (int);
-extern bool shared_const_p (rtx);
+extern bool shared_const_p (const_rtx);
extern rtx copy_rtx (rtx);
extern void dump_rtx_statistics (void);
extern rtx copy_rtx_if_shared (rtx);
/* In rtl.c */
-extern unsigned int rtx_size (rtx);
-extern rtx shallow_copy_rtx_stat (rtx MEM_STAT_DECL);
+extern unsigned int rtx_size (const_rtx);
+extern rtx shallow_copy_rtx_stat (const_rtx MEM_STAT_DECL);
#define shallow_copy_rtx(a) shallow_copy_rtx_stat (a MEM_STAT_INFO)
-extern int rtx_equal_p (rtx, rtx);
+extern int rtx_equal_p (const_rtx, const_rtx);
/* In emit-rtl.c */
extern rtvec gen_rtvec_v (int, rtx *);
struct function;
extern rtx get_pool_constant (rtx);
extern rtx get_pool_constant_mark (rtx, bool *);
-extern enum machine_mode get_pool_mode (rtx);
+extern enum machine_mode get_pool_mode (const_rtx);
extern rtx simplify_subtraction (rtx);
/* In function.c */
extern rtx prev_cc0_setter (rtx);
/* In cfglayout.c */
-extern int insn_line (rtx);
-extern const char * insn_file (rtx);
+extern int insn_line (const_rtx);
+extern const char * insn_file (const_rtx);
extern int locator_line (int);
extern const char * locator_file (int);
extern int prologue_locator, epilogue_locator;
unsigned int);
extern rtx simplify_gen_subreg (enum machine_mode, rtx, enum machine_mode,
unsigned int);
-extern rtx simplify_replace_rtx (rtx, rtx, rtx);
+extern rtx simplify_replace_rtx (rtx, const_rtx, rtx);
extern rtx simplify_rtx (rtx);
extern rtx avoid_constant_pool_reference (rtx);
-extern bool mode_signbit_p (enum machine_mode, rtx);
+extern bool mode_signbit_p (enum machine_mode, const_rtx);
/* In regclass.c */
extern enum machine_mode choose_hard_reg_mode (unsigned int, unsigned int,
bool update_label_nuses;
} replace_label_data;
-extern int rtx_addr_can_trap_p (rtx);
-extern bool nonzero_address_p (rtx);
-extern int rtx_unstable_p (rtx);
+extern int rtx_addr_can_trap_p (const_rtx);
+extern bool nonzero_address_p (const_rtx);
+extern int rtx_unstable_p (const_rtx);
extern int rtx_varies_p (rtx, int);
extern int rtx_addr_varies_p (rtx, int);
-extern HOST_WIDE_INT get_integer_term (rtx);
-extern rtx get_related_value (rtx);
-extern bool offset_within_block_p (rtx, HOST_WIDE_INT);
+extern HOST_WIDE_INT get_integer_term (const_rtx);
+extern rtx get_related_value (const_rtx);
+extern bool offset_within_block_p (const_rtx, HOST_WIDE_INT);
extern void split_const (rtx, rtx *, rtx *);
-extern int reg_mentioned_p (rtx, rtx);
-extern int count_occurrences (rtx, rtx, int);
-extern int reg_referenced_p (rtx, rtx);
-extern int reg_used_between_p (rtx, rtx, rtx);
+extern int reg_mentioned_p (const_rtx, const_rtx);
+extern int count_occurrences (const_rtx, const_rtx, int);
+extern int reg_referenced_p (const_rtx, const_rtx);
+extern int reg_used_between_p (const_rtx, const_rtx, const_rtx);
extern int reg_set_between_p (rtx, rtx, rtx);
extern int commutative_operand_precedence (rtx);
extern bool swap_commutative_operands_p (rtx, rtx);
extern int modified_between_p (rtx, rtx, rtx);
-extern int no_labels_between_p (rtx, rtx);
+extern int no_labels_between_p (const_rtx, const_rtx);
extern int modified_in_p (rtx, rtx);
extern int reg_set_p (rtx, rtx);
-extern rtx single_set_2 (rtx, rtx);
-extern int multiple_sets (rtx);
-extern int set_noop_p (rtx);
+extern rtx single_set_2 (const_rtx, const_rtx);
+extern int multiple_sets (const_rtx);
+extern int set_noop_p (const_rtx);
extern int noop_move_p (rtx);
extern rtx find_last_value (rtx, rtx *, rtx, int);
-extern int refers_to_regno_p (unsigned int, unsigned int, rtx, rtx *);
-extern int reg_overlap_mentioned_p (rtx, rtx);
+extern int refers_to_regno_p (unsigned int, unsigned int, const_rtx, rtx *);
+extern int reg_overlap_mentioned_p (const_rtx, const_rtx);
extern rtx set_of (rtx, rtx);
extern void note_stores (rtx, void (*) (rtx, rtx, void *), void *);
extern void note_uses (rtx *, void (*) (rtx *, void *), void *);
-extern int dead_or_set_p (rtx, rtx);
-extern int dead_or_set_regno_p (rtx, unsigned int);
-extern rtx find_reg_note (rtx, enum reg_note, rtx);
-extern rtx find_regno_note (rtx, enum reg_note, unsigned int);
-extern rtx find_reg_equal_equiv_note (rtx);
-extern rtx find_constant_src (rtx);
-extern int find_reg_fusage (rtx, enum rtx_code, rtx);
-extern int find_regno_fusage (rtx, enum rtx_code, unsigned int);
-extern int pure_call_p (rtx);
-extern void remove_note (rtx, rtx);
+extern int dead_or_set_p (const_rtx, const_rtx);
+extern int dead_or_set_regno_p (const_rtx, unsigned int);
+extern rtx find_reg_note (const_rtx, enum reg_note, const_rtx);
+extern rtx find_regno_note (const_rtx, enum reg_note, unsigned int);
+extern rtx find_reg_equal_equiv_note (const_rtx);
+extern rtx find_constant_src (const_rtx);
+extern int find_reg_fusage (const_rtx, enum rtx_code, const_rtx);
+extern int find_regno_fusage (const_rtx, enum rtx_code, unsigned int);
+extern int pure_call_p (const_rtx);
+extern void remove_note (rtx, const_rtx);
extern void remove_reg_equal_equiv_notes (rtx);
-extern int side_effects_p (rtx);
-extern int volatile_refs_p (rtx);
-extern int volatile_insn_p (rtx);
-extern int may_trap_p (rtx);
-extern int may_trap_after_code_motion_p (rtx);
-extern int may_trap_or_fault_p (rtx);
-extern int inequality_comparisons_p (rtx);
+extern int side_effects_p (const_rtx);
+extern int volatile_refs_p (const_rtx);
+extern int volatile_insn_p (const_rtx);
+extern int may_trap_p (const_rtx);
+extern int may_trap_after_code_motion_p (const_rtx);
+extern int may_trap_or_fault_p (const_rtx);
+extern int inequality_comparisons_p (const_rtx);
extern rtx replace_rtx (rtx, rtx, rtx);
extern int replace_label (rtx *, void *);
extern int rtx_referenced_p (rtx, rtx);
-extern bool tablejump_p (rtx, rtx *, rtx *);
-extern int computed_jump_p (rtx);
+extern bool tablejump_p (const_rtx, rtx *, rtx *);
+extern int computed_jump_p (const_rtx);
typedef int (*rtx_function) (rtx *, void *);
extern int for_each_rtx (rtx *, rtx_function, void *);
extern rtx regno_use_in (unsigned int, rtx);
-extern int auto_inc_p (rtx);
-extern int in_expr_list_p (rtx, rtx);
-extern void remove_node_from_expr_list (rtx, rtx *);
-extern int loc_mentioned_in_p (rtx *, rtx);
+extern int auto_inc_p (const_rtx);
+extern int in_expr_list_p (const_rtx, const_rtx);
+extern void remove_node_from_expr_list (const_rtx, rtx *);
+extern int loc_mentioned_in_p (rtx *, const_rtx);
extern rtx find_first_parameter_load (rtx, rtx);
extern bool keep_with_call_p (rtx);
-extern bool label_is_jump_target_p (rtx, rtx);
+extern bool label_is_jump_target_p (const_rtx, const_rtx);
extern int insn_rtx_cost (rtx);
/* Given an insn and condition, return a canonical description of
extern void rebuild_jump_labels (rtx);
extern rtx reversed_comparison (rtx, enum machine_mode);
extern enum rtx_code reversed_comparison_code (rtx, rtx);
-extern enum rtx_code reversed_comparison_code_parts (enum rtx_code,
- rtx, rtx, rtx);
+extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, rtx,
+ rtx, rtx);
extern void delete_for_peephole (rtx, rtx);
extern int condjump_in_parallel_p (rtx);
/* In print-rtl.c */
extern const char *print_rtx_head;
-extern void debug_rtx (rtx);
-extern void debug_rtx_list (rtx, int);
-extern void debug_rtx_range (rtx, rtx);
-extern rtx debug_rtx_find (rtx, int);
-extern void print_mem_expr (FILE *, tree);
-extern void print_rtl (FILE *, rtx);
-extern void print_simple_rtl (FILE *, rtx);
-extern int print_rtl_single (FILE *, rtx);
-extern void print_inline_rtx (FILE *, rtx, int);
+extern void debug_rtx (const_rtx);
+extern void debug_rtx_list (const_rtx, int);
+extern void debug_rtx_range (const_rtx, const_rtx);
+extern const_rtx debug_rtx_find (const_rtx, int);
+extern void print_mem_expr (FILE *, const_tree);
+extern void print_rtl (FILE *, const_rtx);
+extern void print_simple_rtl (FILE *, const_rtx);
+extern int print_rtl_single (FILE *, const_rtx);
+extern void print_inline_rtx (FILE *, const_rtx, int);
/* In function.c */
extern void reposition_prologue_and_epilogue_notes (void);
/* Forward declarations */
static void set_of_1 (rtx, rtx, void *);
-static bool covers_regno_p (rtx, unsigned int);
-static bool covers_regno_no_parallel_p (rtx, unsigned int);
+static bool covers_regno_p (const_rtx, unsigned int);
+static bool covers_regno_no_parallel_p (const_rtx, unsigned int);
static int rtx_referenced_p_1 (rtx *, void *);
-static int computed_jump_p_1 (rtx);
+static int computed_jump_p_1 (const_rtx);
static void parms_set (rtx, rtx, void *);
static void subreg_get_info (unsigned int, enum machine_mode,
unsigned int, enum machine_mode,
static unsigned HOST_WIDE_INT cached_nonzero_bits (rtx, enum machine_mode,
rtx, enum machine_mode,
unsigned HOST_WIDE_INT);
-static unsigned HOST_WIDE_INT nonzero_bits1 (rtx, enum machine_mode, rtx,
- enum machine_mode,
+static unsigned HOST_WIDE_INT nonzero_bits1 (rtx, enum machine_mode,
+ rtx, enum machine_mode,
unsigned HOST_WIDE_INT);
static unsigned int cached_num_sign_bit_copies (rtx, enum machine_mode, rtx,
enum machine_mode,
(within one function) and so is anything marked `unchanging'. */
int
-rtx_unstable_p (rtx x)
+rtx_unstable_p (const_rtx x)
{
- RTX_CODE code = GET_CODE (x);
+ const RTX_CODE code = GET_CODE (x);
int i;
const char *fmt;
alignment machines. */
static int
-rtx_addr_can_trap_p_1 (rtx x, enum machine_mode mode, bool unaligned_mems)
+rtx_addr_can_trap_p_1 (const_rtx x, enum machine_mode mode, bool unaligned_mems)
{
enum rtx_code code = GET_CODE (x);
/* Return nonzero if the use of X as an address in a MEM can cause a trap. */
int
-rtx_addr_can_trap_p (rtx x)
+rtx_addr_can_trap_p (const_rtx x)
{
return rtx_addr_can_trap_p_1 (x, VOIDmode, false);
}
/* Return true if X is an address that is known to not be zero. */
bool
-nonzero_address_p (rtx x)
+nonzero_address_p (const_rtx x)
{
- enum rtx_code code = GET_CODE (x);
+ const enum rtx_code code = GET_CODE (x);
switch (code)
{
This is used in cse.c with the `related_value' field. */
HOST_WIDE_INT
-get_integer_term (rtx x)
+get_integer_term (const_rtx x)
{
if (GET_CODE (x) == CONST)
x = XEXP (x, 0);
Only obvious integer terms are detected. */
rtx
-get_related_value (rtx x)
+get_related_value (const_rtx x)
{
if (GET_CODE (x) != CONST)
return 0;
to somewhere in the same object or object_block as SYMBOL. */
bool
-offset_within_block_p (rtx symbol, HOST_WIDE_INT offset)
+offset_within_block_p (const_rtx symbol, HOST_WIDE_INT offset)
{
tree decl;
zero, we do not count occurrences inside the destination of a SET. */
int
-count_occurrences (rtx x, rtx find, int count_dest)
+count_occurrences (const_rtx x, const_rtx find, int count_dest)
{
int i, j;
enum rtx_code code;
for a subexpression of IN that is Lisp "equal" to REG. */
int
-reg_mentioned_p (rtx reg, rtx in)
+reg_mentioned_p (const_rtx reg, const_rtx in)
{
const char *fmt;
int i;
no CODE_LABEL insn. */
int
-no_labels_between_p (rtx beg, rtx end)
+no_labels_between_p (const_rtx beg, const_rtx end)
{
rtx p;
if (beg == end)
FROM_INSN and TO_INSN (exclusive of those two). */
int
-reg_used_between_p (rtx reg, rtx from_insn, rtx to_insn)
+reg_used_between_p (const_rtx reg, const_rtx from_insn, const_rtx to_insn)
{
rtx insn;
we do not consider it a reference. */
int
-reg_referenced_p (rtx x, rtx body)
+reg_referenced_p (const_rtx x, const_rtx body)
{
int i;
will not be used, which we ignore. */
rtx
-single_set_2 (rtx insn, rtx pat)
+single_set_2 (const_rtx insn, const_rtx pat)
{
rtx set = NULL;
int set_verified = 1;
zero. */
int
-multiple_sets (rtx insn)
+multiple_sets (const_rtx insn)
{
int found;
int i;
and there are no side effects. */
int
-set_noop_p (rtx set)
+set_noop_p (const_rtx set)
{
rtx src = SET_SRC (set);
rtx dst = SET_DEST (set);
LOC may be zero, meaning don't ignore anything. */
int
-refers_to_regno_p (unsigned int regno, unsigned int endregno, rtx x,
+refers_to_regno_p (unsigned int regno, unsigned int endregno, const_rtx x,
rtx *loc)
{
int i;
conflict because we expect this to be a rare case. */
int
-reg_overlap_mentioned_p (rtx x, rtx in)
+reg_overlap_mentioned_p (const_rtx x, const_rtx in)
{
unsigned int regno, endregno;
by INSN. */
int
-dead_or_set_p (rtx insn, rtx x)
+dead_or_set_p (const_rtx insn, const_rtx x)
{
unsigned int regno, end_regno;
unsigned int i;
part of the register is TEST_REGNO. */
static bool
-covers_regno_no_parallel_p (rtx dest, unsigned int test_regno)
+covers_regno_no_parallel_p (const_rtx dest, unsigned int test_regno)
{
unsigned int regno, endregno;
any member matches the covers_regno_no_parallel_p criteria. */
static bool
-covers_regno_p (rtx dest, unsigned int test_regno)
+covers_regno_p (const_rtx dest, unsigned int test_regno)
{
if (GET_CODE (dest) == PARALLEL)
{
/* Utility function for dead_or_set_p to check an individual register. */
int
-dead_or_set_regno_p (rtx insn, unsigned int test_regno)
+dead_or_set_regno_p (const_rtx insn, unsigned int test_regno)
{
- rtx pattern;
+ const_rtx pattern;
/* See if there is a death note for something that includes TEST_REGNO. */
if (find_regno_note (insn, REG_DEAD, test_regno))
If DATUM is nonzero, look for one whose datum is DATUM. */
rtx
-find_reg_note (rtx insn, enum reg_note kind, rtx datum)
+find_reg_note (const_rtx insn, enum reg_note kind, const_rtx datum)
{
rtx link;
it might be the case that the note overlaps REGNO. */
rtx
-find_regno_note (rtx insn, enum reg_note kind, unsigned int regno)
+find_regno_note (const_rtx insn, enum reg_note kind, unsigned int regno)
{
rtx link;
has such a note. */
rtx
-find_reg_equal_equiv_note (rtx insn)
+find_reg_equal_equiv_note (const_rtx insn)
{
rtx link;
return null. */
rtx
-find_constant_src (rtx insn)
+find_constant_src (const_rtx insn)
{
rtx note, set, x;
in the CALL_INSN_FUNCTION_USAGE information of INSN. */
int
-find_reg_fusage (rtx insn, enum rtx_code code, rtx datum)
+find_reg_fusage (const_rtx insn, enum rtx_code code, const_rtx datum)
{
/* If it's not a CALL_INSN, it can't possibly have a
CALL_INSN_FUNCTION_USAGE field, so don't bother checking. */
in the CALL_INSN_FUNCTION_USAGE information of INSN. */
int
-find_regno_fusage (rtx insn, enum rtx_code code, unsigned int regno)
+find_regno_fusage (const_rtx insn, enum rtx_code code, unsigned int regno)
{
rtx link;
/* Return true if INSN is a call to a pure function. */
int
-pure_call_p (rtx insn)
+pure_call_p (const_rtx insn)
{
- rtx link;
+ const_rtx link;
if (!CALL_P (insn) || ! CONST_OR_PURE_CALL_P (insn))
return 0;
/* Remove register note NOTE from the REG_NOTES of INSN. */
void
-remove_note (rtx insn, rtx note)
+remove_note (rtx insn, const_rtx note)
{
rtx link;
NODE matches. */
int
-in_expr_list_p (rtx listp, rtx node)
+in_expr_list_p (const_rtx listp, const_rtx node)
{
- rtx x;
+ const_rtx x;
for (x = listp; x; x = XEXP (x, 1))
if (node == XEXP (x, 0))
A simple equality test is used to determine if NODE matches. */
void
-remove_node_from_expr_list (rtx node, rtx *listp)
+remove_node_from_expr_list (const_rtx node, rtx *listp)
{
rtx temp = *listp;
rtx prev = NULL_RTX;
only volatile asms and UNSPEC_VOLATILE instructions. */
int
-volatile_insn_p (rtx x)
+volatile_insn_p (const_rtx x)
{
- RTX_CODE code;
-
- code = GET_CODE (x);
+ const RTX_CODE code = GET_CODE (x);
switch (code)
{
case LABEL_REF:
/* Recursively scan the operands of this expression. */
{
- const char *fmt = GET_RTX_FORMAT (code);
+ const char *const fmt = GET_RTX_FORMAT (code);
int i;
for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
UNSPEC_VOLATILE operations or volatile ASM_OPERANDS expressions. */
int
-volatile_refs_p (rtx x)
+volatile_refs_p (const_rtx x)
{
- RTX_CODE code;
-
- code = GET_CODE (x);
+ const RTX_CODE code = GET_CODE (x);
switch (code)
{
case LABEL_REF:
/* Recursively scan the operands of this expression. */
{
- const char *fmt = GET_RTX_FORMAT (code);
+ const char *const fmt = GET_RTX_FORMAT (code);
int i;
for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
incrementing. */
int
-side_effects_p (rtx x)
+side_effects_p (const_rtx x)
{
- RTX_CODE code;
-
- code = GET_CODE (x);
+ const RTX_CODE code = GET_CODE (x);
switch (code)
{
case LABEL_REF:
elsewhere. */
static int
-may_trap_p_1 (rtx x, unsigned flags)
+may_trap_p_1 (const_rtx x, unsigned flags)
{
int i;
enum rtx_code code;
/* Return nonzero if evaluating rtx X might cause a trap. */
int
-may_trap_p (rtx x)
+may_trap_p (const_rtx x)
{
return may_trap_p_1 (x, 0);
}
is moved from its current location by some optimization. */
int
-may_trap_after_code_motion_p (rtx x)
+may_trap_after_code_motion_p (const_rtx x)
{
return may_trap_p_1 (x, MTP_AFTER_MOVE);
}
on a strict alignment machine. */
int
-may_trap_or_fault_p (rtx x)
+may_trap_or_fault_p (const_rtx x)
{
return may_trap_p_1 (x, MTP_UNALIGNED_MEMS);
}
i.e., an inequality. */
int
-inequality_comparisons_p (rtx x)
+inequality_comparisons_p (const_rtx x)
{
const char *fmt;
int len, i;
- enum rtx_code code = GET_CODE (x);
+ const enum rtx_code code = GET_CODE (x);
switch (code)
{
*LABELP and the jump table to *TABLEP. LABELP and TABLEP may be NULL. */
bool
-tablejump_p (rtx insn, rtx *labelp, rtx *tablep)
+tablejump_p (const_rtx insn, rtx *labelp, rtx *tablep)
{
rtx label, table;
of an IF_THEN_ELSE. */
static int
-computed_jump_p_1 (rtx x)
+computed_jump_p_1 (const_rtx x)
{
- enum rtx_code code = GET_CODE (x);
+ const enum rtx_code code = GET_CODE (x);
int i, j;
const char *fmt;
we can recognize them by a (use (label_ref)). */
int
-computed_jump_p (rtx insn)
+computed_jump_p (const_rtx insn)
{
int i;
if (JUMP_P (insn))
/* Return 1 if X is an autoincrement side effect and the register is
not the stack pointer. */
int
-auto_inc_p (rtx x)
+auto_inc_p (const_rtx x)
{
switch (GET_CODE (x))
{
/* Return nonzero if IN contains a piece of rtl that has the address LOC. */
int
-loc_mentioned_in_p (rtx *loc, rtx in)
+loc_mentioned_in_p (rtx *loc, const_rtx in)
{
enum rtx_code code;
const char *fmt;
(counting from the least significant bit of the reg). */
unsigned int
-subreg_lsb (rtx x)
+subreg_lsb (const_rtx x)
{
return subreg_lsb_1 (GET_MODE (x), GET_MODE (SUBREG_REG (x)),
SUBREG_BYTE (x));
/* Return the final regno that a subreg expression refers to. */
unsigned int
-subreg_regno (rtx x)
+subreg_regno (const_rtx x)
{
unsigned int ret;
rtx subreg = SUBREG_REG (x);
/* Return the number of registers that a subreg expression refers
to. */
unsigned int
-subreg_nregs (rtx x)
+subreg_nregs (const_rtx x)
{
struct subreg_info info;
rtx subreg = SUBREG_REG (x);
not apply to the fallthru case of a conditional jump. */
bool
-label_is_jump_target_p (rtx label, rtx jump_insn)
+label_is_jump_target_p (const_rtx label, const_rtx jump_insn)
{
rtx tmp = JUMP_LABEL (jump_insn);
{
enum rtx_code code;
rtx prev = insn;
- rtx set;
+ const_rtx set;
rtx tem;
rtx op0, op1;
int reverse_code = 0;
#define HWI_SIGN_EXTEND(low) \
((((HOST_WIDE_INT) low) < 0) ? ((HOST_WIDE_INT) -1) : ((HOST_WIDE_INT) 0))
-static rtx neg_const_int (enum machine_mode, rtx);
-static bool plus_minus_operand_p (rtx);
+static rtx neg_const_int (enum machine_mode, const_rtx);
+static bool plus_minus_operand_p (const_rtx);
static bool simplify_plus_minus_op_data_cmp (rtx, rtx);
static rtx simplify_plus_minus (enum rtx_code, enum machine_mode, rtx, rtx);
static rtx simplify_immed_subreg (enum machine_mode, rtx, enum machine_mode,
/* Negate a CONST_INT rtx, truncating (because a conversion from a
maximally negative number can overflow). */
static rtx
-neg_const_int (enum machine_mode mode, rtx i)
+neg_const_int (enum machine_mode mode, const_rtx i)
{
return gen_int_mode (- INTVAL (i), mode);
}
the most significant bit of machine mode MODE. */
bool
-mode_signbit_p (enum machine_mode mode, rtx x)
+mode_signbit_p (enum machine_mode mode, const_rtx x)
{
unsigned HOST_WIDE_INT val;
unsigned int width;
resulting RTX. Return a new RTX which is as simplified as possible. */
rtx
-simplify_replace_rtx (rtx x, rtx old_rtx, rtx new_rtx)
+simplify_replace_rtx (rtx x, const_rtx old_rtx, rtx new_rtx)
{
enum rtx_code code = GET_CODE (x);
enum machine_mode mode = GET_MODE (x);
/* Check whether an operand is suitable for calling simplify_plus_minus. */
static bool
-plus_minus_operand_p (rtx x)
+plus_minus_operand_p (const_rtx x)
{
return GET_CODE (x) == PLUS
|| GET_CODE (x) == MINUS
extern int read_integral_parameter (const char *, const char *, const int);
extern void strip_off_ending (char *, int);
extern const char *trim_filename (const char *);
-extern void _fatal_insn_not_found (rtx, const char *, int, const char *)
+extern void _fatal_insn_not_found (const_rtx, const char *, int, const char *)
ATTRIBUTE_NORETURN;
-extern void _fatal_insn (const char *, rtx, const char *, int, const char *)
+extern void _fatal_insn (const char *, const_rtx, const char *, int, const char *)
ATTRIBUTE_NORETURN;
#define fatal_insn(msgid, insn) \
extern void announce_function (tree);
-extern void error_for_asm (rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
-extern void warning_for_asm (rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
+extern void error_for_asm (const_rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
+extern void warning_for_asm (const_rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
extern void warn_deprecated_use (tree);
#ifdef BUFSIZ
/* In print-rtl.c */
#ifdef BUFSIZ
-extern void print_rtl (FILE *, rtx);
+extern void print_rtl (FILE *, const_rtx);
#endif
/* In print-tree.c */
/* Similar, return the mode. */
enum machine_mode
-get_pool_mode (rtx addr)
+get_pool_mode (const_rtx addr)
{
return SYMBOL_REF_CONSTANT (addr)->mode;
}