This is a 3rd version of the constant folding architecture that Connor came up with based on python autogeneration. This 3rd version has a few trivial fixes to some of the patches and a complete rewrite of 2. While I think Connor's patch 2 probably worked, it involved a lot of very opaque wrapping strings in strings and I couldn't follow it. I've rewritten it to use mako to generate something that is *hopefully* more clear. I'm ok with using Connor's version if people would prefer, but I thought I've been kicking this around in my head and thought I'd knock it out anyway.
Connor Abbott (3): nir: use Python to autogenerate opcode information nir/constant_folding: use the new constant folding infrastructure nir/opt_algebraic: be more careful about constant types Jason Ekstrand (1): nir: add new constant folding infrastructure src/glsl/Makefile.am | 18 + src/glsl/Makefile.sources | 5 +- src/glsl/nir/.gitignore | 3 + src/glsl/nir/nir.h | 16 +- src/glsl/nir/nir_algebraic.py | 39 ++- src/glsl/nir/nir_constant_expressions.h | 31 ++ src/glsl/nir/nir_constant_expressions.py | 319 +++++++++++++++++ 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 | 55 +++ src/glsl/nir/nir_opcodes_h.py | 47 +++ src/glsl/nir/nir_opt_algebraic.py | 6 +- src/glsl/nir/nir_opt_constant_folding.c | 179 ++-------- src/mesa/drivers/dri/i965/Makefile.am | 1 + 15 files changed, 1108 insertions(+), 598 deletions(-) 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.2.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev