Chasing a -O2 pessimization in antcc
Summary
This article analyzes an unexpected -O2 pessmization in antcc's Lua interpreter, tracing the slowdown to inlining, register allocation pressure, and a mem2reg SSA issue that leaves loop phi nodes live across backedges. It identifies a minimal fix—initializing allocations as undefined at allocation time—to prevent phis from crossing loop backedges, backed by benchmarks showing improvement after the change.