patchGNU Autoconf Archive - Patches: patch #8514, AX_GCC_ARCHFLAG: rewrite x86...

 
 

patch #8514: AX_GCC_ARCHFLAG: rewrite x86 support

Submitter:  Tsukasa OI <a4lg>
Submitted:  Fri 15 Aug 2014 09:41:46 AM UTC
   
 
Priority:  5 - Normal Status:  Done
Assigned to:  simons Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Wed 15 Oct 2014 09:05:10 AM UTC, comment #5: 

I pushed your patch in commit d061ba9. Thank you very much for the update!

Peter Simons <simons>
Group administrator
Tue 19 Aug 2014 07:36:40 AM UTC, comment #4: 

Shame on me!
I have to post a new patch because an AMD Bulldozer identification pattern was wrong.

(file #31917)

Tsukasa OI <a4lg>
Tue 19 Aug 2014 07:28:12 AM UTC, comment #3: 

I posted file #31916 to fix issues (found on previous two versions).

  • I used wrong pattern for Bay Trail, a Silvermont-based processor family (IS model 37h but was model 35h).
  • I forgot to add AMD NPT processors (K8-based).


Now I have tested all patterns found in <http://users.atw.hu/instlatx64/> and looks fine.

Tsukasa OI <a4lg>
Tue 19 Aug 2014 02:32:22 AM UTC, comment #2: 

I posted an article (memo) containing detailed data and script used to rewrite this macro at <http://a4lg.com/memo/2014-08-16/ax_gcc_archflag-x86-rewrite-details.html>.

Tsukasa OI <a4lg>
Fri 15 Aug 2014 11:50:19 PM UTC, comment #1: 

I posted file #31908 for minor fix (Intel EP80579 identification pattern was placed in the wrong place).

Tsukasa OI <a4lg>
Fri 15 Aug 2014 09:41:46 AM UTC, original submission:  

`case' patterns and CPUID identification patterns on AX_GCC_ARCHFLAG are quite old and not robust enough to support future processors.
I decided to rewrite x86 support to make them robust. I used a Python script to generate robust patterns and verified all processor identification patterns are "genuine".

Originally, I planned to submit this patch by multiple patches (to do the separate "change" one by one) but I found several fixes have cross dependencies and "intermediate" versions of macro were nearly unusable (partially because of "incomplete" fixes and partially because of known issue on Clang). If this is inappropriate, please comment that.

Anyway, this patch includes several kinds of fixes and additions.
There are following changes.

[CPUID ROBUSTNESS]

  • Rewritten CPUID identification (constructed by a script).
  • Check EDX/ECX (not only EBX) on vendor identification.


[SIMPLIFICATION]

  • Simplify some Intel/AMD processor support (because most compilers merge support for same/similar microarchitecture, even if they have different brand names).


[BUG FIXES (except possible issues fixed in CPUID ROBUSTNESS section)]

  • Fix 64-bit FreeBSD support.
  • Fix support for AMD K6-2+/K6-III+ (because they are K6-3 based, not K6-2 based)
  • Fix support for AMD family 11h (some mobile processors based on K8 but misunderstood as amdfam10)


[PROCESSOR SUPPORT]

  • Make all CPUID patterns "evidence-based" (to never mix fallbacks and actual processors)
  • Remove all CPU support which existence of processor could not be confirmed by official documents.
  • Add AMD Piledriver/Steamroller/Jaguar support
  • Add Intel Atom (Bonnell/Silvermont) support
  • Add Intel Ivy Bridge/Haswell/Broadwell support
  • Add support for some Centaur-based processors (some Cyrix III models, some WinChip models, some VIA C3 models, VIA C7 and later)


[COMPILER SUPPORT]

  • Add further compiler support for GCC 4.9/LLVM Clang.


[KNOWN ISSUE]
Clang does not fail if -mtune=[UNKNOWN_PROCESSOR] and/or -mcpu=[UNKNOWN_PROCESSOR] are specified. We need to fix Clang support later (by change order of option checking).

Tsukasa OI <a4lg>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #31917:  0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch added by a4lg (8KiB - application/octet-stream - version 4 : Fix AMD Bulldozer model number)
file #31916:  0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch added by a4lg (8KiB - application/octet-stream - version 3 : fix Silvermont (Bay Trail) processors and AMD K8 (add NPT processors missing in version 2))
file #31908:  0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch added by a4lg (8KiB - application/octet-stream)
file #31903:  0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch added by a4lg (8KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by simons (Posted a comment)
  • -email is unavailable- added by simons
  • -email is unavailable- added by a4lg (Submitted the item)
  •  

    Follow 10 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2014-10-16 simons StatusReady For Test Done
        Open/ClosedOpen Closed
    2014-10-15 simons StatusIn Progress Ready For Test
    2014-10-15 simons StatusNone In Progress
        Assigned toNone simons
        Carbon-Copy- Added steven g. johnson <stevenj@alum.mit.edu>
    2014-08-19 a4lg Attached File- Added 0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch, #31917
    2014-08-19 a4lg Attached File- Added 0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch, #31916
    2014-08-15 a4lg Attached File- Added 0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch, #31908
    2014-08-15 a4lg Attached File- Added 0001-AX_GCC_ARCHFLAG-rewrite-x86-support.patch, #31903

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code