https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97445
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org, | |rguenth at gcc dot gnu.org --- Comment #16 from Martin Liška <marxin at gcc dot gnu.org> --- The following happens: get_order is called by kmalloc_large which is called in kmalloc. And kmalloc calls the function for larger allocations. Problem is that we eliminate all calls to get_order late pipe.i.108t.thread1:;; Function get_order (get_order, funcdef_no=295, decl_uid=4528, cgraph_uid=300, symbol_order=303) pipe.i.108t.thread1:get_order (long unsigned int size) pipe.i.108t.thread1: _125 = get_order (_114); pipe.i.108t.thread1: _67 = get_order (_56); pipe.i.109t.cdce:;; Function get_order (get_order, funcdef_no=295, decl_uid=4396, cgraph_uid=300, symbol_order=303) pipe.i.109t.cdce:get_order (long unsigned int size) so remove_unreachable_nodes is not called any more.