1 - Handle constant expressions of (struct == struct)
3 - Handle constant expressions of (struct != struct)
5 - Treat built-in functions with constant parameters as constant expressions.
6 - Rewrite all built-in functions return a single expression.
7 - Modify the HIR generator for functions to automatically inline built-in
8 functions durning translation.
9 - Care must be taken to handle both the 1.10 rules and the 1.20+ rules. In
10 1.10, built-in functions cannot be constant expressions.
12 - Detect code paths in non-void functions that don't reach a return statement
14 - Handle over-riding built-in functions
15 - Is the overload per-compilation unit or per-linked shader?
17 - Handle redeclaration of built-in variables
18 - Handle addition of qualifiers such as 'invariant' or 'centroid'.
19 - Handle resizing of arrays.
20 - Other? We'll have to look at the spec.
22 - Improve handling of constants and their initializers. Constant initializers
23 should never generate any code. This is trival for scalar constants. It is
24 also trivial for arrays, matrices, and vectors that are accessed with
25 constant index values. For others it is more complicated. Perhaps these
26 cases should be silently converted to uniforms?
30 - Implement AST-to-HIR conversion of bit-shift operators.
32 - Implement AST-to-HIR conversion of bit-wise {&,|,^,!} operators.
34 - Implement AST-to-HIR conversion of switch-statements
37 - Update break to correcly handle mixed nexting of switch-statements
40 - Handle currently unsupported constant expression types
49 - Implement support for 1.30 style shadow compares which only return a float