https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83758
--- Comment #11 from acsawdey at gcc dot gnu.org --- It appears that -O1 -fexpensive-optimizations is the minimal optimization to trigger this fail. And of what -fexpensive-optimizations turns on, this piece in ira-costs.s (find_costs_and_classes) appears to cause the fail: /* Normally we scan the insns once and determine the best class to use for each allocno. However, if -fexpensive-optimizations are on, we do so twice, the second time using the tentative best classes to guide the selection. */ for (pass = start; pass <= flag_expensive_optimizations; pass++) { If I replace flag_expensive_optimizations with false here, then -O1 -fexpensive-optimizations does not fail the compile command I posted earlier. However -O2 does still fail.