Jason Ekstrand
13ec15bdbf
nir: Add a peephole select optimization
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:01 -08:00
Jason Ekstrand
4f44120ff5
nir: Add a function for comparing two sources
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
366181d826
nir: Add a parallel copy instruction type
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
7de6b7fc3e
nir: Add a function for rewriting all the uses of a SSA def
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
fbc443ad56
nir: Add an initialization function for SSA definitions
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
f86902e75d
nir: Add an SSA-based liveness analysis pass.
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
c9a21c725d
nir: set reg_alloc and ssa_alloc when indexing registers and SSA values
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
d7e482d32c
nir: Add a function to detect if a block is immediately followed by an if
...
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 <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
dfdf0c4673
nir: Add a foreach_block_reverse function
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
49911cf4db
nir: Add a basic metadata management system
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
9d986d19d0
nir: Add a lower_vec_to_movs pass
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:19:00 -08:00
Jason Ekstrand
2943522d80
nir: Add a naieve from-SSA pass
...
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.
2015-01-15 07:18:59 -08:00
Jason Ekstrand
4b4f90dbff
nir: Add NIR_TRUE and NIR_FALSE constants and use them for boolean immediates
...
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
2015-01-15 07:18:59 -08:00
Connor Abbott
7602385ac5
nir: add an SSA-based dead code elimination pass
...
v2: Jason Ekstrand <jason.ekstrand@intel.com>:
whitespace fixes
2015-01-15 07:18:58 -08:00
Connor Abbott
8b7cb7674c
nir: add an SSA-based copy propagation pass
2015-01-15 07:18:58 -08:00
Connor Abbott
4553887d4a
nir: add a pass to convert to SSA
...
v2: Jason Ekstrand <jason.ekstrand@intel.com>:
whitespace fixes
2015-01-15 07:18:58 -08:00
Connor Abbott
b559ee709b
nir: calculate dominance information
2015-01-15 07:18:58 -08:00
Connor Abbott
cff1deff72
nir: add an optimization to turn global registers into local registers
...
After linking and inlining, this allows us to convert these registers
into SSA values and optimise more code.
2015-01-15 07:18:58 -08:00
Connor Abbott
613bf6818a
nir: add a pass to lower atomics
...
v2: Jason Ekstrand <jason.ekstrand@intel.com>
whitespace fixes
2015-01-15 07:18:58 -08:00
Connor Abbott
8692c6a023
nir: add a pass to lower system value reads
...
v2: Jason Ekstrand <jason.ekstrand@intel.com>:
whitespace fixes
2015-01-15 07:18:58 -08:00
Connor Abbott
8cdcfce5ce
nir: add a pass to lower sampler instructions
2015-01-15 07:18:58 -08:00
Connor Abbott
370e875b32
nir: add a pass to remove unused variables
...
After we lower variables, we want to delete them in order to free up
some memory.
v2: Jason Ekstrand <jason.ekstrand@intel.com>:
whitespace fixes
2015-01-15 07:18:58 -08:00
Connor Abbott
494790b2a9
nir: keep track of the number of input, output, and uniform slots
2015-01-15 07:18:58 -08:00
Connor Abbott
c2f36cf125
nir: add a pass to lower variables for scalar backends
2015-01-15 07:18:58 -08:00
Connor Abbott
dbb76421da
nir: add a validation pass
...
This is similar to ir_validate.cpp.
v2: Jason Ekstrand <jason.ekstrand@intel.com>:
whitespace fixes
2015-01-15 07:18:58 -08:00
Connor Abbott
98fa28bff7
nir: add a printer
...
This is similar to ir_print_visitor.cpp.
v2: Jason Ekstrand <jason.ekstrand@intel.com>:
whitespace fixes
2015-01-15 07:18:58 -08:00
Connor Abbott
2812e5de93
nir: add core helper functions
...
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 <jason.ekstrand@intel.com>:
whitespace and automake fixes
2015-01-15 07:18:58 -08:00
Jason Ekstrand
f521a3c543
SQUASH: Use the enum for the variable mode
2015-01-15 07:18:57 -08:00
Connor Abbott
30c4678f64
nir: add the core datastructures
...
This includes all the instructions, ifs, loops, functions, etc. This is
similar to the information in ir.h.
v2: Jason Ekstrand <jason.ekstrand@intel.com>:
Include ralloc and hash_table from the util directory
whitespace fixes
Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-By glenn.kennard <glenn.kennard@gmail.com>
2015-01-15 07:18:57 -08:00