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

25 views
Skip to first unread message

ZAMBAR

unread,
Sep 1, 2025, 12:00:56 PMSep 1
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` 的其它问题,ABI 造成的部分差异符合预期行为。
  2. 完成了 `target` 的最初版本,行为符合 C 预期。但相比 C++ 中,缺少支持同名函数指定 `target` 后可以自动创建 dispatcher 并且实现 fallback 的核心功能。这是由于 Fortran 在前端就直接对符号进行了重复检查导致的。
  3. 写了相关的简单测试用来保证 `target_clones` 和 `target` 的部分基本行为。
下个月主要的任务是:
  1. 对 LTO 进行相关的额外测试验证进行补充并集成到 GCC。
  2. 尝试对 Fortran 的前端分析进行延迟或者特判,保证 target 的 fallback 语义能正常执行。
  3. 分析现有的 OpenMP 等实现,探究 Fortran 下更好的语义/行为,尝试再次和上游沟通。


--
Best regards.
贺泽邦, Zebang He

Reply all
Reply to author
Forward
0 new messages