r300/compiler: New dataflow structures and passes
authorNicolai Hähnle <nhaehnle@gmail.com>
Sun, 6 Sep 2009 09:47:40 +0000 (11:47 +0200)
committerNicolai Hähnle <nhaehnle@gmail.com>
Sun, 6 Sep 2009 09:47:40 +0000 (11:47 +0200)
commite95e76e1255a3ad0ce604271301d090337b2e82b
tree2f164b0c45576b27d70130e6f2ea58b3bb62d880
parentd1b4351e603522be11061522cb6b685da9ef1fee
r300/compiler: New dataflow structures and passes

This replaces the old NQSSADCE code with the same functionality, but quite
different design. Instead of doing a single integerated pass, we now build
explicit data structures representing the dataflow.

This will enable analysis of flow control instruction, and could potentially
open an avenue for several dataflow based optimizations, such as peephole
optimization, fusing MUL+ADD to MAD, and so on.
24 files changed:
src/mesa/drivers/dri/r300/compiler/Makefile
src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c
src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h
src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
src/mesa/drivers/dri/r300/compiler/r500_fragprog.c
src/mesa/drivers/dri/r300/compiler/r500_fragprog.h
src/mesa/drivers/dri/r300/compiler/radeon_compiler.c
src/mesa/drivers/dri/r300/compiler/radeon_compiler.h
src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_dataflow_annotate.c [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_dataflow_dealias.c [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_dataflow_swizzles.c [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c [deleted file]
src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.h [deleted file]
src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c
src/mesa/drivers/dri/r300/compiler/radeon_opcodes.h
src/mesa/drivers/dri/r300/compiler/radeon_program.c
src/mesa/drivers/dri/r300/compiler/radeon_program.h
src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_program_print.c [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_swizzle.h [new file with mode: 0644]
src/mesa/drivers/dri/r300/r300_vertprog.c