diff options
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 1465d9ed2d6..51363a96701 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -146,6 +146,10 @@ 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 */ + /* APPLE LOCAL begin hot/cold partitioning */ + bool crossing_edge; /* Crosses between hot and cold sections, when + we do partitioning. */ + /* APPLE LOCAL end hot/cold partitioning */ }; typedef struct edge_def *edge; @@ -268,6 +272,12 @@ struct basic_block_def GTY((chain_next ("%h.next_bb"), chain_prev ("%h.prev_bb") /* Various flags. See BB_* below. */ int flags; + /* APPLE LOCAL begin hot/cold partitioning */ + /* Which section block belongs in, when partitioning basic blocks. */ + int partition; + + /* APPLE LOCAL end hot/cold partitioning */ + /* The data used by basic block copying and reordering functions. */ struct reorder_block_def * GTY ((skip (""))) rbi; @@ -304,6 +314,14 @@ typedef struct reorder_block_def #define BB_IRREDUCIBLE_LOOP 16 #define BB_SUPERBLOCK 32 +/* APPLE LOCAL begin hot/cold partitioning */ +/* Partitions, to be used when partitioning hot and cold basic blocks into + separate sections. */ +#define UNPARTITIONED 0 +#define HOT_PARTITION 1 +#define COLD_PARTITION 2 +/* APPLE LOCAL end hot/cold partitioning */ + /* Number of basic blocks in the current function. */ extern int n_basic_blocks; @@ -664,6 +682,9 @@ extern bool control_flow_insn_p (rtx); /* In bb-reorder.c */ extern void reorder_basic_blocks (void); +/* APPLE LOCAL begin hot/cold partitioning */ +extern void partition_hot_cold_basic_blocks (void); +/* APPLE LOCAL end hot/cold partitioning */ /* In cfg.c */ extern void alloc_rbi_pool (void); |