From 7a8cba34b0cb9b3e9449635581de3d7d5f83859a Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Sat, 22 May 2010 22:24:53 +0000 Subject: [PATCH] coretypes.h (struct simple_bitmap_def, [...]): New core types. gcc/ChangeLog: * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap): New core types. * sbitmap.h (struct sbitmap_def): Do not typedef here. * sbitmap.c: Include sbitmap.h. * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h, hard-reg-set.h. Split everything related to regsets out from here... * regset.h: ...to here. New file. * df.h: Include regset.h and sbitmap.h. * tree-flow.h: Likewise. * cfgloop.h: Likewise. * except.h: Do not include sbitmap.h. Include hashtab.h. * cgraph.h: Include vec.h and function.h. * reload.h (struct insn_chain): Change types of live_throughout and dead_or_set from regset_head to bitmap_head. (compute_use_by_pseudos): Be defined also if regset.h is not included. * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of spilled_regs from regset_head to bitmap_head to avoid dependency in regset.h. * sel-sched-ir.h: Include regset.h. * reload.c: Include df.h before reload.h. * caller-save.c: Likewise. * reload1.c: Likewise. * ira.c: Likewise. (mark_elimination): Update type of r to bitmap, consistent with DF_LR_IN. * dominance.c: Include bitmap.h. * modulo-sched.c: Include df.h. * cfganal.c: Include bitmap.h and sbitmap.h. * cfgbuild.c: Include sbitmap.h. * lcm.c: Include sbitmap.h. * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET. * domwalk.c: Include sbitmap.h, exclude ggc.h. * cfgexpand.c: Inlcude bitmap.h and sbitmap.h. * cselib.c: Include bitmap.h. * tree-optimize.c: Include regset.h. * stmt.c: Include bitmap.h. * Makefile.in: Update dependencies. cp/ChangeLog * semantics.c: Include bitmap.h. * Make-lang.in: Update dependencies. From-SVN: r159746 --- gcc/ChangeLog | 40 ++++++++++++++ gcc/Makefile.in | 50 ++++++++++-------- gcc/basic-block.h | 91 +------------------------------- gcc/caller-save.c | 2 +- gcc/cfganal.c | 2 + gcc/cfgbuild.c | 1 + gcc/cfgexpand.c | 3 +- gcc/cfgloop.h | 3 ++ gcc/cgraph.h | 6 ++- gcc/coretypes.h | 3 ++ gcc/cp/ChangeLog | 5 ++ gcc/cp/Make-lang.in | 2 +- gcc/cp/semantics.c | 1 + gcc/cselib.c | 1 + gcc/df.h | 2 + gcc/dominance.c | 1 + gcc/domwalk.c | 2 +- gcc/except.h | 2 +- gcc/gcse.c | 2 +- gcc/ira-int.h | 2 +- gcc/ira.c | 4 +- gcc/lcm.c | 1 + gcc/modulo-sched.c | 1 + gcc/regset.h | 125 ++++++++++++++++++++++++++++++++++++++++++++ gcc/reload.c | 2 +- gcc/reload.h | 8 +-- gcc/reload1.c | 2 +- gcc/sbitmap.c | 1 + gcc/sbitmap.h | 5 +- gcc/sel-sched-ir.h | 2 +- gcc/stmt.c | 2 + gcc/tree-flow.h | 1 + gcc/tree-optimize.c | 2 +- 33 files changed, 244 insertions(+), 133 deletions(-) create mode 100644 gcc/regset.h diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e7f0f716e6fe..a6d11a7a4558 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,43 @@ +2010-05-22 Steven Bosscher + + * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap): + New core types. + * sbitmap.h (struct sbitmap_def): Do not typedef here. + * sbitmap.c: Include sbitmap.h. + * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h, + hard-reg-set.h. Split everything related to regsets out from here... + * regset.h: ...to here. New file. + * df.h: Include regset.h and sbitmap.h. + * tree-flow.h: Likewise. + * cfgloop.h: Likewise. + * except.h: Do not include sbitmap.h. Include hashtab.h. + * cgraph.h: Include vec.h and function.h. + * reload.h (struct insn_chain): Change types of live_throughout + and dead_or_set from regset_head to bitmap_head. + (compute_use_by_pseudos): Be defined also if regset.h is not included. + * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of + spilled_regs from regset_head to bitmap_head to avoid dependency + in regset.h. + * sel-sched-ir.h: Include regset.h. + * reload.c: Include df.h before reload.h. + * caller-save.c: Likewise. + * reload1.c: Likewise. + * ira.c: Likewise. + (mark_elimination): Update type of r to bitmap, consistent with + DF_LR_IN. + * dominance.c: Include bitmap.h. + * modulo-sched.c: Include df.h. + * cfganal.c: Include bitmap.h and sbitmap.h. + * cfgbuild.c: Include sbitmap.h. + * lcm.c: Include sbitmap.h. + * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET. + * domwalk.c: Include sbitmap.h, exclude ggc.h. + * cfgexpand.c: Inlcude bitmap.h and sbitmap.h. + * cselib.c: Include bitmap.h. + * tree-optimize.c: Include regset.h. + * stmt.c: Include bitmap.h. + * Makefile.in: Update dependencies. + 2010-05-22 Jan Hubicka * cgraph.h (struct varpool_node): Add same_comdat_group. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 01073f18d769..e7998f42966b 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -858,7 +858,7 @@ REVISION_s := "\"\"" endif # Shorthand variables for dependency lists. -EXCEPT_H = except.h sbitmap.h vecprim.h vecir.h +EXCEPT_H = except.h $(HASHTAB_) vecprim.h vecir.h TOPLEV_H = toplev.h $(INPUT_H) bversion.h TARGET_H = $(TM_H) target.h insn-modes.h MACHMODE_H = machmode.h mode-classes.def insn-modes.h @@ -877,9 +877,8 @@ TREE_H = tree.h all-tree.def tree.def c-common.def $(lang_tree_files) \ $(INPUT_H) statistics.h vec.h treestruct.def $(HASHTAB_H) \ double-int.h alias.h $(SYMTAB_H) options.h vecir.h \ $(REAL_H) $(FIXED_VALUE_H) -BASIC_BLOCK_H = basic-block.h $(BITMAP_H) sbitmap.h $(PARTITION_H) \ - hard-reg-set.h $(PREDICT_H) vec.h $(FUNCTION_H) \ - cfghooks.h $(OBSTACK_H) +REGSET_H = regset.h $(BITMAP_H) hard-reg-set.h +BASIC_BLOCK_H = basic-block.h $(PREDICT_H) vec.h $(FUNCTION_H) cfghooks.h GIMPLE_H = gimple.h gimple.def gsstruct.def pointer-set.h vec.h \ $(GGC_H) $(BASIC_BLOCK_H) $(TM_H) $(TARGET_H) tree-ssa-operands.h \ tree-ssa-alias.h vecir.h @@ -894,19 +893,22 @@ FUNCTION_H = function.h $(TREE_H) $(HASHTAB_H) vecprim.h EXPR_H = expr.h insn-config.h $(FUNCTION_H) $(RTL_H) $(FLAGS_H) $(TREE_H) $(MACHMODE_H) $(EMIT_RTL_H) OPTABS_H = optabs.h insn-codes.h REGS_H = regs.h $(MACHMODE_H) $(OBSTACK_H) $(BASIC_BLOCK_H) $(FUNCTION_H) -RESOURCE_H = resource.h hard-reg-set.h -SCHED_INT_H = sched-int.h $(INSN_ATTR_H) $(BASIC_BLOCK_H) $(RTL_H) $(DF_H) vecprim.h +SCHED_INT_H = sched-int.h $(INSN_ATTR_H) $(BASIC_BLOCK_H) $(RTL_H) $(DF_H) \ + vecprim.h $(REGSET_H) SEL_SCHED_IR_H = sel-sched-ir.h $(INSN_ATTR_H) $(BASIC_BLOCK_H) $(RTL_H) \ - $(GGC_H) $(BITMAP_H) vecprim.h $(SCHED_INT_H) $(CFGLOOP_H) + $(GGC_H) $(BITMAP_H) vecprim.h $(SCHED_INT_H) $(CFGLOOP_H) $(REGSET_H) SEL_SCHED_DUMP_H = sel-sched-dump.h $(SEL_SCHED_IR_H) INTEGRATE_H = integrate.h CFGLAYOUT_H = cfglayout.h $(BASIC_BLOCK_H) -CFGLOOP_H = cfgloop.h $(BASIC_BLOCK_H) $(RTL_H) vecprim.h double-int.h +CFGLOOP_H = cfgloop.h $(BASIC_BLOCK_H) $(RTL_H) vecprim.h double-int.h \ + $(BITMAP_H) sbitmap.h IPA_UTILS_H = ipa-utils.h $(TREE_H) $(CGRAPH_H) IPA_REFERENCE_H = ipa-reference.h $(BITMAP_H) $(TREE_H) IPA_TYPE_ESCAPE_H = ipa-type-escape.h $(TREE_H) -CGRAPH_H = cgraph.h $(TREE_H) $(BASIC_BLOCK_H) cif-code.def ipa-ref.h ipa-ref-inline.h -DF_H = df.h $(BITMAP_H) $(BASIC_BLOCK_H) alloc-pool.h $(TIMEVAR_H) +CGRAPH_H = cgraph.h vec.h $(TREE_H) $(BASIC_BLOCK_H) $(FUNCTION_H) \ + cif-code.def ipa-ref.h ipa-ref-inline.h +DF_H = df.h $(BITMAP_H) $(REGSET_H) sbitmap.h $(BASIC_BLOCK_H) \ + alloc-pool.h $(TIMEVAR_H) RESOURCE_H = resource.h hard-reg-set.h $(DF_H) DDG_H = ddg.h sbitmap.h $(DF_H) GCC_H = gcc.h version.h @@ -933,7 +935,7 @@ CPP_INTERNAL_H = $(srcdir)/../libcpp/internal.h $(CPP_ID_DATA_H) TREE_PASS_H = tree-pass.h $(TIMEVAR_H) TREE_DUMP_H = tree-dump.h $(SPLAY_TREE_H) $(TREE_PASS_H) TREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \ - $(BITMAP_H) $(BASIC_BLOCK_H) $(GIMPLE_H) \ + $(BITMAP_H) sbitmap.h $(BASIC_BLOCK_H) $(GIMPLE_H) \ $(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H) \ tree-ssa-alias.h TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H) vecprim.h @@ -2382,7 +2384,7 @@ tree-phinodes.o : tree-phinodes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ $(TM_H) $(TREE_H) $(GGC_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) \ gt-tree-phinodes.h $(RTL_H) $(TOPLEV_H) $(GIMPLE_H) domwalk.o : domwalk.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ - $(BASIC_BLOCK_H) domwalk.h $(GGC_H) + $(BASIC_BLOCK_H) domwalk.h sbitmap.h tree-ssa-live.o : tree-ssa-live.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \ $(TREE_H) $(DIAGNOSTIC_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \ $(TREE_SSA_LIVE_H) $(BITMAP_H) $(TOPLEV_H) debug.h $(FLAGS_H) \ @@ -2543,7 +2545,7 @@ tree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \ coretypes.h $(TREE_DUMP_H) $(TOPLEV_H) $(FUNCTION_H) langhooks.h \ $(FLAGS_H) $(CGRAPH_H) $(PLUGIN_H) \ $(TREE_INLINE_H) tree-mudflap.h $(GGC_H) graph.h $(CGRAPH_H) \ - $(TREE_PASS_H) $(CFGLOOP_H) $(EXCEPT_H) + $(TREE_PASS_H) $(CFGLOOP_H) $(EXCEPT_H) $(REGSET_H) c-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \ $(C_TREE_H) $(C_COMMON_H) $(DIAGNOSTIC_H) $(GIMPLE_H) \ @@ -2824,14 +2826,14 @@ stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(TREE_H) $(FLAGS_H) $(FUNCTION_H) insn-config.h hard-reg-set.h $(EXPR_H) \ libfuncs.h $(EXCEPT_H) $(RECOG_H) $(TOPLEV_H) output.h $(GGC_H) $(TM_P_H) \ langhooks.h $(PREDICT_H) $(OPTABS_H) $(TARGET_H) $(GIMPLE_H) $(MACHMODE_H) \ - $(REGS_H) alloc-pool.h $(PRETTY_PRINT_H) + $(REGS_H) alloc-pool.h $(PRETTY_PRINT_H) $(BITMAP_H) except.o : except.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(TREE_H) $(FLAGS_H) $(EXCEPT_H) $(FUNCTION_H) $(EXPR_H) libfuncs.h \ langhooks.h insn-config.h hard-reg-set.h $(BASIC_BLOCK_H) output.h \ dwarf2asm.h dwarf2out.h $(TOPLEV_H) $(HASHTAB_H) intl.h $(GGC_H) \ gt-except.h $(CGRAPH_H) $(INTEGRATE_H) $(DIAGNOSTIC_H) $(DWARF2_H) \ $(TARGET_H) $(TM_P_H) $(TREE_PASS_H) $(TIMEVAR_H) $(TREE_FLOW_H) \ - tree-pretty-print.h + tree-pretty-print.h sbitmap.h expr.o : expr.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(TREE_H) $(FLAGS_H) $(FUNCTION_H) $(REGS_H) $(EXPR_H) $(OPTABS_H) \ libfuncs.h $(INSN_ATTR_H) insn-config.h $(RECOG_H) output.h \ @@ -2994,7 +2996,7 @@ cselib.o : cselib.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h $(RECOG_H) \ $(EMIT_RTL_H) $(TOPLEV_H) output.h $(FUNCTION_H) $(TREE_PASS_H) \ cselib.h gt-cselib.h $(GGC_H) $(TM_P_H) $(PARAMS_H) alloc-pool.h \ - $(HASHTAB_H) $(TARGET_H) + $(HASHTAB_H) $(TARGET_H) $(BITMAP_H) cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \ hard-reg-set.h $(FLAGS_H) insn-config.h $(RECOG_H) $(EXPR_H) $(TOPLEV_H) \ output.h $(FUNCTION_H) $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) \ @@ -3006,7 +3008,8 @@ dce.o : dce.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ dse.o : dse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(TREE_H) $(TM_P_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \ $(RECOG_H) $(EXPR_H) $(DF_H) cselib.h $(DBGCNT_H) $(TIMEVAR_H) \ - $(TREE_PASS_H) alloc-pool.h $(ALIAS_H) dse.h $(OPTABS_H) $(TARGET_H) + $(TREE_PASS_H) alloc-pool.h $(ALIAS_H) dse.h $(OPTABS_H) $(TARGET_H) \ + $(BITMAP_H) fwprop.o : fwprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(TOPLEV_H) insn-config.h $(RECOG_H) $(FLAGS_H) $(OBSTACK_H) $(BASIC_BLOCK_H) \ output.h $(DF_H) alloc-pool.h $(TIMEVAR_H) $(TREE_PASS_H) $(TARGET_H) \ @@ -3023,7 +3026,8 @@ gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h $(GGC_H) \ $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \ $(TM_P_H) $(PARAMS_H) cselib.h $(EXCEPT_H) gt-gcse.h $(TREE_H) $(TIMEVAR_H) \ - intl.h $(OBSTACK_H) $(TREE_PASS_H) $(DF_H) $(DBGCNT_H) $(TARGET_H) + intl.h $(OBSTACK_H) $(TREE_PASS_H) $(DF_H) $(DBGCNT_H) $(TARGET_H) \ + $(DF_H) store-motion.o : store-motion.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h $(GGC_H) \ $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \ @@ -3034,7 +3038,7 @@ resource.o : resource.c $(CONFIG_H) $(RTL_H) hard-reg-set.h $(SYSTEM_H) \ $(FUNCTION_H) $(TOPLEV_H) $(INSN_ATTR_H) $(EXCEPT_H) $(PARAMS_H) $(TM_P_H) lcm.o : lcm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \ hard-reg-set.h $(FLAGS_H) insn-config.h $(INSN_ATTR_H) $(RECOG_H) \ - $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) output.h + $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) output.h sbitmap.h mode-switching.o : mode-switching.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \ $(INSN_ATTR_H) $(RECOG_H) $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) \ @@ -3131,7 +3135,7 @@ cfgexpand.o : cfgexpand.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \ coretypes.h $(TREE_DUMP_H) $(EXCEPT_H) langhooks.h $(TREE_PASS_H) $(RTL_H) \ $(DIAGNOSTIC_H) $(TOPLEV_H) $(BASIC_BLOCK_H) $(FLAGS_H) debug.h $(PARAMS_H) \ value-prof.h $(TREE_INLINE_H) $(TARGET_H) $(SSAEXPAND_H) \ - tree-pretty-print.h gimple-pretty-print.h + tree-pretty-print.h gimple-pretty-print.h $(BITMAP_H) sbitmap.h cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \ output.h $(TOPLEV_H) $(FUNCTION_H) $(EXCEPT_H) $(TM_P_H) $(INSN_ATTR_H) \ @@ -3140,10 +3144,10 @@ cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(TREE_PASS_H) $(DF_H) $(GGC_H) cfganal.o : cfganal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(BASIC_BLOCK_H) hard-reg-set.h insn-config.h $(RECOG_H) $(TM_P_H) \ - $(TIMEVAR_H) $(OBSTACK_H) $(TOPLEV_H) vecprim.h + $(TIMEVAR_H) $(OBSTACK_H) $(TOPLEV_H) vecprim.h sbitmap.h $(BITMAP_H) cfgbuild.o : cfgbuild.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h $(TOPLEV_H) \ - $(FUNCTION_H) $(EXCEPT_H) $(TIMEVAR_H) $(TREE_H) $(EXPR_H) + $(FUNCTION_H) $(EXCEPT_H) $(TIMEVAR_H) $(TREE_H) $(EXPR_H) sbitmap.h cfgcleanup.o : cfgcleanup.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(RTL_H) $(TIMEVAR_H) hard-reg-set.h output.h $(FLAGS_H) $(RECOG_H) \ $(TOPLEV_H) insn-config.h cselib.h $(TARGET_H) $(TM_P_H) $(PARAMS_H) \ @@ -3181,7 +3185,7 @@ loop-unroll.o: loop-unroll.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TM_H) \ $(OBSTACK_H) dominance.o : dominance.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ hard-reg-set.h $(BASIC_BLOCK_H) et-forest.h $(OBSTACK_H) $(TOPLEV_H) \ - $(TIMEVAR_H) graphds.h vecprim.h pointer-set.h + $(TIMEVAR_H) graphds.h vecprim.h pointer-set.h $(BITMAP_H) et-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ et-forest.h alloc-pool.h $(BASIC_BLOCK_H) combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 4bd33bde0c72..c5b8799d8d57 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -1,4 +1,4 @@ -/* Define control and data flow tables, and regsets. +/* Define control flow data structures for the CFG. Copyright (C) 1987, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. @@ -21,95 +21,10 @@ along with GCC; see the file COPYING3. If not see #ifndef GCC_BASIC_BLOCK_H #define GCC_BASIC_BLOCK_H -#include "bitmap.h" -#include "sbitmap.h" -#include "partition.h" -#include "hard-reg-set.h" #include "predict.h" #include "vec.h" #include "function.h" -/* Head of register set linked list. */ -typedef bitmap_head regset_head; - -/* A pointer to a regset_head. */ -typedef bitmap regset; - -/* Allocate a register set with oballoc. */ -#define ALLOC_REG_SET(OBSTACK) BITMAP_ALLOC (OBSTACK) - -/* Do any cleanup needed on a regset when it is no longer used. */ -#define FREE_REG_SET(REGSET) BITMAP_FREE (REGSET) - -/* Initialize a new regset. */ -#define INIT_REG_SET(HEAD) bitmap_initialize (HEAD, ®_obstack) - -/* Clear a register set by freeing up the linked list. */ -#define CLEAR_REG_SET(HEAD) bitmap_clear (HEAD) - -/* Copy a register set to another register set. */ -#define COPY_REG_SET(TO, FROM) bitmap_copy (TO, FROM) - -/* Compare two register sets. */ -#define REG_SET_EQUAL_P(A, B) bitmap_equal_p (A, B) - -/* `and' a register set with a second register set. */ -#define AND_REG_SET(TO, FROM) bitmap_and_into (TO, FROM) - -/* `and' the complement of a register set with a register set. */ -#define AND_COMPL_REG_SET(TO, FROM) bitmap_and_compl_into (TO, FROM) - -/* Inclusive or a register set with a second register set. */ -#define IOR_REG_SET(TO, FROM) bitmap_ior_into (TO, FROM) - -/* Exclusive or a register set with a second register set. */ -#define XOR_REG_SET(TO, FROM) bitmap_xor_into (TO, FROM) - -/* Or into TO the register set FROM1 `and'ed with the complement of FROM2. */ -#define IOR_AND_COMPL_REG_SET(TO, FROM1, FROM2) \ - bitmap_ior_and_compl_into (TO, FROM1, FROM2) - -/* Clear a single register in a register set. */ -#define CLEAR_REGNO_REG_SET(HEAD, REG) bitmap_clear_bit (HEAD, REG) - -/* Set a single register in a register set. */ -#define SET_REGNO_REG_SET(HEAD, REG) bitmap_set_bit (HEAD, REG) - -/* Return true if a register is set in a register set. */ -#define REGNO_REG_SET_P(TO, REG) bitmap_bit_p (TO, REG) - -/* Copy the hard registers in a register set to the hard register set. */ -extern void reg_set_to_hard_reg_set (HARD_REG_SET *, const_bitmap); -#define REG_SET_TO_HARD_REG_SET(TO, FROM) \ -do { \ - CLEAR_HARD_REG_SET (TO); \ - reg_set_to_hard_reg_set (&TO, FROM); \ -} while (0) - -typedef bitmap_iterator reg_set_iterator; - -/* Loop over all registers in REGSET, starting with MIN, setting REGNUM to the - register number and executing CODE for all registers that are set. */ -#define EXECUTE_IF_SET_IN_REG_SET(REGSET, MIN, REGNUM, RSI) \ - EXECUTE_IF_SET_IN_BITMAP (REGSET, MIN, REGNUM, RSI) - -/* Loop over all registers in REGSET1 and REGSET2, starting with MIN, setting - REGNUM to the register number and executing CODE for all registers that are - set in the first regset and not set in the second. */ -#define EXECUTE_IF_AND_COMPL_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, RSI) \ - EXECUTE_IF_AND_COMPL_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, RSI) - -/* Loop over all registers in REGSET1 and REGSET2, starting with MIN, setting - REGNUM to the register number and executing CODE for all registers that are - set in both regsets. */ -#define EXECUTE_IF_AND_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, RSI) \ - EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, RSI) \ - -/* Same information as REGS_INVALIDATED_BY_CALL but in regset form to be used - in dataflow more conveniently. */ - -extern regset regs_invalidated_by_call_regset; - /* Type we use to hold basic block counters. Should be at least 64bit. Although a counter cannot be negative, we use a signed type, because erroneous negative counts can be generated when the @@ -482,8 +397,6 @@ struct GTY(()) control_flow_graph { #define FOR_ALL_BB_FN(BB, FN) \ for (BB = ENTRY_BLOCK_PTR_FOR_FUNCTION (FN); BB; BB = BB->next_bb) -extern bitmap_obstack reg_obstack; - /* Stuff for recording basic block info. */ @@ -857,8 +770,6 @@ extern bool predictable_edge_p (edge); extern void init_flow (struct function *); extern void debug_bb (basic_block); extern basic_block debug_bb_n (int); -extern void dump_regset (regset, FILE *); -extern void debug_regset (regset); extern void expunge_block (basic_block); extern void link_block (basic_block, basic_block); extern void unlink_block (basic_block); diff --git a/gcc/caller-save.c b/gcc/caller-save.c index 7a00dbd72aea..6bcfd4bf4c7c 100644 --- a/gcc/caller-save.c +++ b/gcc/caller-save.c @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "hard-reg-set.h" #include "recog.h" #include "basic-block.h" +#include "df.h" #include "reload.h" #include "function.h" #include "expr.h" @@ -37,7 +38,6 @@ along with GCC; see the file COPYING3. If not see #include "tm_p.h" #include "addresses.h" #include "output.h" -#include "df.h" #include "ggc.h" /* True if caller-save has been initialized. */ diff --git a/gcc/cfganal.c b/gcc/cfganal.c index 22a0503c0133..e0c6443dcdd5 100644 --- a/gcc/cfganal.c +++ b/gcc/cfganal.c @@ -34,6 +34,8 @@ along with GCC; see the file COPYING3. If not see #include "tm_p.h" #include "vec.h" #include "vecprim.h" +#include "bitmap.h" +#include "sbitmap.h" #include "timevar.h" /* Store the data structures necessary for depth-first search. */ diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c index b063f898507e..79b6183bfba6 100644 --- a/gcc/cfgbuild.c +++ b/gcc/cfgbuild.c @@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see #include "expr.h" #include "toplev.h" #include "timevar.h" +#include "sbitmap.h" static void make_edges (basic_block, basic_block, int); static void make_label_edge (sbitmap, basic_block, rtx, int); diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 1d3ec8498269..3a36ee179446 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -45,7 +45,8 @@ along with GCC; see the file COPYING3. If not see #include "value-prof.h" #include "target.h" #include "ssaexpand.h" - +#include "bitmap.h" +#include "sbitmap.h" /* This variable holds information helping the rewriting of SSA trees into RTL. */ diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h index 4135ed7a250b..96911c6a4150 100644 --- a/gcc/cfgloop.h +++ b/gcc/cfgloop.h @@ -27,6 +27,9 @@ along with GCC; see the file COPYING3. If not see #include "vecprim.h" #include "double-int.h" +#include "bitmap.h" +#include "sbitmap.h" + /* Structure to hold decision about unrolling/peeling. */ enum lpt_dec { diff --git a/gcc/cgraph.h b/gcc/cgraph.h index a9a2962eb0b4..f352cc65e3ac 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -21,9 +21,12 @@ along with GCC; see the file COPYING3. If not see #ifndef GCC_CGRAPH_H #define GCC_CGRAPH_H + +#include "vec.h" #include "tree.h" #include "basic-block.h" -#include "ipa-ref.h" +#include "function.h" +#include "ipa-ref.h" /* FIXME: inappropriate dependency of cgraph on IPA. */ enum availability { @@ -914,6 +917,7 @@ varpool_all_refs_explicit_p (struct varpool_node *vnode) /* Constant pool accessor function. */ htab_t constant_pool_htab (void); +/* FIXME: inappropriate dependency of cgraph on IPA. */ #include "ipa-ref-inline.h" #endif /* GCC_CGRAPH_H */ diff --git a/gcc/coretypes.h b/gcc/coretypes.h index 0b8261fc6146..a7bc8dbb67ad 100644 --- a/gcc/coretypes.h +++ b/gcc/coretypes.h @@ -46,6 +46,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see struct bitmap_head_def; typedef struct bitmap_head_def *bitmap; typedef const struct bitmap_head_def *const_bitmap; +struct simple_bitmap_def; +typedef struct simple_bitmap_def *sbitmap; +typedef const struct simple_bitmap_def *const_sbitmap; struct rtx_def; typedef struct rtx_def *rtx; typedef const struct rtx_def *const_rtx; diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 47f53080a315..7acd4132c14d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2010-05-22 Steven Bosscher + + * semantics.c: Include bitmap.h. + * Make-lang.in: Update dependencies. + 2010-05-22 Jan Hubicka * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index e0553a0eca7a..c4f553e16c21 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -303,7 +303,7 @@ cp/repo.o: cp/repo.c $(CXX_TREE_H) $(TM_H) toplev.h $(DIAGNOSTIC_H) \ cp/semantics.o: cp/semantics.c $(CXX_TREE_H) $(TM_H) except.h toplev.h \ $(FLAGS_H) debug.h output.h $(RTL_H) $(TIMEVAR_H) $(EXPR_H) \ $(TREE_INLINE_H) $(CGRAPH_H) $(TARGET_H) $(C_COMMON_H) $(GIMPLE_H) \ - gt-cp-semantics.h + bitmap.h gt-cp-semantics.h cp/dump.o: cp/dump.c $(CXX_TREE_H) $(TM_H) $(TREE_DUMP_H) cp/optimize.o: cp/optimize.c $(CXX_TREE_H) $(TM_H) rtl.h $(INTEGRATE_H) \ insn-config.h input.h $(PARAMS_H) debug.h $(TREE_INLINE_H) $(GIMPLE_H) \ diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 173ef9616707..b97a4c363c56 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see #include "vec.h" #include "target.h" #include "gimple.h" +#include "bitmap.h" /* There routines provide a modular interface to perform many parsing operations. They may therefore be used during actual parsing, or diff --git a/gcc/cselib.c b/gcc/cselib.c index af2bb0ee0a53..5e819cd97975 100644 --- a/gcc/cselib.c +++ b/gcc/cselib.c @@ -42,6 +42,7 @@ along with GCC; see the file COPYING3. If not see #include "params.h" #include "alloc-pool.h" #include "target.h" +#include "bitmap.h" static bool cselib_record_memory; static bool cselib_preserve_constants; diff --git a/gcc/df.h b/gcc/df.h index c73f00fe6ceb..0632b1dbaafb 100644 --- a/gcc/df.h +++ b/gcc/df.h @@ -27,6 +27,8 @@ along with GCC; see the file COPYING3. If not see #define GCC_DF_H #include "bitmap.h" +#include "regset.h" +#include "sbitmap.h" #include "basic-block.h" #include "alloc-pool.h" #include "timevar.h" diff --git a/gcc/dominance.c b/gcc/dominance.c index fde79d71df37..f7db0f10d6be 100644 --- a/gcc/dominance.c +++ b/gcc/dominance.c @@ -47,6 +47,7 @@ #include "vecprim.h" #include "pointer-set.h" #include "graphds.h" +#include "bitmap.h" /* We name our nodes with integers, beginning with 1. Zero is reserved for 'undefined' or 'end of list'. The name of each node is given by the dfs diff --git a/gcc/domwalk.c b/gcc/domwalk.c index 4f0e9190c19c..89d2e469eedd 100644 --- a/gcc/domwalk.c +++ b/gcc/domwalk.c @@ -25,7 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "basic-block.h" #include "domwalk.h" -#include "ggc.h" +#include "sbitmap.h" /* This file implements a generic walker for dominator trees. diff --git a/gcc/except.h b/gcc/except.h index de4fbf79f995..ef511c905157 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ -#include "sbitmap.h" +#include "hashtab.h" #include "vecprim.h" #include "vecir.h" diff --git a/gcc/gcse.c b/gcc/gcse.c index 4e2fe8625c54..10f015fa3f0f 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -624,7 +624,7 @@ static void alloc_gcse_mem (void) { /* Allocate vars to track sets of regs. */ - reg_set_bitmap = BITMAP_ALLOC (NULL); + reg_set_bitmap = ALLOC_REG_SET (NULL); /* Allocate array to keep a list of insns which modify memory in each basic block. */ diff --git a/gcc/ira-int.h b/gcc/ira-int.h index 6ee7393b36df..e56e05189458 100644 --- a/gcc/ira-int.h +++ b/gcc/ira-int.h @@ -542,7 +542,7 @@ extern int ira_copies_num; struct ira_spilled_reg_stack_slot { /* pseudo-registers assigned to the stack slot. */ - regset_head spilled_regs; + bitmap_head spilled_regs; /* RTL representation of the stack slot. */ rtx mem; /* Size of the stack slot. */ diff --git a/gcc/ira.c b/gcc/ira.c index abeb9da2f7f7..574fe07d89ed 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -310,6 +310,7 @@ along with GCC; see the file COPYING3. If not see #include "bitmap.h" #include "hard-reg-set.h" #include "basic-block.h" +#include "df.h" #include "expr.h" #include "recog.h" #include "params.h" @@ -320,7 +321,6 @@ along with GCC; see the file COPYING3. If not see #include "reload.h" #include "toplev.h" #include "integrate.h" -#include "df.h" #include "ggc.h" #include "ira-int.h" @@ -1899,7 +1899,7 @@ mark_elimination (int from, int to) FOR_EACH_BB (bb) { /* We don't use LIVE info in IRA. */ - regset r = DF_LR_IN (bb); + bitmap r = DF_LR_IN (bb); if (REGNO_REG_SET_P (r, from)) { diff --git a/gcc/lcm.c b/gcc/lcm.c index 62777b09b522..619d2ab946f6 100644 --- a/gcc/lcm.c +++ b/gcc/lcm.c @@ -63,6 +63,7 @@ along with GCC; see the file COPYING3. If not see #include "output.h" #include "tm_p.h" #include "function.h" +#include "sbitmap.h" /* We want target macros for the mode switching code to be able to refer to instruction attribute values. */ diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index cc9f788a8a7b..ebf76492e2b2 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see #include "timevar.h" #include "tree-pass.h" #include "dbgcnt.h" +#include "df.h" #ifdef INSN_SCHEDULING diff --git a/gcc/regset.h b/gcc/regset.h new file mode 100644 index 000000000000..75082a063228 --- /dev/null +++ b/gcc/regset.h @@ -0,0 +1,125 @@ +/* Define regsets. + Copyright (C) 1987, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_REGSET_H +#define GCC_REGSET_H + +/* TODO: regset is just a bitmap in its implementation. The compiler does + not consistently use one or the other, i.e. sometimes variables are + declared as bitmap but they are actually regsets and regset accessors + are used, and vice versa, or mixed (see e.g. spilled_regs in IRA). + + This should be cleaned up, either by just dropping the regset type, or + by changing all bitmaps that are really regsets to the regset type. For + the latter option, a good start would be to change everything allocated + on the reg_obstack to regset. */ + +#include "bitmap.h" /* For bitmap_iterator. */ +#include "hard-reg-set.h" + +/* Head of register set linked list. */ +typedef bitmap_head regset_head; + +/* A pointer to a regset_head. */ +typedef bitmap regset; + +/* Allocate a register set with oballoc. */ +#define ALLOC_REG_SET(OBSTACK) BITMAP_ALLOC (OBSTACK) + +/* Do any cleanup needed on a regset when it is no longer used. */ +#define FREE_REG_SET(REGSET) BITMAP_FREE (REGSET) + +/* Initialize a new regset. */ +#define INIT_REG_SET(HEAD) bitmap_initialize (HEAD, ®_obstack) + +/* Clear a register set by freeing up the linked list. */ +#define CLEAR_REG_SET(HEAD) bitmap_clear (HEAD) + +/* Copy a register set to another register set. */ +#define COPY_REG_SET(TO, FROM) bitmap_copy (TO, FROM) + +/* Compare two register sets. */ +#define REG_SET_EQUAL_P(A, B) bitmap_equal_p (A, B) + +/* `and' a register set with a second register set. */ +#define AND_REG_SET(TO, FROM) bitmap_and_into (TO, FROM) + +/* `and' the complement of a register set with a register set. */ +#define AND_COMPL_REG_SET(TO, FROM) bitmap_and_compl_into (TO, FROM) + +/* Inclusive or a register set with a second register set. */ +#define IOR_REG_SET(TO, FROM) bitmap_ior_into (TO, FROM) + +/* Exclusive or a register set with a second register set. */ +#define XOR_REG_SET(TO, FROM) bitmap_xor_into (TO, FROM) + +/* Or into TO the register set FROM1 `and'ed with the complement of FROM2. */ +#define IOR_AND_COMPL_REG_SET(TO, FROM1, FROM2) \ + bitmap_ior_and_compl_into (TO, FROM1, FROM2) + +/* Clear a single register in a register set. */ +#define CLEAR_REGNO_REG_SET(HEAD, REG) bitmap_clear_bit (HEAD, REG) + +/* Set a single register in a register set. */ +#define SET_REGNO_REG_SET(HEAD, REG) bitmap_set_bit (HEAD, REG) + +/* Return true if a register is set in a register set. */ +#define REGNO_REG_SET_P(TO, REG) bitmap_bit_p (TO, REG) + +/* Copy the hard registers in a register set to the hard register set. */ +extern void reg_set_to_hard_reg_set (HARD_REG_SET *, const_bitmap); +#define REG_SET_TO_HARD_REG_SET(TO, FROM) \ +do { \ + CLEAR_HARD_REG_SET (TO); \ + reg_set_to_hard_reg_set (&TO, FROM); \ +} while (0) + +typedef bitmap_iterator reg_set_iterator; + +/* Loop over all registers in REGSET, starting with MIN, setting REGNUM to the + register number and executing CODE for all registers that are set. */ +#define EXECUTE_IF_SET_IN_REG_SET(REGSET, MIN, REGNUM, RSI) \ + EXECUTE_IF_SET_IN_BITMAP (REGSET, MIN, REGNUM, RSI) + +/* Loop over all registers in REGSET1 and REGSET2, starting with MIN, setting + REGNUM to the register number and executing CODE for all registers that are + set in the first regset and not set in the second. */ +#define EXECUTE_IF_AND_COMPL_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, RSI) \ + EXECUTE_IF_AND_COMPL_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, RSI) + +/* Loop over all registers in REGSET1 and REGSET2, starting with MIN, setting + REGNUM to the register number and executing CODE for all registers that are + set in both regsets. */ +#define EXECUTE_IF_AND_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, RSI) \ + EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, RSI) \ + +/* Same information as REGS_INVALIDATED_BY_CALL but in regset form to be used + in dataflow more conveniently. */ + +extern regset regs_invalidated_by_call_regset; + +/* An obstack for regsets. */ +extern bitmap_obstack reg_obstack; + +/* In cfg.c */ +extern void dump_regset (regset, FILE *); +extern void debug_regset (regset); + +#endif /* GCC_REGSET_H */ diff --git a/gcc/reload.c b/gcc/reload.c index 599e335eb9c4..af520ef1515e 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -100,6 +100,7 @@ a register with any other reload. */ #include "expr.h" #include "optabs.h" #include "recog.h" +#include "df.h" #include "reload.h" #include "regs.h" #include "addresses.h" @@ -110,7 +111,6 @@ a register with any other reload. */ #include "toplev.h" #include "params.h" #include "target.h" -#include "df.h" #include "ira.h" /* True if X is a constant that can be forced into the constant pool. */ diff --git a/gcc/reload.h b/gcc/reload.h index 6118bedf2690..a28567014d3b 100644 --- a/gcc/reload.h +++ b/gcc/reload.h @@ -225,8 +225,8 @@ struct insn_chain /* Register life information: record all live hard registers, and all live pseudos that have a hard register. This set also contains pseudos spilled by IRA. */ - regset_head live_throughout; - regset_head dead_or_set; + bitmap_head live_throughout; + bitmap_head dead_or_set; /* Copies of the global variables computed by find_reloads. */ struct reload *rld; @@ -242,8 +242,10 @@ extern struct insn_chain *reload_insn_chain; /* Allocate a new insn_chain structure. */ extern struct insn_chain *new_insn_chain (void); +#endif -extern void compute_use_by_pseudos (HARD_REG_SET *, regset); +#if defined SET_HARD_REG_BIT +extern void compute_use_by_pseudos (HARD_REG_SET *, bitmap); #endif /* Functions from reload.c: */ diff --git a/gcc/reload1.c b/gcc/reload1.c index 7c89b64f3140..504c9e09049c 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see #include "regs.h" #include "addresses.h" #include "basic-block.h" +#include "df.h" #include "reload.h" #include "recog.h" #include "output.h" @@ -44,7 +45,6 @@ along with GCC; see the file COPYING3. If not see #include "except.h" #include "tree.h" #include "ira.h" -#include "df.h" #include "target.h" #include "emit-rtl.h" diff --git a/gcc/sbitmap.c b/gcc/sbitmap.c index f429f70eccf6..205b1827284c 100644 --- a/gcc/sbitmap.c +++ b/gcc/sbitmap.c @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "hard-reg-set.h" #include "obstack.h" #include "basic-block.h" +#include "sbitmap.h" #if GCC_VERSION >= 3400 #if HOST_BITS_PER_WIDEST_FAST_INT == HOST_BITS_PER_LONG diff --git a/gcc/sbitmap.h b/gcc/sbitmap.h index 7e2bc7076777..dc6d67154997 100644 --- a/gcc/sbitmap.h +++ b/gcc/sbitmap.h @@ -36,14 +36,13 @@ along with GCC; see the file COPYING3. If not see #error Need to increase size of datatype used for popcount #endif -typedef struct simple_bitmap_def +struct simple_bitmap_def { unsigned char *popcount; /* Population count. */ unsigned int n_bits; /* Number of bits. */ unsigned int size; /* Size in elements. */ SBITMAP_ELT_TYPE elms[1]; /* The elements. */ -} *sbitmap; -typedef const struct simple_bitmap_def *const_sbitmap; +}; typedef SBITMAP_ELT_TYPE *sbitmap_ptr; typedef const SBITMAP_ELT_TYPE *const_sbitmap_ptr; diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h index 20f0bba53746..f3025e856ae2 100644 --- a/gcc/sel-sched-ir.h +++ b/gcc/sel-sched-ir.h @@ -23,7 +23,7 @@ along with GCC; see the file COPYING3. If not see /* For state_t. */ #include "insn-attr.h" -/* For regset_head. */ +#include "regset.h" #include "basic-block.h" /* For reg_note. */ #include "rtl.h" diff --git a/gcc/stmt.c b/gcc/stmt.c index 2778befd1985..4b91ab6522e1 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -52,6 +52,8 @@ along with GCC; see the file COPYING3. If not see #include "regs.h" #include "alloc-pool.h" #include "pretty-print.h" +#include "bitmap.h" + /* Functions and data structures for expanding case statements. */ diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 864f3b9e6de8..bcbd7fbe440e 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #define _TREE_FLOW_H 1 #include "bitmap.h" +#include "sbitmap.h" #include "basic-block.h" #include "hashtab.h" #include "gimple.h" diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index f71ab4d7b53a..76918f1cfd69 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -47,7 +47,7 @@ along with GCC; see the file COPYING3. If not see #include "cfgloop.h" #include "except.h" #include "plugin.h" - +#include "regset.h" /* FIXME: For reg_obstack. */ /* Gate: execute, or not, all of the non-trivial optimizations. */ -- 2.39.2