diff options
author | Dehao Chen <dehao@google.com> | 2014-05-16 20:40:29 +0000 |
---|---|---|
committer | Dehao Chen <dehao@gcc.gnu.org> | 2014-05-16 20:40:29 +0000 |
commit | b0e66512ee26dec9b4e20b612bab88f6163fe48a (patch) | |
tree | 59a5a32e9cc23f9622626883d23a53b71387ac68 | |
parent | 870c7fa03a0d97a77092fab5ab397b25ef1f6d6b (diff) | |
download | gcc-b0e66512ee26dec9b4e20b612bab88f6163fe48a.zip gcc-b0e66512ee26dec9b4e20b612bab88f6163fe48a.tar.gz gcc-b0e66512ee26dec9b4e20b612bab88f6163fe48a.tar.bz2 |
cfghooks.c (make_forwarder_block): Use direct computation to get fall-through edge's count and frequency.
2014-05-16 Dehao Chen <dehao@google.com>
* cfghooks.c (make_forwarder_block): Use direct computation to
get fall-through edge's count and frequency.
From-SVN: r210528
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfghooks.c | 16 |
2 files changed, 11 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1db65a6..be8026a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-05-16 Dehao Chen <dehao@google.com> + + * cfghooks.c (make_forwarder_block): Use direct computation to + get fall-through edge's count and frequency. + 2014-02-07 Benno Schulenberg <bensberg@justemail.net> * config/arc/arc.c (arc_init): Fix typo in error message. diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c index bc1634a..66313df 100644 --- a/gcc/cfghooks.c +++ b/gcc/cfghooks.c @@ -833,6 +833,9 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge), fallthru = split_block_after_labels (bb); dummy = fallthru->src; + dummy->count = 0; + dummy->frequency = 0; + fallthru->count = 0; bb = fallthru->dest; /* Redirect back edges we want to keep. */ @@ -842,20 +845,13 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge), if (redirect_edge_p (e)) { + dummy->frequency += EDGE_FREQUENCY (e); + dummy->count += e->count; + fallthru->count += e->count; ei_next (&ei); continue; } - dummy->frequency -= EDGE_FREQUENCY (e); - dummy->count -= e->count; - if (dummy->frequency < 0) - dummy->frequency = 0; - if (dummy->count < 0) - dummy->count = 0; - fallthru->count -= e->count; - if (fallthru->count < 0) - fallthru->count = 0; - e_src = e->src; jump = redirect_edge_and_branch_force (e, bb); if (jump != NULL) |