Mesa (master): r300/compiler: New dataflow structures and passes

Nicolai Hähnle nh at kemper.freedesktop.org
Wed Oct 7 18:48:18 UTC 2009


Module: Mesa
Branch: master
Commit: e95e76e1255a3ad0ce604271301d090337b2e82b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e95e76e1255a3ad0ce604271301d090337b2e82b

Author: Nicolai Hähnle <nhaehnle at gmail.com>
Date:   Sun Sep  6 11:47:40 2009 +0200

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.

---

 src/mesa/drivers/dri/r300/compiler/Makefile        |    8 +-
 .../dri/r300/compiler/r300_fragprog_swizzle.c      |   35 +-
 .../dri/r300/compiler/r300_fragprog_swizzle.h      |    7 +-
 src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c |   38 +--
 src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c |   50 ++--
 src/mesa/drivers/dri/r300/compiler/r500_fragprog.c |   24 +-
 src/mesa/drivers/dri/r300/compiler/r500_fragprog.h |    6 +-
 .../drivers/dri/r300/compiler/radeon_compiler.c    |   35 ++
 .../drivers/dri/r300/compiler/radeon_compiler.h    |   26 ++
 .../drivers/dri/r300/compiler/radeon_dataflow.c    |  106 ++++++
 .../drivers/dri/r300/compiler/radeon_dataflow.h    |  113 ++++++
 .../dri/r300/compiler/radeon_dataflow_annotate.c   |  365 ++++++++++++++++++++
 .../dri/r300/compiler/radeon_dataflow_dealias.c    |  150 ++++++++
 .../dri/r300/compiler/radeon_dataflow_swizzles.c   |  126 +++++++
 .../drivers/dri/r300/compiler/radeon_nqssadce.c    |  267 --------------
 .../drivers/dri/r300/compiler/radeon_nqssadce.h    |   92 -----
 .../drivers/dri/r300/compiler/radeon_opcodes.c     |   87 +++--
 .../drivers/dri/r300/compiler/radeon_opcodes.h     |    8 +
 .../drivers/dri/r300/compiler/radeon_program.c     |  150 +--------
 .../drivers/dri/r300/compiler/radeon_program.h     |  110 +-----
 .../dri/r300/compiler/radeon_program_constants.h   |  128 +++++++
 .../dri/r300/compiler/radeon_program_print.c       |  214 ++++++++++++
 .../drivers/dri/r300/compiler/radeon_swizzle.h     |   57 +++
 src/mesa/drivers/dri/r300/r300_vertprog.c          |    1 -
 24 files changed, 1486 insertions(+), 717 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=e95e76e1255a3ad0ce604271301d090337b2e82b



More information about the mesa-commit mailing list