对于编译人员来说这是一个非常简单的问题,但我总是对超级块和超级块感到困惑。我已经看到了超级块和超级块的定义,但我想从编译器的角度来了解它们的定义。
我熟悉基本块,谓词执行和循环展开等概念,因此您可以跳过基本内容。
谢谢!
答案 0 :(得分:4)
这个paper描述了超级块的概念以及超级块是什么。简而言之,这个想法是在基本块中增加ILP,因为基本块中的ILP可能不够高。超级块是没有侧入口的痕迹。控制只能从顶部进入,但可能会离开一个或多个出口点。所以单一条目在顶部,但多个退出。我们使用配置文件信息从包含多个基本块的公共路径构建超级块。然后我们应用超级块优化。请查看论文以获取更多信息。
如果我们没有单一的公共路径,并且我们有预测支持,我们可以组合多个公共路径来制作hyberblock并对超级块进行优化。