https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87885

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |marxin at gcc dot 
gnu.org
   Target Milestone|---                         |9.0

--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> ---
Let me finish that based on what was discussed on IRC:

<richi> dead BBs can have bogus IL,
<richi> for example propagators do not bother to update IL in such blocks but
release SSA names that are otherwise propagated out
<richi> but actual BB removal is left to CFG cleanup because that knows how to
properly do that
<honza> hmm, that is not very pretty but I guess we could just drop the middle
value.
<honza> one can modify the code to account only reachable BBs but that would
give simliar values as doing accounting after cfgcleanup.
<richi> so that would mean moving both calls after TODO?
<honza> just completely dropping the first call and the first accounted number
would be OK I guess
<honza> if it can't be computed safely, that is.
<richi> but the docs say theres two phases - so it isn't really two phases?!
<richi> we can also elide the first call if TODO_cfg_cleanup
<richi> but then there isn't any cleanup and the first call is pointless
<richi> why does it use estimate_num_insns rather than just counting stmts?
<honza> well, the statistics was originally intended to help judging if, say,
re-running fre for third time is useful
<richi> it's about profile after all?
<honza> because you can do FDO build and then you get number of much the code
has similified after every pass
<richi> OK, but then that's the after-TODO value that is interesting
<honza> estimate_num_insns is used to estimate runtime of the program
<honza> it also accounts profile mismatches.  The two runs was really done to
have idea how much the pass itself mangled the profile and how much the profile
was beaten during the cfg cleanups the pass invoked
<honza> having only the second value is OK
<honza> if calculating first meaningfully is a trouble.
<richi> so we can look at the profile only in the first pass and the size/time
in the second?
<honza> yes, that would work, too.
<richi> anyway, I leave the PR to somebody else ;)
<honza> I can look into it next week.
<richi> works for me
<honza> I wanted to discuss a bit the pointers.  So my understanding is that
C++ has rvalue and normal referneces.

Reply via email to