Quantitative data on the individual contribution of LLVM passes to Runtime Performance

Hi everyone,

While we have excellent resources like llvm-compile-time-tracker.com to monitor the impact of changes on the compiler’s own performance, I’m looking for something similar focused on the quality of the generated code at a granular, per-pass level.

Specifically, I am interested in whether there is a systematic study or a repository that maps how individual optimization passes (or specific sequences) impact micro-architectural metrics such as cache misses (L1/L2/L3 and TLB), instruction per cycle (IPC), branch mispredictions, and binary size vs. execution speed trade-offs.

The goal would be to understand the “ROI” of a single pass (e.g., LoopVectorize or GVN) not just in terms of general speedup, but in how it affects the hardware utilization of the target CPU.

Questions:

  1. Is there any “leave-one-out” analysis that profiles the default pipeline against these hardware-level metrics across standard benchmarks (SPEC, LLVM Test Suite)?

  2. Since O-levels are broad strokes, has there been an effort to identify “high-impact” vs. “noise” passes for specific architectures (e.g., x86_64 vs AArch64)?

  3. Given the data in the compile-time tracker, would there be interest in a “Runtime Performance Tracker” that focuses on these granular hardware metrics?

Looking forward to your insights.

Fede