This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PR middle-end/42151 (verify_cgraph ICE)


Hi,                                                                                                                                                                    
PR middle-end/42151 is ICE in inline_transform trying to apply inline twice in row.                                                                                    
This is because how the clonning is merging the ipa transforms after inlining is done,                                                                                 
I will fix this more properly with WPA cleanups, at the moment it is very difficult to                                                                                 
do something with this code without getting whopr failures.                                                                                                            
                                                                                                                                                                       
Bootstrapped/regtested x86_64-linux, comitted.                                                                                                                         
Honza   

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 154474)
+++ ChangeLog	(working copy)
@@ -1,5 +1,11 @@
 2009-11-23  Jan Hubicka  <jh@suse.cz>
 
+	PR middle-end/42151
+	* ipa-inline.c (inline_transform): Avoid ICE when transform is called
+	twice.
+
+2009-11-23  Jan Hubicka  <jh@suse.cz>
+
 	* ipa-cp.c (ipcp_compute_node_scale): Work around completely
 	wrong profile updates.
 	* predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
Index: ipa-inline.c
===================================================================
--- ipa-inline.c	(revision 154461)
+++ ipa-inline.c	(working copy)
@@ -1974,6 +1974,11 @@ inline_transform (struct cgraph_node *no
   unsigned int todo = 0;
   struct cgraph_edge *e;
 
+  /* FIXME: Currently the passmanager is adding inline transform more than once to some
+     clones.  This needs revisiting after WPA cleanups.  */
+  if (cfun->after_inlining)
+    return 0;
+
   /* We might need the body of this function so that we can expand
      it inline somewhere else.  */
   if (cgraph_preserve_function_body_p (node->decl))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]