Compilation 什么是;阻抗失配;是指当涉及到mlir时?

Compilation 什么是;阻抗失配;是指当涉及到mlir时?,compilation,llvm,Compilation,Llvm,有人说:是高级编译的强大基础设施,它可以减少每个级别的阻抗失配 复合术语“阻抗失配”在mlir中的确切含义是什么?关于此主题的相关答案如下,这是一个很好的上下文: 编译器工作的一种常见方式(例如在LLVM中)是,它们将有一些定义良好的接口(IRs),允许在该接口内进行优化并完成它们之间的转换。出于各种原因,我将在本文中避免,一个常见的决定是尽可能少地保留IRs,并鼓励每个人向它们编译 减少IRs的决定会导致这样一种情况,即任何优化或概念都无法选择哪个IR来表示主题。让我们以循环为例。LLVM将其

有人说:是高级编译的强大基础设施,它可以减少每个级别的阻抗失配


复合术语“阻抗失配”在mlir中的确切含义是什么?

关于此主题的相关答案如下,这是一个很好的上下文:

编译器工作的一种常见方式(例如在LLVM中)是,它们将有一些定义良好的接口(IRs),允许在该接口内进行优化并完成它们之间的转换。出于各种原因,我将在本文中避免,一个常见的决定是尽可能少地保留IRs,并鼓励每个人向它们编译

减少IRs的决定会导致这样一种情况,即任何优化或概念都无法选择哪个IR来表示主题。让我们以循环为例。LLVM将其表示为较低级别的分支语句。这使得合并/拆分/展开循环变得更加困难,因为您需要了解给定分支序列的原始循环。请注意,这并非不可能;由于“阻抗失配”,调试工作更加繁重

MLIR声称减少阻抗失配是因为,例如,它支持带环路的IRs、带分支的其他IRs和带内存视图的其他IRs。如果有更多的IRs,任何给定主题都更有可能有一个优化简单的IR,而不需要首先从不太合适的IR重建概念信息

MLIR目录中的方言列表,只是为了显示更多表示主题的选项:

旁注:我试图在这里回答相关问题,但您将从这些地方的社区获得更及时的反馈: