diff options
Diffstat (limited to 'gcc/opts.c')
-rw-r--r-- | gcc/opts.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/opts.c b/gcc/opts.c index 1de217eb3af..badc0a1a6cd 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -878,6 +878,11 @@ decode_options (unsigned int argc, const char **argv) flag_section_anchors = 0; } +#ifdef IRA_COVER_CLASSES + /* Use IRA if it is implemented for the target. */ + flag_ira = 1; +#endif + /* Originally we just set the variables if a particular optimization level, but with the advent of being able to change the optimization level for a function, we need to reset optimizations. */ @@ -1119,6 +1124,14 @@ decode_options (unsigned int argc, const char **argv) flag_reorder_blocks = 1; } +#ifndef IRA_COVER_CLASSES + if (flag_ira) + { + inform ("-fira does not work on this architecture"); + flag_ira = 0; + } +#endif + /* Save the current optimization options if this is the first call. */ if (first_time_p) { @@ -1970,6 +1983,21 @@ common_handle_option (size_t scode, const char *arg, int value, warning (0, "unknown tls-model \"%s\"", arg); break; + case OPT_fira_algorithm_: + if (!strcmp (arg, "regional")) + flag_ira_algorithm = IRA_ALGORITHM_REGIONAL; + else if (!strcmp (arg, "CB")) + flag_ira_algorithm = IRA_ALGORITHM_CB; + else if (!strcmp (arg, "mixed")) + flag_ira_algorithm = IRA_ALGORITHM_MIXED; + else + warning (0, "unknown ira algorithm \"%s\"", arg); + break; + + case OPT_fira_verbose_: + flag_ira_verbose = value; + break; + case OPT_ftracer: flag_tracer_set = true; break; |