Variables are often missing when debugging programs built with LLVM. Sometimes this is due to variables being optimised out, but more often due to poor variable tracking in the compiler. In this talk, Jeremy explains how LLVM has been tracking variable locations to date and its limitations, how a proposed new technique for tracking variable locations works, and how this can become a pair of SSA (Single Static Assignment) problems to solve at the end of compilation. Finally, he examines some variable location coverage improvements delivered by this technique and considers some future directions that variable location tracking might take.
Duration: 26 Minutes