https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109985
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm: modref analyzing 'void boost::unordered::detail::foa::prefetch(const void*)/3452' (ipa=0) (pure) Analyzing flags of ssa name: p_1(D) Analyzing stmt: __builtin_prefetch (p_1(D)); current flags of p_1(D) no_direct_clobber no_indirect_clobber no_direct_escape no_indirect_escape not_returned_directly not_returned_indirectly no_direct_read no_indirect_read flags of ssa name p_1(D) no_direct_clobber no_indirect_clobber no_direct_escape no_indirect_escape not_returned_directly not_returned_indirectly no_direct_read no_indirect_read Always executed bbbs (assuming return or EH): 2 - Analyzing call:__builtin_prefetch (p_1(D)); - ECF_CONST | ECF_NOVOPS, ignoring all stores and all loads except for args. Function found to be const: void boost::unordered::detail::foa::prefetch(const void*)/3452 Declaration updated to be const: void boost::unordered::detail::foa::prefetch(const void*)/3452 - modref done with result: tracked. loads: stores: Try dse parm 0 flags: not_returned_directly not_returned_indirectly no_direct_read no_indirect_read void boost::unordered::detail::foa::prefetch (const void * p) { <bb 2> [local count: 1073741824]: __builtin_prefetch (p_1(D)); return; } Maybe that explains it, DEF_GCC_BUILTIN (BUILT_IN_PREFETCH, "prefetch", BT_FN_VOID_CONST_PTR_VAR, ATTR_NOVOPS_LEAF_LIST)