nir: add the core datastructures
nir: add core helper functions
nir: add a printer
nir: add a validation pass
nir: add a glsl-to-nir pass
nir: add a pass to lower variables for scalar backends
nir: add a pass to remove unused variables
nir: add a pass to lower sampler instructions
nir: add a pass to lower system value reads
nir: add a pass to lower atomics
nir: add an optimization to turn global registers into local registers
nir: calculate dominance information
nir: add a pass to convert to SSA
nir: add an SSA-based copy propagation pass
nir: add an SSA-based dead code elimination pass
nir: keep track of the number of input, output, and uniform slots