diff options
author | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-22 17:43:43 -0300 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-22 17:43:43 -0300 |
commit | a926878ddbd5a98b272c22171ce58663fc04c3e0 (patch) | |
tree | 86af256e5d9a9c06263c00adc90e5fe348008c43 /gcc/opts.c | |
parent | 542730f087133690b47e036dfd43eb0db8a650ce (diff) | |
parent | 07cbaed8ba7d1b6e4ab3a9f44175502a4e1ecdb1 (diff) | |
download | gcc-devel/autopar_devel.zip gcc-devel/autopar_devel.tar.gz gcc-devel/autopar_devel.tar.bz2 |
Merge branch 'autopar_rebase2' into autopar_develdevel/autopar_devel
Quickly commit changes in the rebase branch.
Diffstat (limited to 'gcc/opts.c')
-rw-r--r-- | gcc/opts.c | 133 |
1 files changed, 53 insertions, 80 deletions
@@ -845,30 +845,6 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set, /* We have a DUMP_DIR_NAME, prepend that. */ opts->x_dump_base_name = opts_concat (opts->x_dump_dir_name, opts->x_dump_base_name, NULL); - else if (opts->x_aux_base_name - && strcmp (opts->x_aux_base_name, HOST_BIT_BUCKET) != 0) - /* AUX_BASE_NAME is set and is not the bit bucket. If it - contains a directory component, prepend those directories. - Typically this places things in the same directory as the - object file. */ - { - const char *aux_base; - - base_of_path (opts->x_aux_base_name, &aux_base); - if (opts->x_aux_base_name != aux_base) - { - int dir_len = aux_base - opts->x_aux_base_name; - char *new_dump_base_name - = XOBNEWVEC (&opts_obstack, char, - strlen (opts->x_dump_base_name) + dir_len + 1); - - /* Copy directory component from OPTS->X_AUX_BASE_NAME. */ - memcpy (new_dump_base_name, opts->x_aux_base_name, dir_len); - /* Append existing OPTS->X_DUMP_BASE_NAME. */ - strcpy (new_dump_base_name + dir_len, opts->x_dump_base_name); - opts->x_dump_base_name = new_dump_base_name; - } - } /* It is definitely prefixed now. */ opts->x_dump_base_name_prefixed = true; @@ -1166,11 +1142,21 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set, /* Control IPA optimizations based on different -flive-patching level. */ if (opts->x_flag_live_patching) - { - control_options_for_live_patching (opts, opts_set, - opts->x_flag_live_patching, - loc); - } + control_options_for_live_patching (opts, opts_set, + opts->x_flag_live_patching, + loc); + + /* Unrolling all loops implies that standard loop unrolling must also + be done. */ + if (opts->x_flag_unroll_all_loops) + opts->x_flag_unroll_loops = 1; + + /* Allow cunroll to grow size accordingly. */ + if (!opts_set->x_flag_cunroll_grow_size) + opts->x_flag_cunroll_grow_size + = (opts->x_flag_unroll_loops + || opts->x_flag_peel_loops + || opts->x_optimize >= 3); } #define LEFT_COLUMN 27 @@ -2028,13 +2014,21 @@ parse_and_check_align_values (const char *flag, } /* Check that alignment value FLAG for -falign-NAME is valid at a given - location LOC. */ + location LOC. OPT_STR points to the stored -falign-NAME=argument and + OPT_FLAG points to the associated -falign-NAME on/off flag. */ static void -check_alignment_argument (location_t loc, const char *flag, const char *name) +check_alignment_argument (location_t loc, const char *flag, const char *name, + int *opt_flag, const char **opt_str) { auto_vec<unsigned> align_result; parse_and_check_align_values (flag, name, align_result, true, loc); + + if (align_result.length() >= 1 && align_result[0] == 0) + { + *opt_flag = 1; + *opt_str = NULL; + } } /* Print help when OPT__help_ is set. */ @@ -2346,17 +2340,6 @@ common_handle_option (struct gcc_options *opts, opts->x_flag_gen_aux_info = 1; break; - case OPT_auxbase_strip: - { - char *tmp = xstrdup (arg); - strip_off_ending (tmp, strlen (tmp)); - if (tmp[0]) - opts->x_aux_base_name = tmp; - else - free (tmp); - } - break; - case OPT_d: decode_d_option (arg, opts, loc, dc); break; @@ -2439,6 +2422,14 @@ common_handle_option (struct gcc_options *opts, dc->parseable_fixits_p = value; break; + case OPT_fdiagnostics_column_unit_: + dc->column_unit = (enum diagnostics_column_unit)value; + break; + + case OPT_fdiagnostics_column_origin_: + dc->column_origin = value; + break; + case OPT_fdiagnostics_show_cwe: dc->show_cwe = value; break; @@ -2503,35 +2494,8 @@ common_handle_option (struct gcc_options *opts, break; case OPT_foffload_: - { - const char *p = arg; - opts->x_flag_disable_hsa = true; - while (*p != 0) - { - const char *comma = strchr (p, ','); - - if ((strncmp (p, "disable", 7) == 0) - && (p[7] == ',' || p[7] == '\0')) - { - opts->x_flag_disable_hsa = true; - break; - } - - if ((strncmp (p, "hsa", 3) == 0) - && (p[3] == ',' || p[3] == '\0')) - { -#ifdef ENABLE_HSA - opts->x_flag_disable_hsa = false; -#else - sorry ("HSA has not been enabled during configuration"); -#endif - } - if (!comma) - break; - p = comma + 1; - } - break; - } + /* Deferred. */ + break; #ifndef ACCEL_COMPILER case OPT_foffload_abi_: @@ -2723,11 +2687,6 @@ common_handle_option (struct gcc_options *opts, set_debug_level (DWARF2_DEBUG, false, "", opts, opts_set, loc); break; - case OPT_gsplit_dwarf: - set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, "", opts, opts_set, - loc); - break; - case OPT_ggdb: set_debug_level (NO_DEBUG, 2, arg, opts, opts_set, loc); break; @@ -2812,19 +2771,33 @@ common_handle_option (struct gcc_options *opts, break; case OPT_falign_loops_: - check_alignment_argument (loc, arg, "loops"); + check_alignment_argument (loc, arg, "loops", + &opts->x_flag_align_loops, + &opts->x_str_align_loops); break; case OPT_falign_jumps_: - check_alignment_argument (loc, arg, "jumps"); + check_alignment_argument (loc, arg, "jumps", + &opts->x_flag_align_jumps, + &opts->x_str_align_jumps); break; case OPT_falign_labels_: - check_alignment_argument (loc, arg, "labels"); + check_alignment_argument (loc, arg, "labels", + &opts->x_flag_align_labels, + &opts->x_str_align_labels); break; case OPT_falign_functions_: - check_alignment_argument (loc, arg, "functions"); + check_alignment_argument (loc, arg, "functions", + &opts->x_flag_align_functions, + &opts->x_str_align_functions); + break; + + case OPT_ftabstop_: + /* It is documented that we silently ignore silly values. */ + if (value >= 1 && value <= 100) + dc->tabstop = value; break; default: |