Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | nir: Add a function for rewriting all the uses of a SSA def | Jason Ekstrand | 2015-01-15 | 2 | -0/+55 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Automatically handle SSA uses when an instruction is inserted | Jason Ekstrand | 2015-01-15 | 2 | -26/+6 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add an initialization function for SSA definitions | Jason Ekstrand | 2015-01-15 | 3 | -21/+25 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add an SSA-based liveness analysis pass. | Jason Ekstrand | 2015-01-15 | 5 | -0/+297 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: set reg_alloc and ssa_alloc when indexing registers and SSA values | Jason Ekstrand | 2015-01-15 | 2 | -2/+5 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add a function to detect if a block is immediately followed by an if | Jason Ekstrand | 2015-01-15 | 4 | -13/+30 |
| | | | | | | | | Since we don't actually have an "if" instruction, this is a very common pattern when iterating over instructions. This adds a helper function for it to make things a little less painful. Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add a foreach_block_reverse function | Jason Ekstrand | 2015-01-15 | 2 | -25/+56 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir/foreach_block: Return false if the callback on the last block fails | Jason Ekstrand | 2015-01-15 | 1 | -3/+1 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add a basic metadata management system | Jason Ekstrand | 2015-01-15 | 5 | -17/+82 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir/lower_variables_scalar: Silence a compiler warning | Jason Ekstrand | 2015-01-15 | 1 | -0/+2 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs_nir: Convert the shader to/from SSA | Jason Ekstrand | 2015-01-15 | 1 | -0/+9 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add a lower_vec_to_movs pass | Jason Ekstrand | 2015-01-15 | 3 | -0/+99 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add a naieve from-SSA pass | Jason Ekstrand | 2015-01-15 | 3 | -0/+195 |
| | | | | | | | This pass is kind of stupidly implemented but it should be enough to get us up and going. We probably want something better that doesn't generate all of the redundant moves eventually. However, the i965 backend should be able to handle the movs, so I'm not too worried about it in the short term. | ||||
* | i965/fs_nir: Don't duplicate emit_general_interpolation | Jason Ekstrand | 2015-01-15 | 2 | -110/+4 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs: Don't take an ir_variable for emit_general_interpolation | Jason Ekstrand | 2015-01-15 | 4 | -35/+41 |
| | | | | | | | | | | Previously, emit_general_interpolation took an ir_variable and pulled the information it needed from that. This meant that in fs_fp, we were constructing a dummy ir_variable just to pass into it. This commit makes emit_general_interpolation take only the information it needs and gets rid of the fs_fp cruft. Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add intrinsics to do alternate interpolation on inputs | Jason Ekstrand | 2015-01-15 | 1 | -17/+35 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add NIR_TRUE and NIR_FALSE constants and use them for boolean immediates | Jason Ekstrand | 2015-01-15 | 2 | -4/+19 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs_nir: Add atomic counters support | Jason Ekstrand | 2015-01-15 | 1 | -3/+22 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir/lower_atomics: Multiply array offsets by ATOMIC_COUNTER_SIZE | Jason Ekstrand | 2015-01-15 | 1 | -1/+17 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs_nir: Handle coarse/fine derivatives | Jason Ekstrand | 2015-01-15 | 1 | -0/+18 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir/glsl: Add support for coarse and fine derivatives | Jason Ekstrand | 2015-01-15 | 1 | -2/+6 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir: Add fine and coarse derivative opcodes | Jason Ekstrand | 2015-01-15 | 1 | -0/+4 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | nir/glsl: Add support for saturate | Jason Ekstrand | 2015-01-15 | 1 | -0/+5 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs_nir: Add support for sample_pos and sample_id | Jason Ekstrand | 2015-01-15 | 1 | -3/+14 |
| | |||||
* | Fix up varying pull constants | Jason Ekstrand | 2015-01-15 | 1 | -1/+1 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | Fix what I think are a few NIR typos | Jason Ekstrand | 2015-01-15 | 1 | -3/+3 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs_nir: Use the correct texture offset immediate | Jason Ekstrand | 2015-01-15 | 1 | -4/+3 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs_nir: Use the correct types for texture inputs | Jason Ekstrand | 2015-01-15 | 1 | -7/+25 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs_nir: Make the sampler register always unsigned | Jason Ekstrand | 2015-01-15 | 1 | -2/+2 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs: Only use nir for 8-wide non-fast-clear shaders. | Jason Ekstrand | 2015-01-15 | 1 | -1/+2 |
| | | | | Reviewed-by: Connor Abbott <[email protected]> | ||||
* | i965/fs: add a NIR frontend | Connor Abbott | 2015-01-15 | 5 | -4/+1756 |
| | | | | | | | | | | This is similar to the GLSL IR frontend, except consuming NIR. This lets us test NIR as part of an actual compiler. v2: Jason Ekstrand <[email protected]>: Make brw_fs_nir build again Only use NIR of INTEL_USE_NIR is set whitespace fixes | ||||
* | i965/fs: Don't pass through the coordinate type | Connor Abbott | 2015-01-15 | 3 | -22/+21 |
| | | | | All we really need is the number of components. | ||||
* | i965/fs: make emit_fragcoord_interpolation() not take an ir_variable | Connor Abbott | 2015-01-15 | 4 | -9/+14 |
| | |||||
* | nir: add an SSA-based dead code elimination pass | Connor Abbott | 2015-01-15 | 3 | -0/+191 |
| | | | | | v2: Jason Ekstrand <[email protected]>: whitespace fixes | ||||
* | nir: add an SSA-based copy propagation pass | Connor Abbott | 2015-01-15 | 3 | -0/+317 |
| | |||||
* | nir: add a pass to convert to SSA | Connor Abbott | 2015-01-15 | 3 | -0/+686 |
| | | | | | v2: Jason Ekstrand <[email protected]>: whitespace fixes | ||||
* | nir: calculate dominance information | Connor Abbott | 2015-01-15 | 4 | -1/+337 |
| | |||||
* | nir: add an optimization to turn global registers into local registers | Connor Abbott | 2015-01-15 | 3 | -0/+106 |
| | | | | | After linking and inlining, this allows us to convert these registers into SSA values and optimise more code. | ||||
* | nir: add a pass to lower atomics | Connor Abbott | 2015-01-15 | 3 | -0/+130 |
| | | | | | v2: Jason Ekstrand <[email protected]> whitespace fixes | ||||
* | nir: add a pass to lower system value reads | Connor Abbott | 2015-01-15 | 3 | -0/+109 |
| | | | | | v2: Jason Ekstrand <[email protected]>: whitespace fixes | ||||
* | nir: add a pass to lower sampler instructions | Connor Abbott | 2015-01-15 | 3 | -0/+176 |
| | |||||
* | nir: add a pass to remove unused variables | Connor Abbott | 2015-01-15 | 3 | -0/+141 |
| | | | | | | | | After we lower variables, we want to delete them in order to free up some memory. v2: Jason Ekstrand <[email protected]>: whitespace fixes | ||||
* | nir: keep track of the number of input, output, and uniform slots | Connor Abbott | 2015-01-15 | 3 | -4/+16 |
| | |||||
* | nir: add a pass to lower variables for scalar backends | Connor Abbott | 2015-01-15 | 3 | -0/+1237 |
| | |||||
* | nir: add a glsl-to-nir pass | Connor Abbott | 2015-01-15 | 3 | -1/+1797 |
| | | | | | | v2: Jason Ekstrand <[email protected]>: Make glsl_to_nir build again fix whitespace | ||||
* | nir: add a validation pass | Connor Abbott | 2015-01-15 | 3 | -0/+793 |
| | | | | | | | This is similar to ir_validate.cpp. v2: Jason Ekstrand <[email protected]>: whitespace fixes | ||||
* | nir: add a printer | Connor Abbott | 2015-01-15 | 3 | -0/+915 |
| | | | | | | | This is similar to ir_print_visitor.cpp. v2: Jason Ekstrand <[email protected]>: whitespace fixes | ||||
* | SQUASH: Fix comments from eric | Jason Ekstrand | 2015-01-15 | 1 | -0/+3 |
| | | | | Reviewed-by: Eric Anholt <[email protected]> | ||||
* | SQUASH: Add an assert | Jason Ekstrand | 2015-01-15 | 1 | -0/+1 |
| | |||||
* | nir: add core helper functions | Connor Abbott | 2015-01-15 | 3 | -3/+1815 |
| | | | | | | | | | These include functions for adding and removing various bits of IR and helpers for iterating over all the sources and destinations of an instruction. This is similar to ir.cpp. v2: Jason Ekstrand <[email protected]>: whitespace and automake fixes |