[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:19:07 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105160
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
The odd thing is that during IPA propagation (modref_propagate_in_scc), the
summary of sctlr_read is
(gdb) p *cur_summary
$2 = {loads = 0x7ffff665af00, stores = 0x7ffff665af10,
kills = {<vec<modref_access_node, va_heap, vl_ptr>> = {
m_vec = 0x0}, <No data fields>},
arg_flags = {<vec<unsigned short, va_heap, vl_ptr>> = {
m_vec = 0x0}, <No data fields>}, retslot_flags = 0,
static_chain_flags = 0, writes_errno = 0, side_effects = 0,
nondeterministic = 0, calls_interposable = 0, load_accesses = 0,
global_memory_read = 0, global_memory_written = 0, try_dse = 1}
which is because we access the summary of cur->inlined_to (sctlr_rmw) here
but that hasn't been processed. But the non-inlined node doesn't have a
summary.
So somehow we fail to merge the info from the inlined clones?
But even using ->clone_of instead of ->inlined_to doesn't make a difference
(no summary for that node either).
Something is wrong. Honza?
More information about the Gcc-bugs
mailing list