这次优化删了几条
按模型,优化前 5 条、优化后 3 条,removed 交回几?
贯穿本节的 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(removed([1, 2, 3, 4, 5], [1, 2, 3]))
全部评论