aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2012-06-13 17:46:59 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2012-06-13 10:46:59 -0700
commit054121a40887206a4ecc0646fa645a6a94e3d2f9 (patch)
tree7dfe9b0a4c5b9a0c2dc11c4484d285d8ec80f700
parent4a1721561c22452e9e74c0cd2bb8c7f362d208ab (diff)
downloadgcc-054121a40887206a4ecc0646fa645a6a94e3d2f9.zip
gcc-054121a40887206a4ecc0646fa645a6a94e3d2f9.tar.gz
gcc-054121a40887206a4ecc0646fa645a6a94e3d2f9.tar.bz2
Set cache values from -mtune
PR target/53647 * config/i386/i386.c (ix86_tune_cost): New variable. (ix86_option_override_internal): Set ix86_tune_cost. Use ix86_tune_cost for simultaneous_prefetches, prefetch_block, l1_cache_size and l2_cache_size. From-SVN: r188523
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/i386.c18
2 files changed, 21 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 094c25b..43e5323 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2012-06-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/53647
+ * config/i386/i386.c (ix86_tune_cost): New variable.
+ (ix86_option_override_internal): Set ix86_tune_cost. Use
+ ix86_tune_cost for simultaneous_prefetches, prefetch_block,
+ l1_cache_size and l2_cache_size.
+
2012-06-13 Richard Guenther <rguenther@suse.de>
* tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index d10bf16..e2f5740 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1874,6 +1874,10 @@ struct processor_costs generic32_cost = {
1, /* cond_not_taken_branch_cost. */
};
+/* Set by -mtune. */
+const struct processor_costs *ix86_tune_cost = &pentium_cost;
+
+/* Set by -mtune or -Os. */
const struct processor_costs *ix86_cost = &pentium_cost;
/* Processor feature/optimization bitmasks. */
@@ -3546,10 +3550,11 @@ ix86_option_override_internal (bool main_args_p)
flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
}
+ ix86_tune_cost = processor_target_table[ix86_tune].cost;
if (optimize_size)
ix86_cost = &ix86_size_cost;
else
- ix86_cost = processor_target_table[ix86_tune].cost;
+ ix86_cost = ix86_tune_cost;
/* Arrange to set up i386_stack_locals for all functions. */
init_machine_status = ix86_init_machine_status;
@@ -3794,16 +3799,19 @@ ix86_option_override_internal (bool main_args_p)
flag_schedule_insns_after_reload = flag_schedule_insns = 0;
maybe_set_param_value (PARAM_SIMULTANEOUS_PREFETCHES,
- ix86_cost->simultaneous_prefetches,
+ ix86_tune_cost->simultaneous_prefetches,
global_options.x_param_values,
global_options_set.x_param_values);
- maybe_set_param_value (PARAM_L1_CACHE_LINE_SIZE, ix86_cost->prefetch_block,
+ maybe_set_param_value (PARAM_L1_CACHE_LINE_SIZE,
+ ix86_tune_cost->prefetch_block,
global_options.x_param_values,
global_options_set.x_param_values);
- maybe_set_param_value (PARAM_L1_CACHE_SIZE, ix86_cost->l1_cache_size,
+ maybe_set_param_value (PARAM_L1_CACHE_SIZE,
+ ix86_tune_cost->l1_cache_size,
global_options.x_param_values,
global_options_set.x_param_values);
- maybe_set_param_value (PARAM_L2_CACHE_SIZE, ix86_cost->l2_cache_size,
+ maybe_set_param_value (PARAM_L2_CACHE_SIZE,
+ ix86_tune_cost->l2_cache_size,
global_options.x_param_values,
global_options_set.x_param_values);