X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Frtl.h;h=80c3114c5e7beed928087dfb6b31df77f5d5d121;hp=989bea8dc55047a9830d36f1820cf545c67bbe59;hb=67c3f5800258cc7f24b26b3a62e43eb30eee6df4;hpb=1edb3690ac67a2f68d5b7a1507d3d2159b9ae219 diff --git a/gcc/rtl.h b/gcc/rtl.h index 989bea8dc55..80c3114c5e7 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1,6 +1,7 @@ /* Register Transfer Language (RTL) definitions for GCC - Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 + Free Software Foundation, Inc. This file is part of GCC. @@ -361,7 +362,7 @@ struct rtvec_def GTY(()) { /* Predicate yielding nonzero iff X is an rtx for a memory location. */ #define MEM_P(X) (GET_CODE (X) == MEM) -/* Prediacte yielding nonzero iff X is an rtx for a constant integer. */ +/* Predicate yielding nonzero iff X is an rtx for a constant integer. */ #define CONST_INT_P(X) (GET_CODE (X) == CONST_INT) /* Predicate yielding nonzero iff X is a label insn. */ @@ -850,7 +851,6 @@ extern const char * const reg_note_name[]; #define NOTE_BLOCK(INSN) XCTREE (INSN, 4, NOTE) #define NOTE_EH_HANDLER(INSN) XCINT (INSN, 4, NOTE) #define NOTE_BASIC_BLOCK(INSN) XCBBDEF (INSN, 4, NOTE) -#define NOTE_EXPECTED_VALUE(INSN) XCEXP (INSN, 4, NOTE) #define NOTE_VAR_LOCATION(INSN) XCEXP (INSN, 4, NOTE) /* In a NOTE that is a line number, this is the line number. @@ -996,6 +996,7 @@ enum label_kind /* For a CONST_INT rtx, INTVAL extracts the integer. */ #define INTVAL(RTX) XCWINT(RTX, 0, CONST_INT) +#define UINTVAL(RTX) ((unsigned HOST_WIDE_INT) INTVAL (RTX)) /* For a CONST_DOUBLE: For a VOIDmode, there are two integers CONST_DOUBLE_LOW is the @@ -1040,6 +1041,7 @@ extern unsigned int subreg_regno_offset (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 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); @@ -1195,13 +1197,9 @@ do { \ MEM_NOTRAP_P (LHS) = MEM_NOTRAP_P (RHS), \ MEM_READONLY_P (LHS) = MEM_READONLY_P (RHS), \ MEM_KEEP_ALIAS_SET_P (LHS) = MEM_KEEP_ALIAS_SET_P (RHS), \ + MEM_POINTER (LHS) = MEM_POINTER (RHS), \ MEM_ATTRS (LHS) = MEM_ATTRS (RHS)) -/* 1 if RTX is a label_ref to a label outside the loop containing the - reference. */ -#define LABEL_OUTSIDE_LOOP_P(RTX) \ - (RTL_FLAG_CHECK1("LABEL_OUTSIDE_LOOP_P", (RTX), LABEL_REF)->in_struct) - /* 1 if RTX is a label_ref for a nonlocal label. */ /* Likewise in an expr_list for a reg_label note. */ #define LABEL_REF_NONLOCAL_P(RTX) \ @@ -1437,9 +1435,6 @@ extern int currently_expanding_to_rtl; /* In expmed.c */ extern int ceil_log2 (unsigned HOST_WIDE_INT); -/* In builtins.c */ -extern rtx expand_builtin_expect_jump (tree, rtx, rtx); - /* In explow.c */ extern void set_stack_check_libfunc (rtx); extern HOST_WIDE_INT trunc_int_for_mode (HOST_WIDE_INT, enum machine_mode); @@ -1477,6 +1472,7 @@ extern int rtx_equal_p (rtx, rtx); extern rtvec gen_rtvec_v (int, rtx *); extern rtx gen_reg_rtx (enum machine_mode); extern rtx gen_rtx_REG_offset (rtx, enum machine_mode, unsigned int, int); +extern rtx gen_reg_rtx_offset (rtx, enum machine_mode, int); extern rtx gen_label_rtx (void); extern rtx gen_lowpart_common (enum machine_mode, rtx); @@ -1556,7 +1552,6 @@ extern rtx emit_call_insn_after_setloc (rtx, rtx, int); extern rtx emit_barrier_after (rtx); extern rtx emit_label_after (rtx, rtx); extern rtx emit_note_after (int, rtx); -extern rtx emit_note_copy_after (rtx, rtx); extern rtx emit_insn (rtx); extern rtx emit_jump_insn (rtx); extern rtx emit_call_insn (rtx); @@ -1756,12 +1751,8 @@ void free_EXPR_LIST_node (rtx); void free_INSN_LIST_node (rtx); rtx alloc_INSN_LIST (rtx, rtx); rtx alloc_EXPR_LIST (int, rtx, rtx); -void free_DEPS_LIST_list (rtx *); -rtx alloc_DEPS_LIST (rtx, rtx, HOST_WIDE_INT); -void remove_free_DEPS_LIST_elem (rtx, rtx *); void remove_free_INSN_LIST_elem (rtx, rtx *); rtx remove_list_elem (rtx, rtx *); -rtx copy_DEPS_LIST_list (rtx); /* regclass.c */ @@ -1978,6 +1969,12 @@ extern int epilogue_completed; extern int reload_in_progress; +#ifdef STACK_REGS +/* Nonzero after end of regstack pass. + Set to 1 or 0 by reg-stack.c. */ +extern int regstack_completed; +#endif + /* If this is nonzero, we do not bother generating VOLATILE around volatile memory references, and we are willing to output indirect addresses. If cse is to follow, we reject @@ -2029,7 +2026,6 @@ 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); -extern unsigned int purge_line_number_notes (void); /* In emit-rtl.c. */ extern int max_reg_num (void); @@ -2062,11 +2058,10 @@ extern void add_insn (rtx); extern void add_insn_before (rtx, rtx); extern void add_insn_after (rtx, rtx); extern void remove_insn (rtx); -extern void emit_insn_after_with_line_notes (rtx, rtx, rtx); extern rtx emit (rtx); -extern void renumber_insns (void); extern rtx delete_insn (rtx); extern rtx entry_of_function (void); +extern void emit_insn_at_entry (rtx); extern void delete_insn_chain (rtx, rtx); extern rtx unlink_insn_chain (rtx, rtx); extern rtx delete_insn_and_edges (rtx); @@ -2110,9 +2105,6 @@ extern void print_simple_rtl (FILE *, rtx); extern int print_rtl_single (FILE *, rtx); extern void print_inline_rtx (FILE *, rtx, int); -/* In loop.c */ -extern void init_loop (void); - /* In bt-load.c */ extern void branch_target_load_optimize (bool); @@ -2167,6 +2159,7 @@ extern void init_reg_sets (void); extern void regclass_init (void); extern void regclass (rtx, int); extern void reg_scan (rtx, unsigned int); +extern void reg_scan_update (rtx, rtx, unsigned int); extern void fix_register (const char *, int, int); extern void init_subregs_of_mode (void); extern void record_subregs_of_mode (rtx); @@ -2251,6 +2244,8 @@ extern GTY(()) rtx stack_limit_rtx; /* In predict.c */ extern void invert_br_probabilities (rtx); extern bool expensive_function_p (int); +/* In cfgexpand.c */ +extern void add_reg_br_prob_note (rtx last, int probability); /* In tracer.c */ extern void tracer (unsigned int);