> I just found this in tree-cfg.c; the comment is probably wrong with
> respect to const and pure. What do you think?
Yes, it should be safe to remove the hack now when we do IPA profiling.
Thanks for noticing it ;)
Honza
>
> /* Return true if we need to add fake edge to exit at statement T.
> Helper function for tree_flow_call_edges_add. */
>
> static bool
> need_fake_edge_p (tree t)
> {
> tree call;
>
> /* NORETURN and LONGJMP calls already have an edge to exit.
> CONST and PURE calls do not need one.
> We don't currently check for CONST and PURE here, although
> it would be a good idea, because those attributes are
> figured out from the RTL in mark_constant_function, and
> the counter incrementation code from -fprofile-arcs
> leads to different results from -fbranch-probabilities. */
> call = get_call_expr_in (t);
> if (call
> && !(call_expr_flags (call) & ECF_NORETURN))
> return true;
>
> if (TREE_CODE (t) == ASM_EXPR
> && (ASM_VOLATILE_P (t) || ASM_INPUT_P (t)))
> return true;
>
> return false;
> }
>
> Paolo