sim*_*ser 4 llvm clang llvm-clang
我想知道哪些llvm IR语句对应于clang中特定pragma中的代码.我的pragma具有以下结构.
#pragma markme
{
stmt1;
stmt2;
}
Run Code Online (Sandbox Code Playgroud)
我需要知道在标记me pragma的开口括号和闭合括号之间存在哪些所有stmts.
我们可以为这些stmts附加一些元数据吗?如果是,任何人都可以指点我一些参考.
我在Google上搜索过并找到了这个
添加一个pragma处理程序,它在actions接口上有一个回调.添加回调的sema实现,它在Sema对象中设置一些内部位.在'for'语句中添加一个新位,以指定它是否具有#pragma optimize set.修改codegin以根据该位发出元数据.
任何人都可以提供更多细节.
我正在使用最新的llvm(llvm 3.4)
注意:任何方向的任何帮助表示赞赏.我知道llvm可能会进行优化以改变陈述.但这对我没问题
请注意,这必须在知道的Clang中完成#pragma.LLVM本身对它们一无所知 - #pragma不属于LLVM IR.
在Clang的lib/CodeGen目录中有很多生成元数据的例子.这一切都取决于你希望这个元数据出现在哪里 - 在说明书上?关于功能?
用于将元数据附加到指令查找setMetadata.例如,在lib/CodeGen/CGExpr.cpp某些分析元数据附加到分支.有关放置模块级元数据的信息,请参阅lib/CodeGen/CodeGenModule.cpp.
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |