aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDehao Chen <dehao@google.com>2014-05-20 22:25:06 +0000
committerDehao Chen <dehao@gcc.gnu.org>2014-05-20 22:25:06 +0000
commit983398517e18629db71d6a75bc7e50c3df44b3d4 (patch)
tree1bd8a95838906705bcd87c8109dcd41dccc7f970 /gcc
parent6ed9c90a5db18fa72928d77d47c0159f75486b45 (diff)
downloadgcc-983398517e18629db71d6a75bc7e50c3df44b3d4.zip
gcc-983398517e18629db71d6a75bc7e50c3df44b3d4.tar.gz
gcc-983398517e18629db71d6a75bc7e50c3df44b3d4.tar.bz2
ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count and callee count to get clone count.
2014-05-20 Dehao Chen <dehao@google.com> * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count and callee count to get clone count. * tree-inline.c (expand_call_inline): Use callee count instead of bb count in copy_body. From-SVN: r210660
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ipa-inline-transform.c5
-rw-r--r--gcc/tree-inline.c2
3 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1fad15b..0b1900e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-05-20 Dehao Chen <dehao@google.com>
+
+ * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
+ and callee count to get clone count.
+ * tree-inline.c (expand_call_inline): Use callee count instead of bb
+ count in copy_body.
+
2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
PR rtl-optimization/61243
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c
index a45aab1..7cd3ff7 100644
--- a/gcc/ipa-inline-transform.c
+++ b/gcc/ipa-inline-transform.c
@@ -183,8 +183,9 @@ clone_inlined_nodes (struct cgraph_edge *e, bool duplicate,
if (freq_scale == -1)
freq_scale = e->frequency;
n = cgraph_clone_node (e->callee, e->callee->decl,
- e->count, freq_scale, update_original,
- vNULL, true, inlining_into, NULL);
+ MIN (e->count, e->callee->count), freq_scale,
+ update_original, vNULL, true, inlining_into,
+ NULL);
cgraph_redirect_edge_callee (e, n);
}
}
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index bc2b271..3208c74 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -4355,7 +4355,7 @@ expand_call_inline (basic_block bb, gimple stmt, copy_body_data *id)
function in any way before this point, as this CALL_EXPR may be
a self-referential call; if we're calling ourselves, we need to
duplicate our body before altering anything. */
- copy_body (id, bb->count,
+ copy_body (id, cg_edge->callee->count,
GCOV_COMPUTE_SCALE (cg_edge->frequency, CGRAPH_FREQ_BASE),
bb, return_block, NULL);