https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96565
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I'd say that the VLAs are more like "malloc" with the stack restore than performing one or more "free" conceptually, so perhaps we should instead emit calls to free-like internal function .FREE_VLA (ptr); right before the __builtin_stack_restore for the VLAs freed at that point, and handle the __builtin_alloca_with_align and .FREE_VLA pairs like we treat malloc/free in tree DSE, and then throw away those ifn calls at some point.