GCC Bugzilla – Attachment 47014 Details for
Bug 92046
Command line options (that are per-functions) are affecting --params which are global.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
prototype
p (text/plain), 4.18 KB, created by
Richard Biener
on 2019-10-10 12:18:46 UTC
(
hide
)
Description:
prototype
Filename:
MIME Type:
Creator:
Richard Biener
Created:
2019-10-10 12:18:46 UTC
Size:
4.18 KB
patch
obsolete
>Index: gcc/opts.c >=================================================================== >--- gcc/opts.c (revision 276795) >+++ gcc/opts.c (working copy) >@@ -1123,24 +1123,6 @@ finish_options (struct gcc_options *opts > && !opts_set->x_flag_reorder_functions) > opts->x_flag_reorder_functions = 1; > >- /* Tune vectorization related parametees according to cost model. */ >- if (opts->x_flag_vect_cost_model == VECT_COST_MODEL_CHEAP) >- { >- maybe_set_param_value (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS, >- 6, opts->x_param_values, opts_set->x_param_values); >- maybe_set_param_value (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS, >- 0, opts->x_param_values, opts_set->x_param_values); >- maybe_set_param_value (PARAM_VECT_MAX_PEELING_FOR_ALIGNMENT, >- 0, opts->x_param_values, opts_set->x_param_values); >- } >- >- /* Set PARAM_MAX_STORES_TO_SINK to 0 if either vectorization or if-conversion >- is disabled. */ >- if ((!opts->x_flag_tree_loop_vectorize && !opts->x_flag_tree_slp_vectorize) >- || !opts->x_flag_tree_loop_if_convert) >- maybe_set_param_value (PARAM_MAX_STORES_TO_SINK, 0, >- opts->x_param_values, opts_set->x_param_values); >- > /* The -gsplit-dwarf option requires -ggnu-pubnames. */ > if (opts->x_dwarf_split_debug_info) > opts->x_debug_generate_pub_sections = 2; >Index: gcc/tree-vect-data-refs.c >=================================================================== >--- gcc/tree-vect-data-refs.c (revision 276795) >+++ gcc/tree-vect-data-refs.c (working copy) >@@ -2075,6 +2075,8 @@ vect_enhance_data_refs_alignment (loop_v > { > unsigned max_allowed_peel > = PARAM_VALUE (PARAM_VECT_MAX_PEELING_FOR_ALIGNMENT); >+ if (flag_vect_cost_model == VECT_COST_MODEL_CHEAP) >+ max_allowed_peel = 0; > if (max_allowed_peel != (unsigned)-1) > { > unsigned max_peel = npeel; >@@ -2168,15 +2170,16 @@ vect_enhance_data_refs_alignment (loop_v > /* (2) Versioning to force alignment. */ > > /* Try versioning if: >- 1) optimize loop for speed >+ 1) optimize loop for speed and the cost-model is not cheap > 2) there is at least one unsupported misaligned data ref with an unknown > misalignment, and > 3) all misaligned data refs with a known misalignment are supported, and > 4) the number of runtime alignment checks is within reason. */ > >- do_versioning = >- optimize_loop_nest_for_speed_p (loop) >- && (!loop->inner); /* FORNOW */ >+ do_versioning >+ = (optimize_loop_nest_for_speed_p (loop) >+ && !loop->inner /* FORNOW */ >+ && flag_vect_cost_model > VECT_COST_MODEL_CHEAP); > > if (do_versioning) > { >@@ -3641,13 +3644,15 @@ vect_prune_runtime_alias_test_list (loop > dump_printf_loc (MSG_NOTE, vect_location, > "improved number of alias checks from %d to %d\n", > may_alias_ddrs.length (), count); >- if ((int) count > PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS)) >+ unsigned limit = PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS); >+ if (flag_simd_cost_model == VECT_COST_MODEL_CHEAP) >+ limit = default_param_value >+ (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS) * 6 / 10; >+ if (count > limit) > return opt_result::failure_at > (vect_location, >- "number of versioning for alias " >- "run-time tests exceeds %d " >- "(--param vect-max-version-for-alias-checks)\n", >- PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS)); >+ "number of versioning for alias run-time tests exceeds %d " >+ "(--param vect-max-version-for-alias-checks)\n", limit); > > return opt_result::success (); > } >Index: gcc/tree-ssa-phiopt.c >=================================================================== >--- gcc/tree-ssa-phiopt.c (revision 276795) >+++ gcc/tree-ssa-phiopt.c (working copy) >@@ -2467,7 +2467,11 @@ cond_if_else_store_replacement (basic_bl > then_assign, else_assign); > } > >- if (MAX_STORES_TO_SINK == 0) >+ /* If either vectorization or if-conversion is disabled then do >+ not sink any stores. */ >+ if (MAX_STORES_TO_SINK == 0 >+ || (!flag_tree_loop_vectorize && !flag_tree_slp_vectorize) >+ || !flag_tree_loop_if_convert) > return false; > > /* Find data references. */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 92046
: 47014