A lot the patches in this series were slightly reworked to incorporate Eric's feedback (remove ir_variable::user_location) on the previous attempt. Other than that change, I patch 1 is new, and patch 16 adds previously missing display list support.