张总你这玩意咋推的

Substitution.cpp#L505

Implementation of a = a ~ b => a = (!a && b) || (a && !b)

我猜你想表达

Implementation of a = a ^ b => a = (~a & b) | (a & ~b)

忘了,大概是ollvm自己的规则?开源版我没怎么改sub

原版注释有误…

另外, 私有版光对结构体或者结构体数组有什么黑科技吗

你猜 字数布丁字数布丁字数布丁字数布丁字数布丁

那多半是没有 紫薯补丁紫薯补丁紫薯补丁紫薯补丁紫薯补丁

这里还有一篇, 好像很厉害,

网络首发时间:2021-07-09 13:37:53

针对虚拟机框架不同模块连接之间的强固定性,提出一种基于图变换的虚拟机保护增强方法。首先将虚拟机结构框图转换为有向完全图,然后运用多重等价变换策略对完全图中节点模块进行等价变形,最后运用多样化虚拟机对不同节点模块进行嵌套保护。采用了混沌不透明谓词,跳转表和指令等价规则等关键技术实现了原型系统,通过实验验证了系统的可行性和方法的有效性。

ACM里这玩意是给量子计算机用的

啥黑科技,加密吗?

谁知道呢 反正是私有版 说啥都可以 :laughing: :thinking:

现在是回到大二重新读书时间,我来补个数电真值表的课
异或的真值表长这样, a和b是输入,c是输出。
a b c
0 0 0
1 1 0
0 1 1
1 0 1
把所有c = 1的行找出来,也就是后两行写个逻辑表达式出来
c = (~a)*b + a*(~b)
也就是楼主问题里的表达式。
| => 逻辑或
+ => 逻辑和
~ => 逻辑取反

好像在最后一段写的不太对,我给删了。。

逻辑和是什么

就是and啊 &

确实,反正现在也没法拿出来给别人用

那逻辑与是什么 :thinking:

冷知识。 IRBuilder有 CreateLogicalAnd跟CreateAnd

1 Like

哈哈哈,才反应过来。我改。知识已经学杂了,

math
:thinking:想用数学不等式来做不透明谓词, 不知效果咋样, 有啥建议吗

我感觉除法不是特别稳妥吧,编译器看到的都是整形,他自己又不会通分和约分。最极端的例子a1,a2,a3都是0,直接除0异常了。

尝试点这种。

来个链接

不能说的太细,总之基于少量规则的都无法逃脱模式匹配