[OSPP 2025 - 7月月报] GCC-Fortran 的 Function Multi-Versioning 功能实现

35 views
Skip to first unread message

zambar

unread,
Jul 25, 2025, 6:52:29 PMJul 25
to tuna-g...@googlegroups.com
大家好,这里是 ZAMBAR He,下面是我在 TUNA OSPP 2025 的 GCC 项目中的第一次简报:

项目基本信息
  • 项目名称:GCC-Fortran 的 Function Multi-Versioning 功能实现
  • 项目导师:陈泱宇
  • 项目基本要求:1. 基于 GCC master 分支,为 Fortran 语言的 `subroutine` 与 `function` 声明添加 `target` / `target_clones` 的 ATTRIBUTES 支持。2. 将该实现提交给开源上游

项目完成情况与计划

本月主要的成果有:
  1. 针对 `target_clones` 做出了适配,目前在调用 GCC 已有的基础设施的基础上主要修改了 gfortran 的前端解析和中端处理,目前实现支持 C 风格的类似 `TARGET_CLONES("default", "avx512f")` 的语法传递并能正确生成
  2. 本地书写简单测试,验证了 `SUBROUTINE` 和 `FUNCTION` 中的 Resolver 生成和调用行为均有效
  3. 目前由于 ABI 的差异导致某些场景下 Fortran 的函数公共性与 C/C++ 有所出入,带来诸如 Binding 类型和函数汇编名称上的差异,正在核实和尝试与上游沟通
  4. 语法和行为相关 RFC 已经提交到 GCC/Fortran 上游等待上游意见
下个月主要的任务是:
  1. 适配 `target` 的 ATTRIBUTE
  2. 开始着手书写集成 GCC 测试代码
  3. 对 LTO 进行相关的额外测试验证,并且与上游沟通意见和改进语法。



--

Best regards.
贺泽邦, Zebang He
Reply all
Reply to author
Forward
0 new messages