这次优化变小了吗
按模型,前后都是 2 条,shrank 交回什么?
贯穿本节的 IR 模型(判题机没 gcc,这是它的确定模型):程序是三地址码元组列表,每条 (dst, op, a, b)——op ∈ const/copy/+/-/*,操作数 a/b 是整数(常量)或字符串(变量名)。
度量:size 指令条数,removed(before, after)=前减后,shrank=优化后是否更小。
def size(prog):
"""程序有几条指令。"""
return len(prog)
def removed(before, after):
"""优化掉了几条(前 - 后)。"""
return len(before) - len(after)
def shrank(before, after):
"""优化后是不是变小了。"""
return len(after) < len(before)
print(shrank([1, 2], [1, 2]))
全部评论