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

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at redhat dot com,
                   |                            |mjambor at suse dot cz
          Component|ipa                         |c
            Summary|[11 Regression] ice during  |ice during IPA pass: inline
                   |IPA pass: inline            |

--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
What hits us here is the hack I needed to introduce to
ipa_param_adjustments::modify_call which triggers materialization to make debug
info code working.  In this case redirection happens from tree-inline and
materialization gets us back to tree-inline. Inliner is however not intended to
be recursive (it uses bb->aux pointers and in this case it will use it twice).

Martin, Jambor,
it would be really great if we did not need to materialize.  I do not see how
attaching debug info to decls can work if caller is in one partition and callee
in another.

We could also just add a loop walking all such calls and trigger
materialization before going to tree-inline to avoid the recursion problem, but
still IMO debug info will get missing on the partitioning boundary. We could
also just avoid the (ab)use of bb->aux and replace it by a vector here which
would be also an option.

Reply via email to