From cea768b0caa43d0957d752933bb43f3d73bfed69 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 4 Jul 2017 15:42:22 +0200 Subject: [PATCH] * haifa-sched.c (sched_create_recovery_edges): Update profile. From-SVN: r249967 --- gcc/ChangeLog | 4 ++++ gcc/haifa-sched.c | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a1659d01c0..89678c226fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-07-04 Jan Hubicka + + * haifa-sched.c (sched_create_recovery_edges): Update profile. + 2017-07-04 Jan Hubicka * bb-reorder.c (better_edge_p): Fix handling of uninitialized diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 9632a6d75db..af0ed27b18f 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -8302,7 +8302,19 @@ sched_create_recovery_edges (basic_block first_bb, basic_block rec, else edge_flags = 0; - make_edge (first_bb, rec, edge_flags); + edge e2 = single_succ_edge (first_bb); + edge e = make_edge (first_bb, rec, edge_flags); + + /* TODO: The actual probability can be determined and is computed as + 'todo_spec' variable in create_check_block_twin and + in sel-sched.c `check_ds' in create_speculation_check. */ + e->probability = profile_probability::very_unlikely (); + e->count = first_bb->count.apply_probability (e->probability); + rec->count = e->count; + rec->frequency = EDGE_FREQUENCY (e); + e2->probability = e->probability.invert (); + e2->count = first_bb->count - e2->count; + rtx_code_label *label = block_label (second_bb); rtx_jump_insn *jump = emit_jump_insn_after (targetm.gen_jump (label), BB_END (rec)); -- 2.30.2