Summer of code proposal: add directive to uniquely identify loops of interest

Dear all,

I would like to propose an average technical project that might have a great use in many parts/derivatives of LLVM, including ours.

Consider you have dozens of regression tests in high-level languages, reporting whether or not the recent changes in compiler are breaking some kind of loop handling (vectorization, parallelization, etc.). Consider you have a post-processing utility, which parses diagnostic output from each test and tries to determine whether particular loop was handled properly.

In lower level, LLVM already has an infrastructure to test if a pass or a backend transforms the given LLVM IR into expected form. Rather than that, this proposal aims to address more high-level scope of use, where developers need to verify the consistency of many parts of compiler pipeline - from frontend to code generation. One natural solution might be to markup loops in high-level language:

#pragma llvm loopname Loop1
for (int i = 0; i < n; i++)
{
    ...
}

and pass this name through the frontend to LLVM IR metadata node or annotation intrinsic attached to the loop header.

In order to support multiple target languages (we are mostly interested in C and Fortran), it is preferred to have GCC frontend support (maybe over plugin and emitting to debug info, rather than to GIMPLE), and then - to parse this additional info at DragonEgg level.

I'm not sure what is the situation with GSoC for LLVM this year. In any case, we at KernelGen would like to support a student effort in implementing this functionality and invite other groups to co-mentor the process.

Dear students, should you have any questions - please do not hesitate to contact me directly. You can also learn more about our work here [1].

[1] https://hpcforge.org/plugins/mediawiki/wiki/kernelgen/index.php/Main_Page

--
Best regards,
- Dmitry Mikushin, on behalf of KernelGen team

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值