https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96565
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- Actually, it isn't so much the alloca call itself, it seems to be __builtin_stack_save / __builtin_stack_restore that prevent DSE from removing arr[0] = 0 (without that write, DCE can remove __builtin_alloca_with_align, and __builtin_stack_* disappear in FAB).