aboutsummaryrefslogtreecommitdiff
path: root/gcc/basic-block.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r--gcc/basic-block.h21
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);