Commit 340ef734 by Jan Hubicka Committed by Jan Hubicka

i386-c.c (ix86_target_macros_internal): Update handling of core chips.


	* i386-c.c (ix86_target_macros_internal): Update handling of core
	chips.
	* i386.c (DUMMY_STRINGOP_ALGS): Update
	(*_cost): Update.
	(core_cost): Copy from generic64_cost; fix stringop descriptors.
	(m_CORE2_32, m_CORE2_64, m_COREI7_32, m_COREI7_64, m_CORE2I7_32,
	m_CORE2I7_64): Remove.
	(m_CORE2, m_COREI7, m_CORE2I7): Update.
	(initial_ix86_tune_features): Update.
	(processor_target): Update.
	(ix86_option_override_internal): Update.
	(ix86_option_override_internal): Remove PROCESSOR_CORE2_64,
	PROCESSOR_COREI7_64 special cases.
	(decide_alg): Add noalign parameter; set it.
	(ix86_expand_movmem, ix86_expand_setmem): Update noalign handling.
	(ix86_issue_rate): Update.
	(ia32_multipass_dfa_lookahead): Update.
	(ix86_sched_init_global): Update.
	(get_builtin_code_for_version): Update.
	* i386.h (stringop_strategy): Add noalign flag.
	(TARGET_CORE2_32, TARGET_CORE2_64, TARGET_COREI7_32, TARGET_COREI7_64):
	Remove.
	(TARGET_CORE2, TARGET_COREI7): New.
	(enum processor_type): Remove PROCESSOR_CORE2_32, PROCESSOR_CORE2_64,
	PROCESSOR_COREI7_32, PROCESSOR_COREI7_64; add PROCESSOR_CORE2,
	PROCESSOR_COREI7.

