https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108500
--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> --- To not look at "nothing" (after successful SRA it should indeed become almost nothing) I've added a store to a volatile 'x' global variable to the end of main: ... s2 = f(s1,s2); x = s2; return 0; } not using main but a function returning a struct would probably work as well. Otherwise DCE/DSE will remove all code. Doing that reveals that RTL DSE (more specifically rtx_equal_for_cselib_1) is very slow (via dse_step1 calling cselib_process_insn). I do wonder if you can share the "real" testcase? It doesn't need to be able to link, preprocessed source would be enough.