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

hezam...@outlook.com

Reply via email to