0:00
/
0:00
Transcript

"Finding Missed Code Size Optimizations in Compilers using LLMs"

Generated below podcast on this paper with Google's Illuminate.

LLMs now find compiler bugs that traditionally needed 40,000 lines of handwritten code to discover

The paper introduces a novel method using LLMs to detect compiler optimization bugs through iterative code mutation, requiring only 150 lines of code to implement versus traditional approaches needing 40,000+ lines.

https://arxiv.org/abs/2501.00655

Original Problem 🤔:

→ Testing compilers for missed optimizations is complex, requiring extensive handwritten code generators (40,000+ lines)

→ Traditional approaches focus mainly on functional correctness rather than finding optimization opportunities

→ Building test generators for new languages is prohibitively expensive

-----

Solution in this Paper 💡:

→ Uses LLMs to mutate simple seed programs through predetermined instructions

→ Implements four differential testing strategies to detect optimization bugs

→ Validates results using sanitizers and dynamic analysis

→ Requires only 150 lines of Python code to implement

→ Can be easily adapted for multiple programming languages

-----

Key Insights 💭:

→ LLMs can effectively generate complex test cases without grammar-based generators

→ Simple seed programs can evolve into sophisticated test cases through guided mutation

→ Differential testing strategies can reliably identify optimization opportunities

→ The approach scales across languages with minimal modification

-----

Results 📊:

→ Found 24 confirmed bugs in production compilers

→ 96.45% of generated code successfully compiles

→ Works across C/C++, Rust, and Swift

→ Required only one week of compute time

Discussion about this video