Dear GCC developers,
Hello everyone!
I am a member of the OSPP open source community who is very interested in C
language and GCC development. I am currently adding multi-versioning support to
GFortran. Specifically, I am adding `target` and `target_clones` support at the
function and subroutine level for the Fortran language.
Since Fortran does not support as many attributes as C, my current
multi-parameter implementation of `target_clones` is based on GCC, specifically
the following syntax:
SUBROUTINE calculate(x, y, ans_val)
!GCC$ ATTRIBUTES TARGET_CLONES('default', 'avx', 'avx512f') :: calculate
DOUBLE PRECISION, INTENT(IN) :: x, y
DOUBLE PRECISION, INTENT(OUT) :: ans_val
ans_val = x * y + x / y
END SUBROUTINE calculate
I have implemented multi-string parsing in the frontend following GCC's logic,
and it currently seems works properly. However, I am still writing tests and
refining the details. My questions are:
1. Does the GCC community consider such syntax to have practical value and
necessity for the Fortran language?
2. Are there better or more Fortran-friendly declaration syntax options?
3. What are the upstream expectations for the implementation of this
multi-version feature?
I look forward to hearing everyone's valuable opinions and suggestions. Thank
you!
Zebang HE
[email protected]