diff options
author | Rong Xu <xur@google.com> | 2014-08-06 17:50:42 -0700 |
---|---|---|
committer | Rong Xu <xur@google.com> | 2014-08-06 17:50:42 -0700 |
commit | f1c18afafc2b321465ae6b07ede127095942d7dc (patch) | |
tree | 812093eebfa8510367718c12c02f7da03c0e73bf /gcc-4.9/gcc/ipa-inline-transform.c | |
parent | 38a8aecfb882072900434499696b5c32a2274515 (diff) | |
download | toolchain_gcc-f1c18afafc2b321465ae6b07ede127095942d7dc.zip toolchain_gcc-f1c18afafc2b321465ae6b07ede127095942d7dc.tar.gz toolchain_gcc-f1c18afafc2b321465ae6b07ede127095942d7dc.tar.bz2 |
[gcc-4.9] Merge svn r213650 from google/gcc-4_9 branch
Merge svn r213650 from google/gcc-4_9 branch. Tested with
arm,x86,mips,arm64,x86_64,mips64 build in liunux/windows.
Change-Id: I0c07f67d516074172aa393003eee664d01f2e0f2
Diffstat (limited to 'gcc-4.9/gcc/ipa-inline-transform.c')
-rw-r--r-- | gcc-4.9/gcc/ipa-inline-transform.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc-4.9/gcc/ipa-inline-transform.c b/gcc-4.9/gcc/ipa-inline-transform.c index aaf427d..69598b3 100644 --- a/gcc-4.9/gcc/ipa-inline-transform.c +++ b/gcc-4.9/gcc/ipa-inline-transform.c @@ -186,8 +186,14 @@ clone_inlined_nodes (struct cgraph_edge *e, bool duplicate, else { struct cgraph_node *n; - if (flag_auto_profile && L_IPO_COMP_MODE - && cgraph_pre_profiling_inlining_done) + /* Disable updating of callee count if caller is not the resolved node + to avoid multiple updates of the callee's profile when inlining + into COMDAT copies. Both AutoFDO and regular FDO will have the + same edge counts for all unresolved nodes. In AutoFDO this is due + to profile correlation by function name and source position. In + regular FDO this is due to COMDAT profile merging performed on the + dynamic callgraph at the end of LIPO profiling. */ + if (L_IPO_COMP_MODE && cgraph_pre_profiling_inlining_done) { struct cgraph_node *caller = e->caller; if (caller->global.inlined_to) |