refactor(includes): vipersimd c.LLVMIR 改 LOut 模式 + 文档同步新语义
vipersimd.vp 16 处 simd_* 数学 intrinsic 改 c.LLVMIR(f"{c.LOut(out)} = call ...")
+ return out 模式;TestFBProject 2 处同步;c.py stub 与 wiki 文档
更新为"无返回值直接嵌入原始 IR 文本"语义。
This commit is contained in:
1 parent
44ff0d551f
commit
29b18af60c
4 files changed
+64
-29
No files matched your search
+8
-7
@@ -615,13 +615,14 @@ class CUndef:
|
||||
|
||||
|
||||
class LLVMIR:
|
||||
"""内联 LLVM IR
|
||||
|
||||
用法: c.LLVMIR(f"add i32 {c.LInp(a)}, {c.LInp(b)}", t.CInt)
|
||||
或: c.LLVMIR(f"%{c.LOut(result)} = add i32 {c.LInp(a)}, {c.LInp(b)}", t.CInt)
|
||||
|
||||
c.LInp(expr) - 输入操作数,翻译后替换为对应的 LLVM 临时变量名
|
||||
c.LOut(expr) - 输出操作数,翻译后替换为对应的 LLVM 临时变量名
|
||||
"""内联 LLVM IR(无返回值,直接嵌入原始 IR 文本)
|
||||
|
||||
用法: c.LLVMIR(f"add i32 {c.LInp(a)}, {c.LInp(b)}")
|
||||
或: c.LLVMIR(f"{c.LOut(result)} = add i32 {c.LInp(a)}, {c.LInp(b)}")
|
||||
|
||||
c.LInp(expr) - 输入操作数,替换为 expr 的 LLVM 值引用文本(%x 或常量)
|
||||
c.LOut(expr) - 输出操作数:为 expr 变量分配唯一 SSA 寄存器 %llvmirN,
|
||||
模板嵌入后自动追加 store 写回变量 alloca
|
||||
"""
|
||||
def __init__(self, ir_template: Any, ret_type: Any = None) -> None:
|
||||
self.ir_template: Any = ir_template
|
||||
|
||||
Reference in new issue
Block a user