diff mbox series

Dump info about missing summaries in ipa-prop

Message ID 20191113091155.ref2qhwqvyjixf4k@kam.mff.cuni.cz
State New
Headers show
Series Dump info about missing summaries in ipa-prop | expand

Commit Message

Jan Hubicka Nov. 13, 2019, 9:11 a.m. UTC
Hi,
this patch makes ipa-prop to dump info about missing summaries which
is better than just an ICE :)

Bootstrapped/regtested x86_64-linux, comitted.

	* ipa-prop.c (ipa_print_node_jump_functions,
	ipa_print_node_params): Print info about missing summaries.
diff mbox series

Patch

Index: ipa-prop.c
===================================================================
--- ipa-prop.c	(revision 278094)
+++ ipa-prop.c	(working copy)
@@ -422,20 +422,19 @@  ipa_print_node_jump_functions (FILE *f,
   fprintf (f, "  Jump functions of caller  %s:\n", node->dump_name ());
   for (cs = node->callees; cs; cs = cs->next_callee)
     {
-      if (!ipa_edge_args_info_available_for_edge_p (cs))
-	continue;
 
       fprintf (f, "    callsite  %s -> %s : \n",
 	       node->dump_name (),
 	       cs->callee->dump_name ());
-      ipa_print_node_jump_functions_for_edge (f, cs);
+      if (!ipa_edge_args_info_available_for_edge_p (cs))
+	fprintf (f, "       no arg info\n");
+      else
+        ipa_print_node_jump_functions_for_edge (f, cs);
     }
 
   for (cs = node->indirect_calls; cs; cs = cs->next_callee)
     {
       class cgraph_indirect_call_info *ii;
-      if (!ipa_edge_args_info_available_for_edge_p (cs))
-	continue;
 
       ii = cs->indirect_info;
       if (ii->agg_contents)
@@ -459,7 +458,10 @@  ipa_print_node_jump_functions (FILE *f,
 	fprintf (f, "\n");
       if (ii->polymorphic)
 	ii->context.dump (f);
-      ipa_print_node_jump_functions_for_edge (f, cs);
+      if (!ipa_edge_args_info_available_for_edge_p (cs))
+	fprintf (f, "       no arg info\n");
+      else
+        ipa_print_node_jump_functions_for_edge (f, cs);
     }
 }
 
@@ -4081,6 +4083,11 @@  ipa_print_node_params (FILE *f, struct c
     return;
   info = IPA_NODE_REF (node);
   fprintf (f, "  function  %s parameter descriptors:\n", node->dump_name ());
+  if (!info)
+    {
+      fprintf (f, " no params return\n");
+      return;
+    }
   count = ipa_get_param_count (info);
   for (i = 0; i < count; i++)
     {