x86: Fold arch_names_table into processor_alias_table
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 23 Jun 2020 19:49:32 +0000 (12:49 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 24 Jun 2020 11:14:41 +0000 (04:14 -0700)
commit3fb2c2f4d0a43b96e9e4907db952e57a5cbe61ef
treec15243f3b89fbae134ca777b805ea5b891a0faa3
parent6924b5e6bd3c89e229c52eafb1353bcbe17ab405
x86: Fold arch_names_table into processor_alias_table

In i386-builtins.c, arch_names_table is used to to map architecture name
string to internal model.  A switch statement is used to map internal
processor name to architecture name string and internal priority.

model and priority are added to processor_alias_table so that a single
entry contains architecture name string, internal processor name,
internal model and internal priority.  6 entries are appended for
i386-builtins.c, which have special architecture name strings: amd,
amdfam10h, amdfam15h, amdfam17h, shanghai and istanbul, and pta_size is
adjusted to exclude them.  Entries which are not used by i386-builtins.c
have internal model 0.  P_PROC_DYNAMIC is added to internal priority to
make entries with dynamic architecture name string or priority.

PR target/95842
* common/config/i386/i386-common.c (processor_alias_table): Add
processor model and priority to each entry.
(pta_size): Updated with -6.
(num_arch_names): New.
* common/config/i386/i386-cpuinfo.h: New file.
* config/i386/i386-builtins.c (feature_priority): Removed.
(processor_model): Likewise.
(_arch_names_table): Likewise.
(arch_names_table): Likewise.
(_isa_names_table): Replace P_ZERO with P_NONE.
(get_builtin_code_for_version): Replace P_ZERO with P_NONE.  Use
processor_alias_table.
(fold_builtin_cpu): Replace arch_names_table with
processor_alias_table.
* config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h".
(pta): Add model and priority.
(num_arch_names): New.
gcc/common/config/i386/i386-common.c
gcc/common/config/i386/i386-cpuinfo.h [new file with mode: 0644]
gcc/config/i386/i386-builtins.c
gcc/config/i386/i386.h