CompilerGPT: Leveraging Large Language Models for Analyzing and Acting on Compiler Optimization Reports
针对编译器优化报告难解读难落地的问题,本文提出CompilerGPT框架,自动化实现编译器、大语言模型与用户测试工具的交互,实验显示最高可获6.5倍加速,有望提升编译器可用性、优化软件流程。
2025-06-12 cs.PL
Solving the TTC 2011 Compiler Optimization Case with GrGen.NET
编译器优化案例的挑战是在编译器的基于图的中间表示上执行局部优化和指令选择。该案例旨在比较参与工具的性能。我们解决这个任务,采用通用图形重写系统GrGen.NET(www.grgen.net)。
2011-11-21 cs.PL
Compiler Optimization: A Case for the Transformation Tool Contest
一种优化编译器包括:前端,将文本程序设计语言解析成中间表示(IR);中间端,对IR执行优化;以及后端,将IR降低到由目标硬件支持的操作构建的目标表示(TR)。在现代编译器构造中,采用了基于图的IR。优化和降低任务可以通过图转换规则来实现。这个案例提供了两个编译器任务来评估参与工具的性能。
2011-11-21 cs.PL
Understand Code Style: Efficient CNN-based Compiler Optimization Recognition System
漏洞优化级别识别可以应用于漏洞发现和二进制分析。由于存在许多不同的编译优化选项,二进制文件内容的差异非常复杂。编译器优化算法成千上万,处理器体系结构多种多样,人工分析二进制文件并用规则识别其编译器优化水平是非常困难的。本文首先提出了一种基于CNN的编译器优化级别识别模型:BinEye。该系统提取语义和结构差异,并自动识别编译器优化级别。该模型被设计为非常适合二进制文件处理,并且易于理解。我们构建了一个包含80,028个二进制文件的数据集,用于模型训练和测试。我们提出的模型达到了97%以上的准确率。同时,BinEye是一个完全基于CNN的系统,它具有更快的前向计算速度,至少比普通的基于RNN的模型快8倍。通过对模型输出的分析,我们成功地发现了编译器优化水平不同所导致的汇编代码的差异。这意味着我们提出的模型是可解释的。基于我们的模型,我们提出了一种分析不同编译器优化级别导致的代码差异的方法,这对分析闭源编译器和二进制安全分析具有很大的指导意义。
2023-01-18 cs.PL
Weak Memory Demands Model-based Compiler Testing
本文指出处理器对宽松内存模型的利用使编译后并发程序暴露新缺陷,提出需发展基于模型的编译器测试,并通过LLVM工具链缺陷案例探讨其对编译器、测试工具和并发测试生成器的广泛影响。
2024-01-12 cs.AR cs.PL cs.SE
Compositional Verification of Compiler Optimisations on Relaxed Memory
一个有效的编译器优化转换程序中的一个块,而不引入新的可观察到的行为的程序作为一个整体。决定哪些优化是有效的可能是困难的,并且密切依赖于程序设计语言的语义模型。公理化的宽松模型,如C++11,对确定有效性提出了特殊的挑战,因为这样的模型允许程序的其余部分观察到块转换的微妙效果。在本文中,我们提出了一个指称理论,捕捉优化有效性的公理模型对应的一个片段的C++11。我们的理论允许验证的优化组合,只考虑块,而不是整个程序的转换。使用这个属性,我们实现了理论的第一个按钮工具,可以验证现实世界的优化下的公理记忆模型。
2018-02-16 cs.PL
Memory Safe Computations with XLA Compiler
Imperial College London(帝国理工学院);Secondmind(Secondmind公司)
像TensorFlow和PyTorch这样的软件包旨在支持线性代数运算,它们的速度和可用性决定了它们的成功。然而,通过优先考虑速度,他们往往忽略了内存需求。因此,在软件设计方面方便的存储器密集型算法的实现通常由于存储器溢出而不能运行于大问题。内存高效的解决方案需要复杂的编程方法,在计算框架之外具有重要的逻辑。这损害了这种算法的采用和使用。为了解决这个问题,我们开发了一个XLA编译器扩展,根据用户指定的内存限制调整算法的计算数据流表示。我们表明,k-最近邻和稀疏高斯过程回归方法可以在单个设备上以更大的规模运行,而标准实现可能会失败。我们的方法可以更好地利用硬件资源。我们相信,进一步关注在编译器级别消除内存限制将扩大未来可以开发的机器学习方法的范围。
2022-06-28 cs.LG cs.PL stat.ML
CompilerDream: Learning a Compiler World Model for General Code Optimization
School of Software, BNRist Tsinghua University Beijing China(软件学院、北师大清华大学北京中国);Tsinghua University(清华大学)
提出基于模型的强化学习方法CompilerDream,通过编译器世界模型模拟优化pass属性并训练智能体,实现跨应用场景和语言的通用代码优化,在零样本泛化上超越LLVM内置优化。
2026-05-28 cs.LG cs.PL
Evaluating Compiler Optimization Impacts on zkVM Performance
ETH Zurich(苏黎世联邦理工学院);UCL Centre for Blockchain Technologies(伦敦大学学院区块链技术中心);zkSecurity(zk安全)
本文研究了编译器优化对zkVM性能的影响,通过优化LLVM传递提升了zkVM执行效率,展示了编译器优化在零知识证明系统中的应用潜力。
2026-01-22 cs.PF cs.PL
Lost in translation: Exposing hidden compiler optimization opportunities
现有的迭代编译和基于机器学习的优化技术已经被证明在实现比编译器的标准优化级别更好的优化方面非常成功。但是,它们并没有被设计为支持将编译器优化器的调优作为编译器日常开发周期的一部分。在本文中,我们首先建立所需的性能,一种技术必须表现出这样的调整。然后,我们介绍了一个增强的经典的夜间例行测试的编译器表现出所有必需的属性,因此,能够驱动编译器的共同优化器的改进和调整。这是通过利用收集的资源使用和编译信息来实现的,同时系统地利用在标准优化级别应用的转换的前缀。使用LLVM v6.0.1编译器进行的实验评估表明,新方法能够揭示两种流行处理器上隐藏的跨架构和依赖于架构的潜在优化:Intel i5- 6300 U和Raspberry Pi 3B+中使用的基于Arm Cortex-A53的Broadcom BCM 2837。作为一个案例研究,我们展示了如何从我们的方法的见解,使我们能够识别和删除一个显着的缺点的CFG简化通过LLVM v6.0.1编译器。
2020-07-07 cs.PL
Agentic Code Optimization via Compiler-LLM Cooperation
AWS AI;Georgia Institute of Technology(佐治亚理工学院)
本文提出编译器-LLM协作方法,结合传统编译优化与LLM生成,提升代码性能,实验显示比现有方法快1.25倍。
2026-04-05 cs.PL
PROMPT: A Fast and Extensible Memory Profiling Framework
针对内存剖析工具开发门槛高的问题,提出PROMPT框架,让开发者仅需定义核心逻辑即可快速构建工具,大幅减少代码量并提升剖析速度,还可高效支持复杂编译器优化的定制需求。
2023-11-06 cs.PF cs.PL
PowerFusion: A Tensor Compiler with Explicit Data Movement Description and Instruction-level Graph IR
Tsinghua University(清华大学)
本文提出张量编译器IntelliGen,通过指令级图IR显式描述计算与数据移动并进行整体优化,在多种硬件上显著提升内存密集型算子性能。
2023-07-11 cs.LG cs.PL
Solving the TTC 2011 Compiler Optimization Case with GReTL
本文讨论了TTC 2011年锅炉优化案例的GReTL解决方案。所提交的解决方案涵盖了常量折叠任务和指令选择任务。实现了验证图有效性的验证器,并根据扩展的要求提供了一些附加的测试图。
2011-11-21 cs.PL cs.SE
Compiler Optimization for Irregular Memory Access Patterns in PGAS Programs
不规则的内存访问模式给分布式内存系统带来了性能和用户生产力方面的挑战。它们可以导致细粒度的远程通信,并且数据访问模式通常直到运行时才知道。分区全局地址空间(PGAS)编程模型通过向用户提供类似于单个共享地址空间的分布式内存系统视图来解决这些挑战。然而,这种观点经常导致程序员编写导致细粒度远程通信的代码,这可能导致性能低下。先前的工作表明,用Chapel(一种高级PGAS语言)编写的不规则应用程序的性能可以通过手动应用优化来提高。然而,手动应用这种优化会降低Chapel和PGAS模型提供的生产率优势。我们提出了一个检查器执行器为基础的编译器优化的教堂程序,自动执行远程数据复制。虽然其他PGAS语言也有类似的编译器优化,但Chapel中的高级功能(如隐式处理器亲和性)给编译器优化带来了新的挑战。我们评估我们的优化在两个不规则的应用程序的性能。我们的研究结果表明,在具有低延迟互连的Cray XC系统上,总运行时间可以提高52倍,在具有Infiniband互连的标准Linux集群上可以提高364倍,这表明可以在不牺牲用户生产力的情况下实现显着的性能提升。
2023-03-24 cs.DC cs.PL
Compiler Auto-tuning through Multiple Phase Learning
针对编译器优化标志自动调优中搜索空间大、运行时成本高的问题,提出结合轻量级性能预测模型与新型粒子群算法的CompTuner方法,实验证明其性能显著优于现有最优技术。
2023-04-27 cs.PL
Developing a Modular Compiler for a Subset of a C-like Language
Gauhati University(古瓦哈提大学)
本文设计并迭代实现了一个面向类C语言子集的模块化编译器,通过可增删子集与增量开发提升可维护性和内存效率,并在资源受限单板机上验证其有效性。
2025-01-08 cs.CL cs.DC cs.PF
LOOPerSet: A Large-Scale Dataset for Data-Driven Polyhedral Compiler Optimization
New York University Abu Dhabi(纽约大学阿布扎赫分校)
LOOPerSet是一个大规模数据集,用于数据驱动的多面体编译器优化,通过提供2800万个标记数据点,促进学习成本模型和自动调度的研究。
2025-12-27 cs.LG cs.PF cs.PL
A Survey on Compiler Autotuning using Machine Learning
University of Toronto(多伦多大学);Millersville University of Pennsylvania(宾夕法尼亚米勒斯维尔大学);University of Delaware(特拉华大学);Politecnico di Milano(米兰理工大学)
自20世纪90年代中期以来,研究人员一直试图使用基于机器学习的方法来解决许多不同的编译器优化问题。这些技术主要提高了所获得的结果的质量,更重要的是,使得解决两个主要的编译器优化问题变得可行:优化选择(选择应用哪些优化)和阶段排序(选择应用优化的顺序)。由于应用程序的进步、编译器优化数量的增加以及新的目标体系结构,编译器优化空间继续增长。编译器中的泛型优化传递不能完全利用新引入的优化,因此,不能跟上增加选项的步伐。本综述总结并分类了在编译器优化领域使用机器学习的最新进展,特别是在(1)选择最佳优化和(2)优化的阶段排序这两个主要问题上。该调查突出了迄今为止所采取的方法,所获得的结果,不同方法之间的细粒度分类,最后,该领域的有影响力的论文。
2018-09-03 cs.LG cs.PL
CapablePtrs: Securely Compiling Partial Programs Using the Pointers-as-Capabilities Principle
诸如CHERI之类的能力机器提供可由编译器使用的存储器能力,以提供编译代码的安全益处(例如,记忆安全)。例如,现有的C到CHERI编译器通过遵循称为“指针即功能”(PAC)的原则来实现内存安全。非正式地,PAC说编译器应该将源语言指针表示为机器码能力。但是PAC编译器的安全属性还没有得到很好的理解。我们表明,内存安全只是一个方面,PAC编译器可以提供显着的额外的安全保证部分程序:编译器可以提供安全保证的编译单元,即使该编译单元后来被链接到攻击者提供的机器码。因此,本文是第一个正式研究部分程序PAC编译器的安全性。我们证明了这样的编译器的模型,它是完全抽象的。证明使用了一种新的证明技术(称为TrICL,读涓流),这应该是广泛的兴趣,因为它重用整个程序编译器的正确性关系的充分抽象,从而节省工作。我们还实现了我们的计划C CHERI,表明我们可以编译遗留的C代码,最小的变化,并表明编译代码的性能开销大致成正比的交叉编译单元函数调用的数量。
2021-05-04 cs.CR cs.PL
Memory Safety Preservation for WebAssembly
WebAssembly(Wasm)是下一代可移植编译目标,用于在Web上部署用高级语言编写的应用程序。为了保护其内存免受不可信代码的攻击,Web浏览器引擎将编译后的Wasm程序的执行限制在内存安全的沙箱中。不幸的是,传统的内存安全漏洞(例如,缓冲区溢出和释放后使用)仍然可以破坏沙箱内的内存,并允许Wasm代码进行严重的攻击。为了防止这些攻击,我们研究了一类安全的编译器,消除(不同种类的)内存安全违规。遵循严格的方法,我们讨论内存安全的超安全属性,这让我们确定合适的安全编译标准,内存安全保护编译器。我们推测,除了在模块边界的一些限制,现有的安全机制的WASM可能足以执行内存安全保护,在短期内。从长远来看,我们观察到,在Wasm的内存安全变体的设计中提出的某些功能可以允许编译器解除这些限制,并实施宽松形式的内存安全。
2019-10-21 cs.PL
Relaxed Peephole Optimization: A Novel Compiler Optimization for Quantum Circuits
在本文中,我们提出了一种新的量子编译优化,称为放松窥视孔优化(RPO)的量子计算机。RPO利用可以由编译器静态确定的单量子位状态信息。我们定义一个量子比特是在一个基本状态,在一个给定的时间点,它的状态是在X-,Y-或Z-基础。当基础量子比特被用作量子门的输入时,存在强度降低的机会,其用等效但更便宜的操作代替量子操作。与现有的量子程序的窥视孔优化相比,不同之处在于,我们提出的优化不需要相同的酉矩阵,从而命名为“放松”窥视孔优化。我们还扩展了我们的方法来优化量子门时,一些输入量子位是在已知的纯态。这两种优化,即量子基态优化(QBO)和量子纯态优化(QPO),都在IBM的Qiskit编译器中实现。我们的实验结果表明,我们提出的优化通过是快速和有效的。与Qiskit编译器中最积极的优化水平相比,使用我们的编译器优化的电路获得了高达18.0%(平均11.7%)的CNOT门和高达8.2%(平均7.1%)的编译时间降低。在实际量子计算机上运行时,由于减少了门数,3量子比特量子相位估计算法的成功率提高了2.30倍。
2020-12-14 cs.PL quant-ph
Meta Large Language Model Compiler: Foundation Models of Compiler Optimization
Meta AI
本文提出 Meta LLM Compiler,基于 Code Llama 在 5460 亿 token 的 LLVM-IR 与汇编代码上训练,用于代码大小优化和汇编反汇编,分别达到自动调优潜力的 77% 和 45% 往返率。
2024-06-27 cs.AI cs.PL
BaCO: A Fast and Portable Bayesian Compiler Optimization Framework
Lund University(隆德大学);Federal University of Minas Gerais(米纳斯吉拉斯联邦大学);University of Münster(明斯特大学);Stanford University(斯坦福大学);University of Illinois UC(伊利诺伊大学厄巴纳-香槟分校);University of Edinburgh(爱丁堡大学)
本研究提出通用自动调优框架BaCO,采用面向领域的贝叶斯优化算法处理多类型参数与约束,在CPU、GPU、FPGA三类编译器上均以极小搜索预算实现了优于现有最优自动调优器的性能与收敛速度。
2023-04-11 cs.LG cs.PF cs.PL
COMPASS: A Compiler Framework for Resource-Constrained Crossbar-Array Based In-Memory Deep Learning Accelerators
Seoul National University(首尔大学)
针对基于交叉阵列的内存中加速器因网络规模增大面临的片上存储不足问题,提出编译器框架COMPASS,通过最优层划分算法优化多指标,实现更高吞吐量和能效。
2025-01-12 cs.AR cs.DC cs.ET
AI Powered Compiler Techniques for DL Code Optimization
在CPU上创建深度学习原语的高性能实现是一项具有挑战性的任务。包括多级缓存层次结构和CPU平台的宽SIMD单元在内的多种考虑因素影响了应用于性能优化的程序转换的选择。在本文中,我们提出了机器学习驱动的编译器技术来优化循环嵌套。我们采取双管齐下的方法来进行代码优化:我们首先应用高级优化来优化代码,以最佳地利用缓存内存。然后,我们执行低级别的、特定于目标的优化,以有效地对代码进行向量化,从而在机器的SIMD单元上运行良好。对于高级优化,我们使用多面体编译技术和深度学习方法。对于低级优化,我们使用目标特定的代码生成器,该代码生成器使用向量内在函数和强化学习(RL)技术生成代码,以找到代码生成器的最佳参数。我们对流行的深度学习工作负载中发生的各种矩阵乘法进行了实验评估。实验结果表明,本文提出的编译技术在串行运行和并行运行时分别获得了7.6倍和8.2倍的速度提升。
2021-04-12 cs.PL
AwareCompiler: Agentic Context-Aware Compiler Optimization via a Synergistic Knowledge-Data Driven Framework
University of Chinese Academy of Sciences(中国科学院大学);Institute of Software Chinese Academy of Sciences(中国科学院软件研究所);Hangzhou Institute for Advanced Study at UCAS(UCAS杭州高等研究 institute);Nanyang Technological University(南洋理工大学)
针对编译器优化中语义错位、交互低效和奖励稀疏问题,提出AwareCompiler智能体框架,通过知识整合、自适应pass生成和混合训练,在标准基准上显著提升性能与效率。
2025-10-13 cs.AI cs.PL
A Novel Compiler Transformation for Fast Sparse Matrix Multiplication in GPUs
本文提出一种名为enumerate-and-sparse-coarsen的编译器变换,通过增加数据重用和均衡负载,在GPU上加速稀疏矩阵乘法,相比cuBLAS和cuSPARSE实现1.84至2.27倍加速。
2025-06-18 cs.PL
Finding Missed Code Size Optimizations in Compilers using LLMs
Meta;FAIR at Meta(Meta FAIR研究院)
本文提出一种结合LLM与差分测试的简单方法,用于发现C/C++、Rust和Swift编译器中遗漏的代码大小优化,已报告24个已确认缺陷。
2024-12-31 cs.LG cs.PL cs.SE
MappedTrace: Tracing Pointer Remotely with Compiler-generated Maps
Yale University(耶鲁大学)
MappedTrace利用编译器生成的只读映射远程精确识别程序快照中的指针,降低运行时开销,并支持内存泄漏检测与无限内存抽象等新应用。
2025-01-18 cs.CL cs.PL
Learning to Make Compiler Optimizations More Effective
Technical University of Darmstadt(达姆施塔特工业大学);University of Stuttgart(斯图加特大学)
由于循环执行其主体多次,编译器开发人员非常重视其优化。然而,鉴于高度多样化的源代码和硬件,编译器仍然难以产生最佳的目标代码。可能的循环优化(包括它们的组合)的绝对数量进一步加剧了问题。今天的编译器使用硬编码的语法来决定何时、是否以及应用有限的优化集合中的哪一个。通常,这会导致非常不稳定的行为,使得编译器优化的成功取决于循环的精确编写方式。本文介绍了LoopLearner,它解决了编译器不稳定的问题,通过预测编写循环的方式将导致有效的编译代码。为此,我们训练一个神经网络,以找到语义不变的源代码级转换的循环,帮助编译器生成更有效的代码。我们的模型学习从原始源代码中提取有用的特征,并预测给定转换可能产生的加速。我们使用来自各种性能相关基准的1,895个循环来评估LoopLearner。在编译之前应用我们的模型认为最有利的转换会产生1.14倍的平均加速。当尝试前3个建议的转换时,平均加速甚至增加到1.29倍。将该方法与通过所有可用代码转换的详尽搜索进行比较,表明LoopLearner有助于在几个数量级的时间内识别最有益的转换。
2021-02-24 cs.LG cs.PL
Unleashing the Hidden Power of Compiler Optimization on Binary Code Difference: An Empirical Study
由于编译器优化是导致二进制代码语法差异的最常见原因,因此测试针对由不同编译器优化设置引起的更改的弹性已成为大多数二进制差异方法的标准评估步骤。例如,过去12年中的47篇顶级论文比较了默认优化级别编译的不同程序版本(例如,- GCC和LLVM中的Ox)。尽管他们中的许多人声称他们对编译器转换免疫,但还不清楚他们对非默认优化设置的抵抗力。特别是,我们已经观察到,对手探索非默认编译器设置,以放大恶意软件的差异。本文首先系统地研究了编译器优化对二进制代码差异的有效性。我们量身定制基于搜索的迭代编译的二进制代码差异的自动调整。我们开发BinTuner来搜索接近最优的优化序列,可以最大限度地提高二进制代码差异的数量。我们使用GCC 10.2和LLVM 11.0在SPEC基准测试(CPU 2006和CPU 2017),Coreutils和OpenSSL上运行BinTuner。我们的实验表明,以279到1,881次编译迭代为代价,BinTuner可以找到比一般-Ox设置更好的自定义优化序列。BinTuner的输出严重破坏了突出的二进制差分工具的比较。此外,由BinTuner调整的物联网恶意软件变体的检测率下降了50%以上。我们的研究结果为安全分析师描绘了一个警示故事,即攻击者有一种新的方法可以经济有效地变异恶意软件代码,研究界需要退后一步重新评估优化阻力评估。
2021-03-25 cs.PL cs.SE
Compiler Testing With Relaxed Memory Models
针对现有并发编译器测试技术无法兼顾边界内漏洞覆盖与大规模程序可扩展性的问题,提出工业级测试工具Téléchat,通过对比源与架构内存模型下的程序行为发现漏洞,性能优于现有技术且已部署应用。
2024-01-29 cs.AR cs.PL cs.SE
SplittingSecrets: A Compiler-Based Defense for Preventing Data Memory-Dependent Prefetcher Side-Channels
University of Washington(华盛顿大学)
SplittingSecrets是一种基于编译器的工具,通过防止秘密数据以地址形式存储来防御DMP引起的侧信道攻击。
2026-01-18 cs.CR cs.PL
REASONING COMPILER: LLM-Guided Optimizations for Efficient Model Serving
University of California San Diego(加州大学圣地亚哥分校)
推理编译器利用大语言模型进行编译优化,通过上下文感知决策提升样本效率,实现高效模型服务。
2026-02-04 cs.AI cs.LG cs.PL
Quantitative Comparison of Credible Compilation and Verification In Coding Agent Compiler Development
National University of Singapore(新加坡国立大学);Massachusetts Institute of Technology(麻省理工学院)
本文通过首个由人类监督的验证编译器,比较了可信编译与验证两种编译验证方法的效率,发现验证需要更多开发工作量,且验证优化选择更不高效的算法,证书检查时间占主导。
2026-05-09 cs.PL
Decompiling Rust: An Empirical Study of Compiler Optimizations and Reverse Engineering Challenges
本文通过基准驱动评估与自动化评分框架,量化分析 Rust 核心特性及构建模式对反编译质量的影响,并结合案例揭示泛型、trait 和错误处理带来的逆向挑战。
2025-07-24 cs.PL cs.SE
MileStone: A Multi-Objective Compiler Phase Ordering Framework for Graph-based IR-Level Optimization
Faculty of Computer Science and Engineering, Shahid Beheshti University(沙希德·贝赫什提大学计算机科学与工程学院)
提出MileStone框架,将编译器阶段排序建模为多目标优化问题,利用图神经网络预测性能,并通过强化学习代理探索满足用户约束的优化序列,实现执行时间、代码大小和能耗的Pareto最优权衡。
2026-05-22 cs.PL cs.SE
MLGO: a Machine Learning Guided Compiler Optimizations Framework
Google, Inc.(谷歌公司);Carnegie Mellon University(卡内基梅隆大学)
利用机器学习(ML)技术进行编译器优化已经在学术界得到了广泛的研究和探索。然而,ML在通用、行业实力编译器中的采用还没有发生。我们提出了MLGO,一个框架,系统地集成ML技术在工业编译器- LLVM。作为一个案例研究,我们提出了用机器学习模型取代LLVM中基于机器学习的内联大小优化的细节和结果。据我们所知,这项工作是ML在真实世界环境中复杂编译器通道中的第一次完全集成。它位于主LLVM存储库中。我们使用两种不同的ML算法:策略梯度和演化策略,训练内联的大小模型,并实现高达7\%的大小减少,相比,最先进的LLVM-Oz。在一个语料库上训练的同一个模型,可以很好地推广到现实世界的各种目标,以及经过几个月的积极开发后的同一组目标。训练模型的这种属性有利于在现实世界中部署ML技术。
2021-01-13 cs.LG cs.PL
T-LLM Compiler: Trusted LLM-based Code Optimization and Verification Framework
Huawei Technologies(华为技术有限公司)
本文提出T-LLM编译器,结合LLM代码变换、传统编译器与验证工具,在PolyBench/C基准测试上实现最高83.3%优化准确率,变换后代码平均提速26.7%,并开源了项目代码。
2026-08-18 cs.AI cs.CL cs.LG
An Attempt to Catch Up with JIT Compilers: The False Lead of Optimizing Inline Caches
本文尝试通过动态二进制修改优化内联缓存以提升 AoT JavaScript 编译器性能,但实验表明减少内存访问在当代架构上无法加速,揭示了编译器优化策略的新方向。
2025-02-27 cs.PL
Solving the TTC 2011 Compiler Optimization Task with metatools
作者的“元工具”是一个泛型编程工具的集合。这包括从数学上建立良好的规范生成Java源代码,以及为XML编码文本创建严格类型化的文档对象模型。在这种背景下,几乎每一个计算机内部结构都被视为一个“模型”,每一次计算都是一种模型转换。这个概念与由专门的工具和语言执行的“经典模型转换”有很大的不同。因此,对于TTC 2011的组织者以及作者来说,将元工具应用于其中一个挑战,即“编译器优化任务”,似乎很有希望。这是一份关于由此产生的经验的报告。
2011-11-21 cs.PL cs.SE
MotePy: A domain specific language for low-overhead machine learning and data processing
提出了一种领域专用语言(DSL),命名为MotePy。DSL为时间受限或存储器受限系统中的ML/数据处理提供了具有低开销的高级语法。DSL-to-C编译器有一个新颖的静态内存分配器,它跟踪对象的生存期并重用静态内存,我们称之为编译器管理的堆。
2020-11-12 cs.LG cs.PL
Compilation Forking: A Fast and Flexible Way of Generating Data for Compiler-Internal Machine Learning Tasks
更复杂的优化决策通常基于围绕几个已建立的基准套件的手工制作的算法。或者,它们可以从编译期间产生的特性和性能数据中学习。然而,基于机器学习模型的数据驱动编译器优化需要大量高质量的数据集进行训练,以便匹配甚至优于现有的人工编译器。在静态编译设置中,相关的工作已经通过迭代编译解决了这个问题。然而,动态编译器可能会根据动态选择的编译策略产生不同的数据,这会简化可比数据的生成。我们提出编译分叉,一种技术,用于生成一致的功能和性能数据,从任意的,动态编译的程序。在单个程序运行中执行具有相同分析和编译历史的不同版本的程序部分,以最小化动态编译和运行时环境引起的噪声。我们的方法有利于大规模的编译器优化决策的性能评估。此外,编译分叉通过提供用于模型训练的数据来支持基于机器学习创建特定于域的编译策略。我们以一种与编程语言无关的方式在GraalVM编译器中实现了编译分叉。为了评估生成的数据的质量,我们训练了几个机器学习模型,以取代编译器的循环相关优化。当比较基准测试套件性能的几何平均值时,训练的模型与高度调优的编译器算法表现得同样好。对少数单个基准测试的较大影响范围从20%的加速到17%的减速。所提出的方法可以在任何动态编译器中实现。我们相信,它可以帮助分析编译决策,并利用机器学习的使用到动态编译。
2022-06-28 cs.PL
Fully Composable and Adequate Verified Compilation with Direct Refinements between Open Modules (Technical Report)
提出一种基于CompCert内存模型和带内存保护的Kripke关系的开放模块可信组合编译方法,实现直接精化,支持完整编译链的端到端验证,降低验证复杂度。
2023-11-18 cs.PL
Enhancing Compiler Optimization Efficiency through Grammatical Decompositions of Control-Flow Graphs
针对树分解忽视控制流图稀疏性且计算成本高的问题,提出 SPL 分解框架及图上 PCSP 通用解法,用于寄存器分配、LOSPRE 和存储区选择指令放置,并经实验证明显著优于现有方法。
2025-07-22 cs.PL
Compiler-Grounded Hierarchical Diagnosis for LLM-Based Triton Kernel Optimization
Huawei Technologies Co., Ltd(华为技术有限公司)
研究针对大语言模型内核优化中编译器优化失败原因难揭示的问题,提出基于编译器的Triton内核分层优化框架,通过跨层诊断实现从模式分类到源级重写的优化,在Ascend NPU上显著加速Triton内核。
2026-07-28 cs.AI cs.PL
Souper: A Synthesizing Superoptimizer
如果我们可以自动地导出编译器优化,我们就可以避开创建和维护高质量编译器所涉及的一些重大工程挑战。我们开发了Souper,一个合成超优化器,看看这些想法在LLVM的上下文中可能会被推进多远。在此过程中,我们发现Souper的中间表示与Microsoft Visual C++中的中间表示非常相似,因此我们也将Souper应用于该编译器。这两个编译器的发布或即将发布的版本都包含了Souper建议的优化,但都是手工实现的。或者,当Souper用作全自动优化通道时,它编译的Clang编译器二进制文件比LLVM编译的小约3 MB(4.4%)。
2018-04-06 cs.PL
Nautilus: An Auto-Scheduling Tensor Compiler for Efficient Tiled GPU Kernels
University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校)
Nautilus是一种新型张量编译器,通过端到端系统联合应用高层优化、表达式重写和瓷砖优化,实现从数学描述自动发现FlashAttention-3类内核,提升GPU性能。
2026-04-16 cs.LG cs.PL
Analyzing Latency Hiding and Parallelism in an MLIR-based AI Kernel Compiler
Qualcomm Technologies International, Ltd.(高通技术国际有限公司);Qualcomm Technologies, Inc.(高通技术公司)
本文研究了基于MLIR的AI内核编译器中延迟隐藏与并行性的优化方法,通过实验验证了向量化、多线程和双缓冲技术对不同内核性能的影响。
2026-02-22 cs.AI cs.PL
Accelerating C/C++ Pointer Analysis via Compiler-Based Offline Simplifications
The State Key Laboratory of Blockchain and Data Security, Zhejiang University(浙江大学区块链与数据安全国家重点实验室)
该研究提出在指针分析前对中间表示应用语义保持的编译器优化的模块化方法,经实证验证可使指针分析最高加速3.14倍、内存减少1.94倍且精度基本不变,为相关领域提供了新方向。
2026-08-06 cs.PL
KPerfIR: Towards an Open and Compiler-centric Ecosystem for GPU Kernel Performance Tooling on Modern AI Workloads
提出KPerfIR,一种以编译器为中心的多层次基础设施,通过将性能分析集成到编译器工作流中,为现代AI工作负载提供低开销、高精度的GPU内核性能分析与优化洞察。
2025-05-27 cs.DC cs.PL
Specifying and Executing Optimizations for Parallel Programs
编译器优化,通常表示为程序图上的重写,是所有现代编译器的核心部分。然而,即使是生产编译器也有bug,这些bug很难检测和解决。当编译并行程序时,问题只会变得更加复杂;从图形表示的选择到竞争条件的可能性,优化设计人员需要考虑一系列在处理单线程程序时不会出现的因素。在本文中,我们提出了PTRANS,一个特定领域的编译器转换的形式规格说明语言,并描述其可执行的语义。PTRANS的基本方法是将程序转换描述为带有时序逻辑边条件的控制流图上的重写。PTRANS的语法允许更清晰,更易于理解的程序优化规范;其可执行语义允许这些规范充当优化本身的原型,以便候选优化可以在继续将其包含在编译器中之前进行测试和改进。我们演示了使用PTRANS的状态,测试,并完善规范的冗余存储消除并行程序的优化。
2014-07-30 cs.LO cs.PL
ECCO: Evidence-Driven Causal Reasoning for Compiler Optimization
Institute of Software at Chinese Academy of Sciences(中国科学院软件研究所);Hangzhou Institute for Advanced Study at University of Chinese Academy of Sciences(中国科学院大学杭州高等研究 institute);University of Chinese Academy of Sciences(中国科学院大学)
ECCO通过结合可解释推理与组合搜索,提升编译器优化性能,实现24.44%的平均周期减少。
2026-01-23 cs.AI cs.LG cs.PF