http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57811
Bug ID: 57811 Summary: Waste work in find_reloads() Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: pchang9 at cs dot wisc.edu CC: nistor1 at illinois dot edu The problem appears in revision 200588 in version 4.9. In method "find_reloads()" in gcc/reload.c, the loop on line 3324 should break immediately after "badop" is set to "1". All the iterations after "badop" set to "1" do not perform any useful work, at best they just set "badop" again to "1". Similar problem also appears in the same method "find_reloads()" in line 4641. The loop should break immediately after "ok" is set to "0".