1 - Detect code paths in non-void functions that don't reach a return statement 2 3 - Improve handling of constants and their initializers. Constant initializers 4 should never generate any code. This is trival for scalar constants. It is 5 also trivial for arrays, matrices, and vectors that are accessed with 6 constant index values. For others it is more complicated. Perhaps these 7 cases should be silently converted to uniforms? 8 9 - Track source locations throughout the IR. There are currently several 10 places where we cannot emit line numbers for errors (and currently emit 0:0) 11 because we've "lost" the line number information. This is particularly 12 noticeable at link time. 13