[Bug ipa/105160] [12 regression] ipa modref marks functions with asm volatile as const or pure

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Apr 5 12:30:38 GMT 2022


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

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm, we ignore inlined edges during propagation!?

          for (cgraph_edge *callee_edge = cur->callees; callee_edge;
               callee_edge = callee_edge->next_callee)
            {
              int flags = flags_from_decl_or_type (callee_edge->callee->decl);
              modref_summary *callee_summary = NULL;
              modref_summary_lto *callee_summary_lto = NULL;
              struct cgraph_node *callee;

              if (!callee_edge->inline_failed
                 || ((flags & (ECF_CONST | ECF_NOVOPS))
                     && !(flags & ECF_LOOPING_CONST_OR_PURE)))
                continue;

but we also ignore calls during local analysis in IPA mode.  Where are we
supposed to factor in flags from inline clones?  Is the IPA inline pass
supposed to update summaries somehow?


More information about the Gcc-bugs mailing list