Commit 2f78c311 by Zack Weinberg

system.h: Forward-declare struct rtx_def, struct rtvec_def, and union tree_node.

	* system.h: Forward-declare struct rtx_def, struct rtvec_def,
	and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
	* rtl.h: Don't forward-declare union tree_node here.  Don't
	typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
	struct rtvec_def *, or union tree_node * to use rtx, rtvec,
	and tree respectively.
	* tree.h: Don't forward-declare struct rtx_def here.  Don't
	typedef tree here.  Change all uses of struct rtx_def *,
	struct rtvec_def *, or union tree_node * to use rtx, rtvec,
	and tree respectively.

From-SVN: r44980
parent 91625004
2001-08-17 Zack Weinberg <zackw@panix.com>
* system.h: Forward-declare struct rtx_def, struct rtvec_def,
and union tree_node. Typedef rtx, rtvec, and tree. Fix comment.
* rtl.h: Don't forward-declare union tree_node here. Don't
typedef rtx or rtvec here. Change all uses of struct rtx_def *,
struct rtvec_def *, or union tree_node * to use rtx, rtvec,
and tree respectively.
* tree.h: Don't forward-declare struct rtx_def here. Don't
typedef tree here. Change all uses of struct rtx_def *,
struct rtvec_def *, or union tree_node * to use rtx, rtvec,
and tree respectively.
2001-08-17 Richard Henderson <rth@redhat.com> 2001-08-17 Richard Henderson <rth@redhat.com>
* config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h, * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
...@@ -5,7 +18,7 @@ ...@@ -5,7 +18,7 @@
2001-08-17 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 2001-08-17 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* doc/invoke.texi (Optimize Options): The default for * doc/invoke.texi (Optimize Options): The default for
-finline-limit is 600. -finline-limit is 600.
2001-08-17 Richard Henderson <rth@redhat.com> 2001-08-17 Richard Henderson <rth@redhat.com>
...@@ -71,7 +84,7 @@ Fri Aug 17 15:41:35 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -71,7 +84,7 @@ Fri Aug 17 15:41:35 CEST 2001 Jan Hubicka <jh@suse.cz>
* output.h: Update prototypes. * output.h: Update prototypes.
* target.h (target.asm_out.named_section): Remove align parameter. * target.h (target.asm_out.named_section): Remove align parameter.
* varasm.c, config/a29k/a29k.c, config/alpha/alpha.c, * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c, config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c, config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c, config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
...@@ -93,7 +106,7 @@ Fri Aug 17 15:41:35 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -93,7 +106,7 @@ Fri Aug 17 15:41:35 CEST 2001 Jan Hubicka <jh@suse.cz>
2001-08-16 Zack Weinberg <zackw@panix.com> 2001-08-16 Zack Weinberg <zackw@panix.com>
* doc/tm.texi: Remove extra @table command. * doc/tm.texi: Remove extra @table command.
2001-08-16 Zack Weinberg <zackw@panix.com> 2001-08-16 Zack Weinberg <zackw@panix.com>
* final.c (shorten_branches): Clear the end of the label_align * final.c (shorten_branches): Clear the end of the label_align
......
...@@ -31,10 +31,6 @@ struct function; ...@@ -31,10 +31,6 @@ struct function;
#undef ABS /* Likewise. */ #undef ABS /* Likewise. */
#undef PC /* Likewise. */ #undef PC /* Likewise. */
#ifndef TREE_CODE
union tree_node;
#endif
/* Value used by some passes to "recognize" noop moves as valid instructions. /* Value used by some passes to "recognize" noop moves as valid instructions.
*/ */
#define NOOP_MOVE_INSN_CODE INT_MAX #define NOOP_MOVE_INSN_CODE INT_MAX
...@@ -93,19 +89,19 @@ typedef union rtunion_def ...@@ -93,19 +89,19 @@ typedef union rtunion_def
int rtint; int rtint;
unsigned int rtuint; unsigned int rtuint;
const char *rtstr; const char *rtstr;
struct rtx_def *rtx; rtx rtx;
struct rtvec_def *rtvec; rtvec rtvec;
enum machine_mode rttype; enum machine_mode rttype;
addr_diff_vec_flags rt_addr_diff_vec_flags; addr_diff_vec_flags rt_addr_diff_vec_flags;
struct cselib_val_struct *rt_cselib; struct cselib_val_struct *rt_cselib;
struct bitmap_head_def *rtbit; struct bitmap_head_def *rtbit;
union tree_node *rttree; tree rttree;
struct basic_block_def *bb; struct basic_block_def *bb;
} rtunion; } rtunion;
/* RTL expression ("rtx"). */ /* RTL expression ("rtx"). */
typedef struct rtx_def struct rtx_def
{ {
/* The kind of expression this is. */ /* The kind of expression this is. */
ENUM_BITFIELD(rtx_code) code: 16; ENUM_BITFIELD(rtx_code) code: 16;
...@@ -183,7 +179,7 @@ typedef struct rtx_def ...@@ -183,7 +179,7 @@ typedef struct rtx_def
The number of operands and their types are controlled The number of operands and their types are controlled
by the `code' field, according to rtl.def. */ by the `code' field, according to rtl.def. */
rtunion fld[1]; rtunion fld[1];
} *rtx; };
#define NULL_RTX (rtx) 0 #define NULL_RTX (rtx) 0
...@@ -203,10 +199,10 @@ typedef struct rtx_def ...@@ -203,10 +199,10 @@ typedef struct rtx_def
for a variable number of things. The principle use is inside for a variable number of things. The principle use is inside
PARALLEL expressions. */ PARALLEL expressions. */
typedef struct rtvec_def{ struct rtvec_def {
int num_elem; /* number of elements */ int num_elem; /* number of elements */
struct rtx_def *elem[1]; rtx elem[1];
} *rtvec; };
#define NULL_RTVEC (rtvec) 0 #define NULL_RTVEC (rtvec) 0
...@@ -1147,7 +1143,7 @@ extern int ceil_log2 PARAMS ((unsigned HOST_WIDE_INT)); ...@@ -1147,7 +1143,7 @@ extern int ceil_log2 PARAMS ((unsigned HOST_WIDE_INT));
#define plus_constant(X,C) plus_constant_wide (X, (HOST_WIDE_INT) (C)) #define plus_constant(X,C) plus_constant_wide (X, (HOST_WIDE_INT) (C))
/* In builtins.c */ /* In builtins.c */
extern rtx expand_builtin_expect_jump PARAMS ((union tree_node *, rtx, rtx)); extern rtx expand_builtin_expect_jump PARAMS ((tree, rtx, rtx));
/* In explow.c */ /* In explow.c */
extern void set_stack_check_libfunc PARAMS ((rtx)); extern void set_stack_check_libfunc PARAMS ((rtx));
...@@ -1237,8 +1233,7 @@ extern rtx assign_stack_local PARAMS ((enum machine_mode, ...@@ -1237,8 +1233,7 @@ extern rtx assign_stack_local PARAMS ((enum machine_mode,
HOST_WIDE_INT, int)); HOST_WIDE_INT, int));
extern rtx assign_stack_temp PARAMS ((enum machine_mode, extern rtx assign_stack_temp PARAMS ((enum machine_mode,
HOST_WIDE_INT, int)); HOST_WIDE_INT, int));
extern rtx assign_temp PARAMS ((union tree_node *, extern rtx assign_temp PARAMS ((tree, int, int, int));
int, int, int));
/* In emit-rtl.c */ /* In emit-rtl.c */
extern rtx emit_insn_before PARAMS ((rtx, rtx)); extern rtx emit_insn_before PARAMS ((rtx, rtx));
extern rtx emit_jump_insn_before PARAMS ((rtx, rtx)); extern rtx emit_jump_insn_before PARAMS ((rtx, rtx));
...@@ -1348,7 +1343,7 @@ extern rtx simplify_rtx PARAMS ((rtx)); ...@@ -1348,7 +1343,7 @@ extern rtx simplify_rtx PARAMS ((rtx));
extern rtx avoid_constant_pool_reference PARAMS ((rtx)); extern rtx avoid_constant_pool_reference PARAMS ((rtx));
/* In function.c */ /* In function.c */
extern rtx gen_mem_addressof PARAMS ((rtx, union tree_node *)); extern rtx gen_mem_addressof PARAMS ((rtx, tree));
/* In regclass.c */ /* In regclass.c */
extern enum machine_mode choose_hard_reg_mode PARAMS ((unsigned int, extern enum machine_mode choose_hard_reg_mode PARAMS ((unsigned int,
...@@ -1636,8 +1631,8 @@ extern rtx gen_lowpart_SUBREG PARAMS ((enum machine_mode, rtx)); ...@@ -1636,8 +1631,8 @@ extern rtx gen_lowpart_SUBREG PARAMS ((enum machine_mode, rtx));
extern rtx find_next_ref PARAMS ((rtx, rtx)); extern rtx find_next_ref PARAMS ((rtx, rtx));
extern rtx output_constant_def PARAMS ((union tree_node *, int)); extern rtx output_constant_def PARAMS ((tree, int));
extern rtx immed_real_const PARAMS ((union tree_node *)); extern rtx immed_real_const PARAMS ((tree));
/* Define a default value for STORE_FLAG_VALUE. */ /* Define a default value for STORE_FLAG_VALUE. */
......
...@@ -491,8 +491,8 @@ extern void abort PARAMS ((void)); ...@@ -491,8 +491,8 @@ extern void abort PARAMS ((void));
#endif #endif
/* Provide some sort of boolean type. We use stdbool.h if it's /* Provide some sort of boolean type. We use stdbool.h if it's
available. This is dead last because various system headers might available. This must be after all inclusion of system headers,
mess us up. */ as some of them will mess us up. */
#undef bool #undef bool
#undef true #undef true
#undef false #undef false
...@@ -513,6 +513,18 @@ typedef char _Bool; ...@@ -513,6 +513,18 @@ typedef char _Bool;
#define TRUE true #define TRUE true
#define FALSE false #define FALSE false
/* Provide three core typedefs used by everything, if we are compiling
GCC. These used to be found in rtl.h and tree.h, but this is no
longer practical. */
#ifdef IN_GCC
struct rtx_def;
struct rtvec_def;
union tree_node;
typedef struct rtx_def *rtx;
typedef struct rtvec_def *rtvec;
typedef union tree_node *tree;
#endif
/* As the last action in this file, we poison the identifiers that /* As the last action in this file, we poison the identifiers that
shouldn't be used. Note, luckily gcc-3.0's token-based integrated shouldn't be used. Note, luckily gcc-3.0's token-based integrated
preprocessor won't trip on poisoned identifiers that arrive from preprocessor won't trip on poisoned identifiers that arrive from
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment