diff options
author | Paul-Antoine Arras <pa@codesourcery.com> | 2022-12-01 15:09:54 +0100 |
---|---|---|
committer | Paul-Antoine Arras <pa@codesourcery.com> | 2022-12-01 15:48:34 +0100 |
commit | e41b243302e9964e642924329826448afb21d28e (patch) | |
tree | ca2b69ac09e216f3689c046b6abd5c0b21c49939 /gcc | |
parent | 798c08ca4bf3681444426093263e9e6746d1c32b (diff) | |
download | gcc-e41b243302e9964e642924329826448afb21d28e.zip gcc-e41b243302e9964e642924329826448afb21d28e.tar.gz gcc-e41b243302e9964e642924329826448afb21d28e.tar.bz2 |
amdgcn: Add preprocessor builtins for every processor type
Provide a specific builtin for each possible value of '-march'.
gcc/ChangeLog:
* config/gcn/gcn-opts.h (TARGET_FIJI): -march=fiji.
(TARGET_VEGA10): -march=gfx900.
(TARGET_VEGA20): -march=gfx906.
(TARGET_GFX908): -march=gfx908.
(TARGET_GFX90a): -march=gfx90a.
* config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Define a builtin that
uniquely maps to '-march'.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/gcn/gcn-opts.h | 6 | ||||
-rw-r--r-- | gcc/config/gcn/gcn.h | 40 |
2 files changed, 32 insertions, 14 deletions
diff --git a/gcc/config/gcn/gcn-opts.h b/gcc/config/gcn/gcn-opts.h index b62dfb4..b54eae7 100644 --- a/gcc/config/gcn/gcn-opts.h +++ b/gcc/config/gcn/gcn-opts.h @@ -27,6 +27,12 @@ enum processor_type PROCESSOR_GFX90a }; +#define TARGET_FIJI (gcn_arch == PROCESSOR_FIJI) +#define TARGET_VEGA10 (gcn_arch == PROCESSOR_VEGA10) +#define TARGET_VEGA20 (gcn_arch == PROCESSOR_VEGA20) +#define TARGET_GFX908 (gcn_arch == PROCESSOR_GFX908) +#define TARGET_GFX90a (gcn_arch == PROCESSOR_GFX90a) + /* Set in gcn_option_override. */ extern enum gcn_isa { ISA_UNKNOWN, diff --git a/gcc/config/gcn/gcn.h b/gcc/config/gcn/gcn.h index 38f7212..1cc5981 100644 --- a/gcc/config/gcn/gcn.h +++ b/gcc/config/gcn/gcn.h @@ -16,20 +16,32 @@ #include "config/gcn/gcn-opts.h" -#define TARGET_CPU_CPP_BUILTINS() \ - do \ - { \ - builtin_define ("__AMDGCN__"); \ - if (TARGET_GCN3) \ - builtin_define ("__GCN3__"); \ - else if (TARGET_GCN5) \ - builtin_define ("__GCN5__"); \ - else if (TARGET_CDNA1) \ - builtin_define ("__CDNA1__"); \ - else if (TARGET_CDNA2) \ - builtin_define ("__CDNA2__"); \ - } \ - while(0) +#define TARGET_CPU_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__AMDGCN__"); \ + if (TARGET_GCN3) \ + builtin_define ("__GCN3__"); \ + else if (TARGET_GCN5) \ + builtin_define ("__GCN5__"); \ + else if (TARGET_CDNA1) \ + builtin_define ("__CDNA1__"); \ + else if (TARGET_CDNA2) \ + builtin_define ("__CDNA2__"); \ + if (TARGET_FIJI) \ + { \ + builtin_define ("__fiji__"); \ + builtin_define ("__gfx803__"); \ + } \ + else if (TARGET_VEGA10) \ + builtin_define ("__gfx900__"); \ + else if (TARGET_VEGA20) \ + builtin_define ("__gfx906__"); \ + else if (TARGET_GFX908) \ + builtin_define ("__gfx908__"); \ + else if (TARGET_GFX90a) \ + builtin_define ("__gfx90a__"); \ + } while (0) /* Support for a compile-time default architecture and tuning. The rules are: |