This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[google-4_6] fix profile mismatch in stream LIPO (issue6194059)
- From: xur at google dot com (Rong Xu)
- To: reply at codereview dot appspotmail dot com,davidxl at google dot com,gcc-patches at gcc dot gnu dot org
- Date: Tue, 8 May 2012 09:53:45 -0700 (PDT)
- Subject: [google-4_6] fix profile mismatch in stream LIPO (issue6194059)
Hi,
This patch is for google-4_6 branch only.
It fixes a profile mismatch in streaming LIPO and recovers the performance loss
due to this.
Tested with google internal benchmarks.
Thanks,
2012-05-08 Rong Xu <xur@google.com>
* ipa-inline.c (fixed_arg_function_p):
(better_inline_comdat_function_p): match lipo_gen in stream LIPO.
Index: ipa-inline.c
===================================================================
--- ipa-inline.c (revision 187275)
+++ ipa-inline.c (working copy)
@@ -658,7 +658,7 @@ fixed_arg_function_p (tree fndecl)
static bool
better_inline_comdat_function_p (struct cgraph_node *node)
{
- return (profile_arc_flag && flag_dyn_ipa
+ return (profile_arc_flag && (flag_dyn_ipa || flag_ripa_stream)
&& DECL_COMDAT (node->decl)
&& node->global.size <= PARAM_VALUE (PARAM_MAX_INLINE_INSNS_SINGLE)
&& fixed_arg_function_p (node->decl));
--
This patch is available for review at http://codereview.appspot.com/6194059