Hi, This is a series I had floating around a while. The idea is to have all the opcode stuff, including constant folding, derived from a single Python file. I've cleaned it up a little by using {}-style Python formatting instead of the pile of text-replacement and regular expressions we had before for getting the constant expressions to a state where they could be compiled as C code.
v2: In addition to a bunch of cleanups, I've deleted patch 5 in favor of Eric's patch and replaced it with a patch that makes opt_algebraic take advantage of the opcode information. I think we should hold off on pushing this one, though, since Jason is modifying the same code and all it does is improve safety in some cases. Nevertheless, I've left it in as an example of how we can use nir_opcodes.py. This series is also available at: git://people.freedesktop.org/~cwabbott0/mesa nir-opcodes-cleanup-v2 Connor Abbott (5): nir: add generated file to .gitignore nir: use Python to autogenerate opcode information nir: add new constant folding infrastructure nir/constant_folding: use the new constant folding infrastructure nir/opt_algebraic: be more careful about constant types src/glsl/Makefile.am | 21 +- src/glsl/Makefile.sources | 7 +- src/glsl/nir/.gitignore | 4 + src/glsl/nir/nir.h | 9 - src/glsl/nir/nir_algebraic.py | 38 +- src/glsl/nir/nir_constant_expressions.h | 32 ++ src/glsl/nir/nir_constant_expressions.py | 324 +++++++++++++++++ src/glsl/nir/nir_opcodes.c | 46 --- src/glsl/nir/nir_opcodes.h | 366 -------------------- src/glsl/nir/nir_opcodes.py | 575 +++++++++++++++++++++++++++++++ src/glsl/nir/nir_opcodes_c.py | 56 +++ src/glsl/nir/nir_opcodes_h.py | 39 +++ src/glsl/nir/nir_opt_algebraic.py | 6 +- src/glsl/nir/nir_opt_constant_folding.c | 179 ++-------- 14 files changed, 1107 insertions(+), 595 deletions(-) create mode 100644 src/glsl/nir/.gitignore create mode 100644 src/glsl/nir/nir_constant_expressions.h create mode 100644 src/glsl/nir/nir_constant_expressions.py delete mode 100644 src/glsl/nir/nir_opcodes.c delete mode 100644 src/glsl/nir/nir_opcodes.h create mode 100644 src/glsl/nir/nir_opcodes.py create mode 100644 src/glsl/nir/nir_opcodes_c.py create mode 100644 src/glsl/nir/nir_opcodes_h.py -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev