From f8fcbd5253f876513469b2abd54ed279a3d6c782 Mon Sep 17 00:00:00 2001 From: hubicka Date: Tue, 4 Jul 2017 13:42:22 +0000 Subject: [PATCH] * haifa-sched.c (sched_create_recovery_edges): Update profile. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@249967 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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,5 +1,9 @@ 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 probability. 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.11.4.GIT