当前位置:网站首页>side effect of intrinsics
side effect of intrinsics
2022-07-21 15:10:00 【春江花月夜晨】
definition : http://llvm-cs.pcc.me.uk/include/llvm/IR/Intrinsics.td
class IntrinsicProperty;
// Intr*Mem - Memory properties. If no property is set, the worst case is assumed (it may read and write any memory it can get access to and it may have other side effects).
// IntrNoMem - The intrinsic does not access memory or have any other side effects. It may be CSE’d deleted if dead, etc.
def IntrNoMem : IntrinsicProperty;
// IntrReadMem - This intrinsic only reads from memory. It does not write to memory and has no other side effects. Therefore, it cannot be moved across potentially aliasing stores. However, it can be reordered otherwise and can be deleted if dead.
def IntrReadMem : IntrinsicProperty;
// IntrWriteMem - This intrinsic only writes to memory, but does not read from memory, and has no other side effects. This means dead stores before calls to this intrinsics may be removed.
def IntrWriteMem : IntrinsicProperty;
// IntrArgMemOnly - This intrinsic only accesses memory that its pointer-typed argument(s) points to, but may access an unspecified amount. Other than reads from and (possibly volatile) writes to memory, it has no side effects.
def IntrArgMemOnly : IntrinsicProperty;
// NoAlias - The specified argument pointer is not aliasing other “noalias” pointer arguments of the intrinsic wrt. the intrinsic scope.
class NoAlias : IntrinsicProperty {
int ArgNo = argNo;
}
// Returned - The specified argument is always the return value of the intrinsic.
class Returned : IntrinsicProperty {
int ArgNo = argNo;
}
def IntrNoReturn : IntrinsicProperty;
def int_vclr_vacc : Intrinsic<[llvm_v8192i1_ty], [], [IntrNoMem], "llvm.vclr.vacc">;
def int_mbarrier : Intrinsic<[], [], [IntrHasSideEffects], "llvm.mbarrier">;
// vector load/store
def int_vld : Intrinsic<[llvm_v1024i1_ty], [llvm_anyptr_ty], [IntrReadMem, IntrArgMemOnly], "llvm.vld">;
def int_vstl : Intrinsic<[], [llvm_v1024i1_ty, llvm_anyptr_ty, llvm_i32_ty], [IntrWriteMem, IntrArgMemOnly], "llvm.vstl">;
边栏推荐
猜你喜欢
随机推荐
709. 转换成小写字母
AT&T伪指令 以及对于CFI CFA的解释
观察者模式与发布/订阅模式
EMQ映云科技荣登《中国企业家》2022年度“新锐100”榜单
华为麒麟985三季度量产:台积电7nm EUV工艺,集成5G基带!
2022.7.19 simulation match
EF数据迁移
1309. 解码字母到整数映射
地理卫星数据下载
模板方法模式
How can elastic group by intercepting the values of fields?
正则表达式
想要制作沙盒游戏?那么这一款插件你一定不能错过(Unity3D)
缓存穿透、缓存击穿、缓存雪崩区别和解决方案[通俗易懂]
Splay补完计划
跨服器,插入,查寻
剑指offer - 从上到下打印二叉树 - (队列 结构体)
EF结合SqlBulkCopy批量插入数据
容器与容器 & 容器与主机 - 通过ssh协议互联(多节点、跨主机)
Sword finger offer 17 Print from 1 to the maximum n digits (large number problem)