OSDN Git Service

* gcc.dg/compat/scalar-by-value-3_main.c: New file.
[pf3gnuchains/gcc-fork.git] / gcc / basic-block.h
index 680bba5..4aa47dd 100644 (file)
@@ -150,9 +150,16 @@ typedef struct edge_def {
 #define EDGE_DFS_BACK          32      /* A backwards edge */
 #define EDGE_CAN_FALLTHRU      64      /* Candidate for straight line
                                           flow.  */
+#define EDGE_IRREDUCIBLE_LOOP  128     /* Part of irreducible loop.  */
+#define EDGE_SIBCALL           256     /* Edge from sibcall to exit.  */
+#define EDGE_ALL_FLAGS         511
 
 #define EDGE_COMPLEX   (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)
 
+/* Counter summary from the last set of coverage counts read by
+   profile.c. */
+extern const struct gcov_ctr_summary *profile_info;
+
 /* Declared in cfgloop.h.  */
 struct loop;
 struct loops;
@@ -332,8 +339,6 @@ extern void update_bb_for_insn              PARAMS ((basic_block));
 
 extern void free_basic_block_vars      PARAMS ((int));
 
-extern edge split_block                        PARAMS ((basic_block, rtx));
-extern basic_block split_edge          PARAMS ((edge));
 extern void insert_insn_on_edge                PARAMS ((rtx, edge));
 
 extern void commit_edge_insertions     PARAMS ((void));
@@ -343,6 +348,8 @@ extern void remove_fake_edges               PARAMS ((void));
 extern void add_noreturn_fake_exit_edges       PARAMS ((void));
 extern void connect_infinite_loops_to_exit     PARAMS ((void));
 extern int flow_call_edges_add         PARAMS ((sbitmap));
+extern edge unchecked_make_edge                PARAMS ((basic_block,
+                                                basic_block, int));
 extern edge cached_make_edge           PARAMS ((sbitmap *, basic_block,
                                                 basic_block, int));
 extern edge make_edge                  PARAMS ((basic_block,
@@ -355,8 +362,7 @@ extern edge redirect_edge_succ_nodup        PARAMS ((edge, basic_block));
 extern void redirect_edge_pred         PARAMS ((edge, basic_block));
 extern basic_block create_basic_block_structure PARAMS ((rtx, rtx, rtx, basic_block));
 extern basic_block create_basic_block  PARAMS ((rtx, rtx, basic_block));
-extern int flow_delete_block           PARAMS ((basic_block));
-extern int flow_delete_block_noexpunge PARAMS ((basic_block));
+extern void flow_delete_block_noexpunge        PARAMS ((basic_block));
 extern void clear_bb_flags             PARAMS ((void));
 extern void merge_blocks_nomove                PARAMS ((basic_block, basic_block));
 extern void tidy_fallthru_edge         PARAMS ((edge, basic_block,
@@ -540,7 +546,7 @@ extern void init_flow                   PARAMS ((void));
 extern void reorder_basic_blocks       PARAMS ((void));
 extern void dump_bb                    PARAMS ((basic_block, FILE *));
 extern void debug_bb                   PARAMS ((basic_block));
-extern void debug_bb_n                 PARAMS ((int));
+extern basic_block debug_bb_n          PARAMS ((int));
 extern void dump_regset                        PARAMS ((regset, FILE *));
 extern void debug_regset               PARAMS ((regset));
 extern void allocate_reg_life_data      PARAMS ((void));
@@ -552,9 +558,7 @@ extern void compact_blocks          PARAMS ((void));
 extern basic_block alloc_block         PARAMS ((void));
 extern void find_unreachable_blocks    PARAMS ((void));
 extern int delete_noop_moves           PARAMS ((rtx));
-extern basic_block redirect_edge_and_branch_force PARAMS ((edge, basic_block));
 extern basic_block force_nonfallthru   PARAMS ((edge));
-extern bool redirect_edge_and_branch   PARAMS ((edge, basic_block));
 extern rtx block_label                 PARAMS ((basic_block));
 extern bool forwarder_block_p          PARAMS ((basic_block));
 extern bool purge_all_dead_edges       PARAMS ((int));
@@ -641,4 +645,7 @@ extern void redirect_immediate_dominators PARAMS ((dominance_info, basic_block,
                                                 basic_block));
 void iterate_fix_dominators PARAMS ((dominance_info, basic_block *, int));
 extern void verify_dominators PARAMS ((dominance_info));
+
+#include "cfghooks.h"
+
 #endif /* GCC_BASIC_BLOCK_H */