From: Uros Bizjak Date: Thu, 16 May 2013 19:53:36 +0000 (+0200) Subject: re PR target/45359 (poor -march=native choices for VIA C7 Esther processors) X-Git-Tag: releases/gcc-4.9.0~5851 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=19db293ad5760f49869e5c23823598c98a30d0f8;p=thirdparty%2Fgcc.git re PR target/45359 (poor -march=native choices for VIA C7 Esther processors) PR target/45359 PR target/46396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect VIA/Centaur processors and determine their cache parameters using detect_caches_amd. Co-Authored-By: Dzianis Kahanovich From-SVN: r198987 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 574694ce28dc..e3051b73e91f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2013-05-16 Uros Bizjak + Dzianis Kahanovich + + PR target/45359 + PR target/46396 + * config/i386/driver-i386.c (host_detect_local_cpu): Detect + VIA/Centaur processors and determine their cache parameters + using detect_caches_amd. + 2013-05-16 Teresa Johnson * cfgrtl.c (verify_hot_cold_block_grouping): Return err. @@ -111,7 +120,7 @@ 2013-05-15 Uros Bizjak - * config/i386/i386.c (iy86_option_override_internal): Update + * config/i386/i386.c (ix86_option_override_internal): Update processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add PTA_POPCNT to corei7 entry and remove PTA_SSE from athlon-4 entry. Do not enable SSE prefetch on non-SSE 3dNow! targets. Enable diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c index 256cb6a7df26..7a7b357371f5 100644 --- a/gcc/config/i386/driver-i386.c +++ b/gcc/config/i386/driver-i386.c @@ -517,7 +517,8 @@ const char *host_detect_local_cpu (int argc, const char **argv) if (!arch) { - if (vendor == signature_AMD_ebx) + if (vendor == signature_AMD_ebx + || vendor == signature_CENTAUR_ebx) cache = detect_caches_amd (ext_level); else if (vendor == signature_INTEL_ebx) { @@ -560,6 +561,32 @@ const char *host_detect_local_cpu (int argc, const char **argv) else processor = PROCESSOR_PENTIUM; } + else if (vendor == signature_CENTAUR_ebx) + { + if (arch) + { + if (family == 6) + { + if (model > 9) + /* Use the default detection procedure. */ + processor = PROCESSOR_GENERIC32; + else if (model == 9) + cpu = "c3-2"; + else if (model >= 6) + cpu = "c3"; + else + /* We have no idea. */ + processor = PROCESSOR_GENERIC32; + } + else if (has_3dnow) + cpu = "winchip2"; + else if (has_mmx) + cpu = "winchip2-c6"; + else + /* We have no idea. */ + processor = PROCESSOR_GENERIC32; + } + } else { switch (family)