diff options
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r-- | gcc/regmove.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c index 7de8d0d5b98..e25dbec7fe9 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -1117,7 +1117,8 @@ regmove_optimize (rtx f, int nregs) for (pass = 0; pass <= 2; pass++) { - if (! flag_regmove && pass >= flag_expensive_optimizations) + /* We need fewer optimizations for IRA. */ + if ((! flag_regmove || flag_ira) && pass >= flag_expensive_optimizations) goto done; if (dump_file) @@ -1165,7 +1166,9 @@ regmove_optimize (rtx f, int nregs) } } } - if (! flag_regmove) + + /* All optimizations important for IRA have been done. */ + if (! flag_regmove || flag_ira) continue; if (! find_matches (insn, &match)) |