https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109179
--- Comment #18 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #16) > Can't you move all the tests that don't need id or static_id (all but one) > before the > lra_insn_recog_data_t id = lra_get_insn_recog_data (to); > struct lra_static_insn_data *static_id = id->insn_static_data; > instead? > Ok, single_set is also a call, so maybe keep that one too? > > I know, microoptimizations... Looking at lra_get_insn_recog_data() versus the common case for single_set(), I think moving the single_set() call earlier is fine too, and it simplifies the final code with just the one early out tests rather than splitting them up.