From-SVN: r193761
parent ee88e690
2012-11-23 Jan Hubicka <jh@suse.cz>
* i386-c.c (ix86_target_macros_internal): Update handling of core
chips.
* i386.c (DUMMY_STRINGOP_ALGS): Update
(*_cost): Update.
(core_cost): Copy from generic64_cost; fix stringop descriptors.
(m_CORE2_32, m_CORE2_64, m_COREI7_32, m_COREI7_64, m_CORE2I7_32,
m_CORE2I7_64): Remove.
(m_CORE2, m_COREI7, m_CORE2I7): Update.
(initial_ix86_tune_features): Update.
(processor_target): Update.
(ix86_option_override_internal): Update.
(ix86_option_override_internal): Remove PROCESSOR_CORE2_64,
PROCESSOR_COREI7_64 special cases.
(decide_alg): Add noalign parameter; set it.
(ix86_expand_movmem, ix86_expand_setmem): Update noalign handling.
(ix86_issue_rate): Update.
(ia32_multipass_dfa_lookahead): Update.
(ix86_sched_init_global): Update.
(get_builtin_code_for_version): Update.
* i386.h (stringop_strategy): Add noalign flag.
(TARGET_CORE2_32, TARGET_CORE2_64, TARGET_COREI7_32, TARGET_COREI7_64):
Remove.
(TARGET_CORE2, TARGET_COREI7): New.
(enum processor_type): Remove PROCESSOR_CORE2_32, PROCESSOR_CORE2_64,
PROCESSOR_COREI7_32, PROCESSOR_COREI7_64; add PROCESSOR_CORE2,
PROCESSOR_COREI7.
2012-11-23 Eric Botcazou <ebotcazou@adacore.com> 2012-11-23 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/55388 PR rtl-optimization/55388
...@@ -134,13 +134,11 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag, ...@@ -134,13 +134,11 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
def_or_undef (parse_in, "__nocona"); def_or_undef (parse_in, "__nocona");
def_or_undef (parse_in, "__nocona__"); def_or_undef (parse_in, "__nocona__");
break; break;
case PROCESSOR_CORE2_32: case PROCESSOR_CORE2:
case PROCESSOR_CORE2_64:
def_or_undef (parse_in, "__core2"); def_or_undef (parse_in, "__core2");
def_or_undef (parse_in, "__core2__"); def_or_undef (parse_in, "__core2__");
break; break;
case PROCESSOR_COREI7_32: case PROCESSOR_COREI7:
case PROCESSOR_COREI7_64:
def_or_undef (parse_in, "__corei7"); def_or_undef (parse_in, "__corei7");
def_or_undef (parse_in, "__corei7__"); def_or_undef (parse_in, "__corei7__");
break; break;
...@@ -228,12 +226,10 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag, ...@@ -228,12 +226,10 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
case PROCESSOR_NOCONA: case PROCESSOR_NOCONA:
def_or_undef (parse_in, "__tune_nocona__"); def_or_undef (parse_in, "__tune_nocona__");
break; break;
case PROCESSOR_CORE2_32: case PROCESSOR_CORE2:
case PROCESSOR_CORE2_64:
def_or_undef (parse_in, "__tune_core2__"); def_or_undef (parse_in, "__tune_core2__");
break; break;
case PROCESSOR_COREI7_32: case PROCESSOR_COREI7:
case PROCESSOR_COREI7_64:
def_or_undef (parse_in, "__tune_corei7__"); def_or_undef (parse_in, "__tune_corei7__");
break; break;
case PROCESSOR_ATOM: case PROCESSOR_ATOM:
......
...@@ -101,6 +101,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -101,6 +101,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
known at compile time or estimated via feedback, the SIZE array known at compile time or estimated via feedback, the SIZE array
is walked in order until MAX is greater then the estimate (or -1 is walked in order until MAX is greater then the estimate (or -1
means infinity). Corresponding ALG is used then. means infinity). Corresponding ALG is used then.
When NOALIGN is true the code guaranting the alignment of the memory
block is skipped.
For example initializer: For example initializer:
{{256, loop}, {-1, rep_prefix_4_byte}} {{256, loop}, {-1, rep_prefix_4_byte}}
will use loop for blocks smaller or equal to 256 bytes, rep prefix will will use loop for blocks smaller or equal to 256 bytes, rep prefix will
...@@ -111,6 +114,7 @@ struct stringop_algs ...@@ -111,6 +114,7 @@ struct stringop_algs
const struct stringop_strategy { const struct stringop_strategy {
const int max; const int max;
const enum stringop_alg alg; const enum stringop_alg alg;
int noalign;
} size [MAX_STRINGOP_ALGS]; } size [MAX_STRINGOP_ALGS];
}; };
...@@ -242,12 +246,8 @@ extern const struct processor_costs ix86_size_cost; ...@@ -242,12 +246,8 @@ extern const struct processor_costs ix86_size_cost;
#define TARGET_K8 (ix86_tune == PROCESSOR_K8) #define TARGET_K8 (ix86_tune == PROCESSOR_K8)
#define TARGET_ATHLON_K8 (TARGET_K8 || TARGET_ATHLON) #define TARGET_ATHLON_K8 (TARGET_K8 || TARGET_ATHLON)
#define TARGET_NOCONA (ix86_tune == PROCESSOR_NOCONA) #define TARGET_NOCONA (ix86_tune == PROCESSOR_NOCONA)
#define TARGET_CORE2_32 (ix86_tune == PROCESSOR_CORE2_32) #define TARGET_CORE2 (ix86_tune == PROCESSOR_CORE2)
#define TARGET_CORE2_64 (ix86_tune == PROCESSOR_CORE2_64) #define TARGET_COREI7 (ix86_tune == PROCESSOR_COREI7)
#define TARGET_CORE2 (TARGET_CORE2_32 || TARGET_CORE2_64)
#define TARGET_COREI7_32 (ix86_tune == PROCESSOR_COREI7_32)
#define TARGET_COREI7_64 (ix86_tune == PROCESSOR_COREI7_64)
#define TARGET_COREI7 (TARGET_COREI7_32 || TARGET_COREI7_64)
#define TARGET_GENERIC32 (ix86_tune == PROCESSOR_GENERIC32) #define TARGET_GENERIC32 (ix86_tune == PROCESSOR_GENERIC32)
#define TARGET_GENERIC64 (ix86_tune == PROCESSOR_GENERIC64) #define TARGET_GENERIC64 (ix86_tune == PROCESSOR_GENERIC64)
#define TARGET_GENERIC (TARGET_GENERIC32 || TARGET_GENERIC64) #define TARGET_GENERIC (TARGET_GENERIC32 || TARGET_GENERIC64)
...@@ -2092,10 +2092,8 @@ enum processor_type ...@@ -2092,10 +2092,8 @@ enum processor_type
PROCESSOR_PENTIUM4, PROCESSOR_PENTIUM4,
PROCESSOR_K8, PROCESSOR_K8,
PROCESSOR_NOCONA, PROCESSOR_NOCONA,
PROCESSOR_CORE2_32, PROCESSOR_CORE2,
PROCESSOR_CORE2_64, PROCESSOR_COREI7,
PROCESSOR_COREI7_32,
PROCESSOR_COREI7_64,
PROCESSOR_GENERIC32, PROCESSOR_GENERIC32,
PROCESSOR_GENERIC64, PROCESSOR_GENERIC64,
PROCESSOR_AMDFAM10, PROCESSOR_AMDFAM10,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment