如何在LLVM中添加自定义内在函数?

时间:2017-06-21 08:24:52

标签: llvm llvm-ir

我是LLVM的新手。我通过在 include / llvm / IR / 中创建 IntrinsicsFoo.td 添加了自定义内在 foo_sqrt 。然后,我构建了整个llvm项目,并成功添加了内部 foo foo_sqrt 已添加到 Intrinsic 命名空间)。但我无法弄清楚如何为它添加伪指令,以便 Intrinsic :: getDeclaration()函数在我的传递中起作用。如果我希望我的内在 foo 计算浮点数的平方根,我应该在哪里添加这条指令?我在互联网上搜索了很多,找不到具体的东西。 以下是td文件的内容:

let TargetPrefix = "foo" in { // All intrinsics start with "llvm.foo."
def int_foo_sqrt : GCCBuiltin<"__builtin_foo_sqrt">,
                    Intrinsic<[llvm_anyfloat_ty], [llvm_anyfloat_ty],
                              [IntrNoMem]>;
} // end TargetPrefix

0 个答案:

没有答案