There is an increasing need for domain-specific reasoning in modern compilers. This has fueled the use of tailored intermediate representations (IRs) based on static single assignment (SSA), like in the MLIR compiler framework. Interactive theorem provers (ITPs) provide strong guarantees for the end-to-end verification of compilers (e.g., CompCert). However, modern compilers and their IRs evolve at a rate that makes proof engineering alongside them prohibitively expensive. Nevertheless, well-scoped push-button automated verification tools such as the Alive peephole verifier for LLVM-IR gained recognition in domains where SMT solvers offer efficient (semi) decision procedures. In this paper, we aim to combine the convenience of automation with the versatility of ITPs for verifying peephole rewrites across domain-specific IRs. We formalize a core calculus for SSA-based IRs that is generic over the IR and covers so-called regions (nested scoping used by many domain-specific IRs in the MLIR ecosystem). Our mechanization in the Lean proof assistant provides a user-friendly frontend for translating MLIR syntax into our calculus. We provide scaffolding for defining and verifying peephole rewrites, offering tactics to eliminate the abstraction overhead of our SSA calculus. We prove correctness theorems about peephole rewriting, as well as two classical program transformations. To evaluate our framework, we consider three use cases from the MLIR ecosystem that cover different levels of abstractions: (1) bitvector rewrites from LLVM, (2) structured control flow, and (3) fully homomorphic encryption. We envision that our mechanization provides a foundation for formally verified rewrites on new domain-specific IRs.


翻译:现代编译器对领域特定推理的需求日益增长,这推动了基于静态单赋值(SSA)的定制化中间表示(IR)的使用,例如在MLIR编译器框架中。交互式定理证明器(ITP)为编译器的端到端验证提供了强有力的保证(例如CompCert)。然而,现代编译器及其IR的演进速度使得伴随其进行证明工程的成本变得极其高昂。尽管如此,在SMT求解器能提供高效(半)判定过程的领域中,诸如用于LLVM-IR的Alive窥孔验证器等范围明确的一键式自动化验证工具已获得认可。本文旨在将自动化验证的便利性与ITP的通用性相结合,以验证跨领域特定IR的窥孔重写规则。我们形式化了一个基于SSA的IR核心演算,该演算对IR具有通用性,并覆盖了所谓的区域(即MLIR生态系统中许多领域特定IR使用的嵌套作用域结构)。我们在Lean证明助手中实现的机械化框架提供了一个用户友好的前端,可将MLIR语法转换到我们的演算中。我们提供了用于定义和验证窥孔重写的脚手架,并提供了消除SSA演算抽象开销的策略。我们证明了关于窥孔重写以及两个经典程序变换的正确性定理。为评估我们的框架,我们考虑了MLIR生态系统中的三个用例,涵盖不同抽象层次:(1)来自LLVM的位向量重写,(2)结构化控制流,以及(3)全同态加密。我们设想该机械化框架能为新的领域特定IR上形式化验证的重写提供基础。

0
下载
关闭预览

相关内容

编译器(Compiler),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
34+阅读 · 2019年10月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
32+阅读 · 2019年10月17日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
164+阅读 · 2019年10月12日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
From Softmax to Sparsemax-ICML16(1)
KingsGarden
74+阅读 · 2016年11月26日
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Arxiv
12+阅读 · 2023年5月22日
Arxiv
15+阅读 · 2022年5月14日
Knowledge Embedding Based Graph Convolutional Network
Arxiv
24+阅读 · 2021年4月23日
Arxiv
13+阅读 · 2021年3月3日
Arxiv
21+阅读 · 2021年2月13日
Arxiv
12+阅读 · 2019年2月26日
Arxiv
24+阅读 · 2018年10月24日
Arxiv
14+阅读 · 2018年5月15日
VIP会员
最新内容
人工智能即服务与未来战争(印度视角)
专知会员服务
0+阅读 · 今天7:57
《美国战争部2027财年军事人员预算》
专知会员服务
0+阅读 · 今天7:44
伊朗战争中的电子战
专知会员服务
3+阅读 · 今天7:04
大语言模型平台在国防情报应用中的对比
专知会员服务
5+阅读 · 今天3:12
美海军“超配项目”
专知会员服务
6+阅读 · 今天2:13
《美陆军条例:陆军指挥政策(2026版)》
专知会员服务
11+阅读 · 4月21日
相关VIP内容
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
From Softmax to Sparsemax-ICML16(1)
KingsGarden
74+阅读 · 2016年11月26日
相关论文
Arxiv
12+阅读 · 2023年5月22日
Arxiv
15+阅读 · 2022年5月14日
Knowledge Embedding Based Graph Convolutional Network
Arxiv
24+阅读 · 2021年4月23日
Arxiv
13+阅读 · 2021年3月3日
Arxiv
21+阅读 · 2021年2月13日
Arxiv
12+阅读 · 2019年2月26日
Arxiv
24+阅读 · 2018年10月24日
Arxiv
14+阅读 · 2018年5月15日
相关基金
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员