I wrote an IPA PASS in the plugin: ipa-get_fun. This IPA PASS is placed
before ipa-inline. The `generate_summary`, `write_summary`, `read_summary`,
`write_optimization_summary`, and `read_optimization_summary` functions in
`ipa-get_fun` do nothing—they are empty.  In the `execute` function of the
WPA phase for `ipa-get_fun`, only the following code exists: it retrieves
the function bodies for each function.  cgraph_node *n;
  cgraph_node *n;
  FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (n)
  {
    if (n && n->decl)
    {
      n->get_untransformed_body ();
    }
  }


Immediately afterward, within the execute function of the WPA phase in
IPA-inline, estimate_calls_size_and_time was invoked. The following segment
of code in estimate_calls_size_and_time encountered an assertion error.
 estimate_calls_size_and_time_1 (node, &old_size, NULL, &old_time, NULL,
 possible_truths, avals);
 gcc_assert (*size == old_size);


In this case, *size == 20 and old_size == 14. Why is this happening, and
can I access the function body in this manner within the execute function
of a WPA phase in an IPA PASS?

Reply via email to