OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / basic-block.h
index 28a7be6..790b27b 100644 (file)
@@ -233,9 +233,6 @@ struct basic_block_def GTY((chain_next ("%h.next_bb"), chain_prev ("%h.prev_bb")
   struct basic_block_def *prev_bb;
   struct basic_block_def *next_bb;
 
-  /* The data used by basic block copying and reordering functions.  */
-  struct reorder_block_def * rbi;
-
   union basic_block_il_dependent {
       struct rtl_bb_info * GTY ((tag ("1"))) rtl;
     } GTY ((desc ("((%1.flags & BB_RTL) != 0)"))) il;
@@ -273,25 +270,17 @@ struct rtl_bb_info GTY(())
 
   /* The registers that are live on exit from this block.  */
   bitmap GTY ((skip (""))) global_live_at_end;
-};
-
-typedef struct basic_block_def *basic_block;
-
-/* Structure to hold information about the blocks during reordering and
-   copying.  Needs to be put on a diet.  */
 
-struct reorder_block_def GTY(())
-{
+  /* In CFGlayout mode points to insn notes/jumptables to be placed just before
+     and after the block.   */
   rtx header;
   rtx footer;
 
-  basic_block next;
-
   /* This field is used by the bb-reorder and tracer passes.  */
   int visited;
 };
 
-typedef struct reorder_block_def *reorder_block_def;
+typedef struct basic_block_def *basic_block;
 
 #define BB_FREQ_MAX 10000
 
@@ -303,7 +292,7 @@ typedef struct reorder_block_def *reorder_block_def;
    All other flags may be cleared by clear_bb_flags().  It is generally
    a bad idea to rely on any flags being up-to-date.  */
 
-enum
+enum bb_flags
 {
 
   /* Set if insns in BB have are modified.  Used for updating liveness info.  */
@@ -336,7 +325,15 @@ enum
   BB_DUPLICATED = 256,
 
   /* Set on blocks that are in RTL format.  */
-  BB_RTL = 1024
+  BB_RTL = 1024,
+
+  /* Set on blocks that are forwarder blocks.
+     Only used in cfgcleanup.c.  */
+  BB_FORWARDER_BLOCK = 2048,
+
+  /* Set on blocks that cannot be threaded through.
+     Only used in cfgcleanup.c.  */
+  BB_NONTHREADABLE_BLOCK = 4096
 };
 
 /* Dummy flag for convenience in the hot/cold partitioning code.  */
@@ -937,12 +934,8 @@ extern bool control_flow_insn_p (rtx);
 
 /* In bb-reorder.c */
 extern void reorder_basic_blocks (unsigned int);
-extern void duplicate_computed_gotos (void);
 extern void partition_hot_cold_basic_blocks (void);
 
-/* In cfg.c */
-extern void initialize_bb_rbi (basic_block bb);
-
 /* In dominance.c */
 
 enum cdi_direction