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>
* config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
......@@ -5,7 +18,7 @@
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.
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>
* output.h: Update prototypes.
* 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/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.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>
2001-08-16 Zack Weinberg <zackw@panix.com>
* doc/tm.texi: Remove extra @table command.
2001-08-16 Zack Weinberg <zackw@panix.com>
* final.c (shorten_branches): Clear the end of the label_align
......
......@@ -31,10 +31,6 @@ struct function;
#undef ABS /* Likewise. */
#undef PC /* Likewise. */
#ifndef TREE_CODE
union tree_node;
#endif
/* Value used by some passes to "recognize" noop moves as valid instructions.
*/
#define NOOP_MOVE_INSN_CODE INT_MAX
......@@ -93,19 +89,19 @@ typedef union rtunion_def
int rtint;
unsigned int rtuint;
const char *rtstr;
struct rtx_def *rtx;
struct rtvec_def *rtvec;
rtx rtx;
rtvec rtvec;
enum machine_mode rttype;
addr_diff_vec_flags rt_addr_diff_vec_flags;
struct cselib_val_struct *rt_cselib;
struct bitmap_head_def *rtbit;
union tree_node *rttree;
tree rttree;
struct basic_block_def *bb;
} rtunion;
/* RTL expression ("rtx"). */
typedef struct rtx_def
struct rtx_def
{
/* The kind of expression this is. */
ENUM_BITFIELD(rtx_code) code: 16;
......@@ -183,7 +179,7 @@ typedef struct rtx_def
The number of operands and their types are controlled
by the `code' field, according to rtl.def. */
rtunion fld[1];
} *rtx;
};
#define NULL_RTX (rtx) 0
......@@ -203,10 +199,10 @@ typedef struct rtx_def
for a variable number of things. The principle use is inside
PARALLEL expressions. */
typedef struct rtvec_def{
struct rtvec_def {
int num_elem; /* number of elements */
struct rtx_def *elem[1];
} *rtvec;
rtx elem[1];
};
#define NULL_RTVEC (rtvec) 0
......@@ -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))
/* 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 */
extern void set_stack_check_libfunc PARAMS ((rtx));
......@@ -1237,8 +1233,7 @@ extern rtx assign_stack_local PARAMS ((enum machine_mode,
HOST_WIDE_INT, int));
extern rtx assign_stack_temp PARAMS ((enum machine_mode,
HOST_WIDE_INT, int));
extern rtx assign_temp PARAMS ((union tree_node *,
int, int, int));
extern rtx assign_temp PARAMS ((tree, int, int, int));
/* In emit-rtl.c */
extern rtx emit_insn_before PARAMS ((rtx, rtx));
extern rtx emit_jump_insn_before PARAMS ((rtx, rtx));
......@@ -1348,7 +1343,7 @@ extern rtx simplify_rtx PARAMS ((rtx));
extern rtx avoid_constant_pool_reference PARAMS ((rtx));
/* In function.c */
extern rtx gen_mem_addressof PARAMS ((rtx, union tree_node *));
extern rtx gen_mem_addressof PARAMS ((rtx, tree));
/* In regclass.c */
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));
extern rtx find_next_ref PARAMS ((rtx, rtx));
extern rtx output_constant_def PARAMS ((union tree_node *, int));
extern rtx immed_real_const PARAMS ((union tree_node *));
extern rtx output_constant_def PARAMS ((tree, int));
extern rtx immed_real_const PARAMS ((tree));
/* Define a default value for STORE_FLAG_VALUE. */
......
......@@ -491,8 +491,8 @@ extern void abort PARAMS ((void));
#endif
/* Provide some sort of boolean type. We use stdbool.h if it's
available. This is dead last because various system headers might
mess us up. */
available. This must be after all inclusion of system headers,
as some of them will mess us up. */
#undef bool
#undef true
#undef false
......@@ -513,6 +513,18 @@ typedef char _Bool;
#define TRUE true
#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
shouldn't be used. Note, luckily gcc-3.0's token-based integrated
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