From: ZAMBAR <[email protected]>
Hi all,
I would like to seek feedback on the implementation approach for the
TARGET_CLONES attribute in gfortran, specifically regarding the syntax
for parsing multiple target specifications.
Currently, I have implemented TARGET_CLONES support for Fortran using
a C-style comma-separated argument list within parentheses, following
the same pattern as the C/C++ front ends. The syntax looks like:
!GCC$ ATTRIBUTES TARGET_CLONES("default", "avx", "avx512f") :: function_name
This allows both double and single quoted strings:
!GCC$ ATTRIBUTES TARGET_CLONES('default', 'avx', 'avx512f') :: function_name
The key design question I'd like feedback on is whether this C-style
comma-separated syntax is appropriate for Fortran, or if we should
consider alternative approaches that might be more idiomatic to Fortran.
The current implementation:
- Parses comma-separated quoted string arguments
- Stores the target specifications in the symbol structure
- Integrates with the existing multiple target infrastructure
- Follows the same semantics as C/C++ TARGET_CLONES
I have a working patch (attached) that implements C-like syntax, but before
proceeding further, I wanted to get community input on whether this syntax
feels appropriate for Fortran users, or if there are better alternatives
that would be more consistent with Fortran conventions.
Thanks for your time and feedback.
Best regards,
ZAMBAR
ZAMBAR (1):
feat: gfortran target_clones mversion
gcc/fortran/decl.cc | 116 ++++++++++++++++++++++++++++++++++++++++
gcc/fortran/f95-lang.cc | 34 ++++++++++++
gcc/fortran/gfortran.h | 5 ++
gcc/fortran/symbol.cc | 8 +++
gcc/multiple_target.cc | 9 +++-
5 files changed, 170 insertions(+), 2 deletions(-)
--
2.34.1