OSDN Git Service

* config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
[pf3gnuchains/gcc-fork.git] / gcc / basic-block.h
index bb334fd..b5f045e 100644 (file)
@@ -149,8 +149,6 @@ struct edge_def GTY((chain_next ("%h.pred_next")))
   int probability;             /* biased by REG_BR_PROB_BASE */
   gcov_type count;             /* Expected number of executions calculated
                                   in profile.c  */
-  bool crossing_edge;           /* Crosses between hot and cold sections, when
-                                  we do partitioning.  */
 };
 
 typedef struct edge_def *edge;
@@ -174,7 +172,10 @@ typedef struct edge_def *edge;
                                           predicate is zero.  */
 #define EDGE_EXECUTABLE                4096    /* Edge is executable.  Only
                                           valid during SSA-CCP.  */
-#define EDGE_ALL_FLAGS         8191
+#define EDGE_CROSSING          8192    /* Edge crosses between hot
+                                          and cold sections, when we
+                                          do partitioning.  */
+#define EDGE_ALL_FLAGS        16383
 
 #define EDGE_COMPLEX   (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)
 
@@ -330,6 +331,14 @@ extern int last_basic_block;
 
 extern int n_edges;
 
+/* Signalize the status of profile information in the CFG.  */
+extern enum profile_status
+{
+  PROFILE_ABSENT,
+  PROFILE_GUESSED,
+  PROFILE_READ
+} profile_status;
+
 /* Index by basic block number, get basic block struct info.  */
 
 extern GTY(()) varray_type basic_block_info;
@@ -436,6 +445,7 @@ extern void flow_preorder_transversal_compute (int *);
 extern int dfs_enumerate_from (basic_block, int,
                               bool (*)(basic_block, void *),
                               basic_block *, int, void *);
+extern void compute_dominance_frontiers (bitmap *);
 extern void dump_edge_info (FILE *, edge, int);
 extern void brief_dump_cfg (FILE *);
 extern void clear_edges (void);
@@ -676,7 +686,7 @@ extern bool inside_basic_block_p (rtx);
 extern bool control_flow_insn_p (rtx);
 
 /* In bb-reorder.c */
-extern void reorder_basic_blocks (void);
+extern void reorder_basic_blocks (unsigned int);
 extern void partition_hot_cold_basic_blocks (void);
 
 /* In cfg.c */
@@ -723,6 +733,7 @@ extern basic_block first_dom_son (enum cdi_direction, basic_block);
 extern basic_block next_dom_son (enum cdi_direction, basic_block);
 extern edge try_redirect_by_replacing_jump (edge, basic_block, bool);
 extern void break_superblocks (void);
+extern void check_bb_profile (basic_block, FILE *);
 
 #include "cfghooks.h"