大门|大门-CS-2014-(第1组)|问题65

以下哪一项是错误的? (A) 基本块是一系列指令,其中控制在开始时进入序列,在结束时退出。 (B) 可用的表达式分析可用于常见的子表达式消除。 (C) 活变量分析可用于消除死代码。 (D) x=4∗ 5=>x=20是常见子表达式消除的一个例子。 答复: (D) 说明: (A) 基本块是一个指令序列,其中控制在开始时进入序列,在结束时退出是真的。

null

(B) 可用的表达式分析可以用于常见的子表达式消除是真的。可用表达式是一种分析算法,它为程序中的每个点确定不需要重新计算的表达式集。可用表达式分析用于全局公共子表达式消除(CSE)。如果表达式在某一点可用,则无需重新计算。

(C) 活变量分析可以用来消除死代码是真的。

(D) x=4∗ 5=>x=20是常见子表达式消除为假的一个例子。 公共子表达式消除(CSE)指的是编译器优化在值得的情况下,用一个保持计算值的变量替换相同的表达式(即,它们的计算结果都相同)。

下面是一个例子

In the following code:

a = b * c + g;
d = b * c * e;

it may be worth transforming the code to:

tmp = b * c;
a = tmp + g;
d = tmp * e;

资料来源: https://en.wikipedia.org/wiki/Common_subexpression_elimination https://en.wikipedia.org/wiki/Available_expression

这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享