2025-07-23 –, David Lawrence Hall Room 120 (Main stage)
What's the cost of invalidation freedom?
This talk will dive into the invalidation problem from its fundamentals, viewing these as a failed speculative optimization in the compiler. Why do we perform this speculation, despite its costs? What can be done to make it succeed?
A foreign concept in most other languages, the word "invalidation" is enough to make many Julia veterans shudder. Despite complex tooling like SnoopCompile.jl and hundreds of latency-oriented PR's, this perennial bugbear continues to show up and make fast code mysteriously slow, waste processor cycles on repeated JIT, and demand extensive developer time to investigate.
This talk will dive into the invalidation problem from its fundamentals: What is the language / compiler doing to create them in the first place? What kind of code creates them? What does the compiler need to know to avoid them? Along the way, we'll see how invalidations are really a speculative optimization "gone wrong" and challenge the common wisdom that invalidation issues are due to type-piracy and poorly-inferred code.
Finally with that perspective in hand, we'll discuss what can be done to make this speculation succeed. What would it cost to solve the invalidation issue once and for all?
A compiler engineer at JuliaHub.