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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl.tools at gmail dot com,
                   |                            |jakub at gcc dot gnu.org,
                   |                            |rsandifo at gcc dot gnu.org

--- Comment #27 from Richard Biener <rguenth at gcc dot gnu.org> ---
HJ, you added remove_partial_avx_dependency - it adds loads of DF problems
but during its execution it does not seem to use anything but doing
df_insn_rescan.  I'm not too familiar with DF so I assume calling
df_analyze is necessary to mark insns for rescan (I'd assume _not_ calling
df_analyze but only setting defered-rescan and not processing defered
rescans in a pass not needing DF at all should work?!  Or even defered
rescan is default on in that case).

Besides this the pass ups memory use from 2GB to 7GB and memory use doesn't
drop so there's sth fishy going on here.

I'm testing the obvious remove of

              df_chain_add_problem (DF_DU_CHAIN | DF_UD_CHAIN);
              df_md_add_problem ();

which was likely copied from STV (where I removed adding MD), but STV
_does_ at least use DF and exercises use/def chains.

I'm also not sure altering the CFG is the very best thing to do when
DF is active (and doing that with MD or DU/UD might cause interesting
unknown issues I guess).  At least with not adding MD or DU/UD_CHAIN
the "leak" is gone.  Richard or Jakub may know more here, esp. whether
we can elide the df_analyze completely (I hope we can!).  Even
DF_LIVE and LR alone are a major hog on this testcase (but at least
stay within 2GB of memory while RD tops at 7GB).

Reply via email to