我正在研究编译器优化中的Meet over all path(MOP)和Maximum Fixed Point(MFP)之间的比较。据说MFP是MOP的子集。但我无法找到MFP和MOP不同的示例。任何人都可以帮助我解决MFP和MOP提供不同结果的任何示例程序。
答案 0 :(得分:1)
单调数据流分析框架中有这样一个例子"由Kam和Ullman refer this撰写。
示例程序
if(<some codition>) {
A = 2;
B = 3;
}
else {
A = 3;
B = 2;
}
C=A+B;
如果我们考虑上述程序的常数传播分析,变量C在每种情况下都是常数。如果5
条件的计算结果为true或false,则该值为if statement
。但是,如果我们对上述程序进行定点分析,C
将永远不会被视为常数,而MOP分析将提供C
为常数的信息。