Search papers, labs, and topics across Lattice.
This paper introduces AutoPass, a multi-agent framework that enhances compiler performance tuning by leveraging evidence from both the compiler and runtime measurements. Unlike traditional auto-tuning methods that treat compilers as black boxes, AutoPass allows LLMs to access and analyze compiler-internal states, enabling informed optimization decisions. The framework demonstrates significant improvements, achieving speedups of 1.043x and 1.117x over LLVM -O3 on x86-64 and ARM64 systems, respectively, without requiring any offline training or task-specific fine-tuning.
AutoPass achieves up to 1.117x speedup in compiler performance tuning by allowing LLMs to interact with compiler internals, challenging the notion that black-box approaches are sufficient.
Large Language Models (LLMs) show promise for code compilation tasks, but applying them to runtime performance tuning is difficult due to complex microarchitectural effects and noisy runtime measurements. We present AutoPass, a multi-agent framework for compiler performance tuning that uses compiler and runtime evidence to guide LLM-generated optimization decisions. Rather than treating the compiler as a black box like prior auto-tuning schemes, AutoPass opens up the compiler to the LLM, enabling it to query compiler-internal optimization states and analyze the intermediate representation to orchestrate compiler options. The search process iteratively refines optimization configurations using measured runtime feedback to diagnose regressions and guide latency-improving edits. AutoPass operates in an inference-only, training-free setting and requires no offline training or task-specific fine-tuning, making it readily applicable to new benchmarks and platforms. We implement AutoPass on the LLVM compiler and evaluate it on server-grade x86-64 and embedded ARM64 systems. AutoPass outperforms expert-tuned heuristics and classical autotuning methods, achieving geometric-mean speedups of 1.043x and 1.117x over LLVM -O3 on x86-64 and ARM64, respectively.