Hello Brian, thanks for the review, this is a resent of the full series with minor fixes.
Github mirror: https://github.com/gerddie/mesa/tree/lifetime-update-v5 So far patches 3 (was 1 in v3) and 8 (was 5 in v1) Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com> Patches 1,2,3,6 (v4): Reviewed-by: Brian Paul <bri...@vmware.com> Changes w.r.t v4: * patch 2 & 3: Correct some whitespace and empty line errors as pointed out by Brian. Changes w.r.t. v3: * Add patch 1: mesa/program: Add missing file types to _mesa_register_file_name * Ass patch 2: Add stream and equal operators and rewrite the debug output to use the stream operator and _mesa_register_file_name instead of some hand backed code and squeash former patch 5 into this. * Move the Mock* classes and shared test code into a conveniance library, and rename Mock* to Fake* since they are not really Mocks. Changes w.r.t. v2: * patch 9: make the creation of register description tuples explicit because this is what in c++11 is actually required (This slipped before because it seems that g++-7.2 handles tuple initialization like it was c++17, also with its default setting -std=c++14). v1: * patches 2-4(new): As suggested by Nikolai, these patches unify the test classes with respect to the different register inputs (at this point: plain and with swizzle). In addition, some comments are corrected and the used of white spaces in the test cases is made more consistent. * patch 5: correct the debug output for indirect addressing. Nikolai suggested that another patch might be in order to properly propagate the information when and which address register is used, but since st_*_reg is passed through various levels by value, I'd prefer to deal with that in another, dedicated patch series. * patch 6: Further improve the tracking algorithm, and, as requested by Nikolai, rename some variables and add comments to make the algorithm clearer. * patch 7: Add yet more tests. * patch 9: Update the tests to adhere to the new, unified interface. * patch 10 (new): remove the no longer needed assert for the use of address registers in register_merge (I was considering to add this to 8, but since that one was already reviewed ...) many thanks for any comments, Gert PS: I have no write access to mesa-git. Gert Wollny (10): mesa/program: Add missing file types to printout mesa/st/glsl_to_tgsi: Add some operators for glsl_to_tgsi related classes mesa/st/tests: Fix zero-byte allocation leaks mesa/st/tests: unify MockCodeLine* classes mesa/st/tests: cleanup whitespace usage and correct some comments mesa/st/glsl_to_tgsi: Add tracking of ifelse writes in register merging mesa/st/tests: Add tests for improved tracking of temporaries mesa/st/glsl_to_tgsi: Add tracking of indirect addressing registers mesa/st/tests: Add tests for lifetime tracking with indirect addressing mesa/st/glsl_to_tgsi: remove now unneeded assert. src/mesa/program/prog_print.c | 16 +- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 1 - src/mesa/state_tracker/st_glsl_to_tgsi_private.cpp | 166 +++ src/mesa/state_tracker/st_glsl_to_tgsi_private.h | 19 + .../state_tracker/st_glsl_to_tgsi_temprename.cpp | 517 +++++-- src/mesa/state_tracker/tests/Makefile.am | 7 + src/mesa/state_tracker/tests/st_tests_common.cpp | 486 +++++++ src/mesa/state_tracker/tests/st_tests_common.h | 173 +++ .../tests/test_glsl_to_tgsi_lifetime.cpp | 1419 +++++++++++--------- 9 files changed, 2052 insertions(+), 752 deletions(-) create mode 100644 src/mesa/state_tracker/tests/st_tests_common.cpp create mode 100644 src/mesa/state_tracker/tests/st_tests_common.h -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev