summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
AgeCommit message (Collapse)Author
2010-11-23r300/compiler: Don't allow presubtract sources to be remapped twiceTom Stellard
https://bugs.freedesktop.org/show_bug.cgi?id=31193 NOTE: This is a candidate for the 7.9 branch.
2010-11-21r300/compiler: Use presubtract operations as much as possibleTom Stellard
Previously, presubtract operations where only being used by instructions with less than three source source registers.
2010-11-21r300/compiler: Track readers through branches in rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Handle BREAK and CONTINUE in rc_get_readers()Tom Stellard
2010-11-21r300/compiler: Add rc_get_readers()Tom Stellard
2010-11-04r300/compiler: Move declaration before code.Vinson Lee
Fixes this GCC warning with linux-x86 build. radeon_dataflow.c: In function 'get_readers_normal_read_callback': radeon_dataflow.c:472: warning: ISO C90 forbids mixed declarations and code
2010-11-01r300/compiler: Don't track readers into an IF block.Tom Stellard
This makes rc_get_readers_normal() more conservative than it needs to be, but it fixes some incorrect behavior in the optimization passes.
2010-10-18r300/compiler: Add a new function for more efficient dataflow analysisTom Stellard
rc_get_readers_normal() supplies a list of readers for a given instruction. This function is now being used by the copy propagate optimization and will eventually be used by most other optimization passes as well.
2010-09-27r300/compiler: Add more helper functions for iterating through sourcesTom Stellard
rc_for_all_reads_src() and rc_pair_for_all_reads_arg() pass references to instruction sources to the callback so they can be modified directly.
2010-09-10r300/compiler: Enable presubtract sourcesTom Stellard
The r300 compiler can now emit instructions that select from the presubtract source. A peephole optimization has been added to convert instructions like: ADD Temp[0].x, none.1, -Temp[1].x into the INV (1 - src0) presubtract operation.
2010-05-16r300/compiler: Implement simple peephole optimizerNicolai Hähnle
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2010-04-19r300/compiler: Implement branch emulation for R300 fragment programsNicolai Hähnle
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-10-06r300/compiler: Fix a really stupid logic inversion in the generic dataflow codeNicolai Hähnle
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-10-04r300/compiler: Refactor the radeon_pair code to support control flow ↵Nicolai Hähnle
instructions Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-10-03r300/compiler: Introduce control flow instructions and refactor dataflowNicolai Hähnle
Note that control flow instruction support isn't actually fully functional yet. Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-09-06r300/compiler: New dataflow structures and passesNicolai Hähnle
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.