mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 10:50:10 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
In NIR, comparison instructions always produce 0/~0 results. For other result types, a separate b2f32 or b2i32 instruction is used to transform the result. However, Mali's comparison instructions have modifiers for these alternate result types, so we can implement expressions like int(a < b) and float(a == b) in single instruction. Add a peephole optimization to fuse comparisons with result type transformations. Results on Mali-G52: total instructions in shared programs: 2439696 -> 2434339 (-0.22%) instructions in affected programs: 418703 -> 413346 (-1.28%) helped: 1630 HURT: 0 helped stats (abs) min: 1.0 max: 28.0 x̄: 3.29 x̃: 2 helped stats (rel) min: 0.11% max: 19.35% x̄: 1.64% x̃: 1.39% 95% mean confidence interval for instructions value: -3.44 -3.13 95% mean confidence interval for instructions %-change: -1.72% -1.56% Instructions are helped. total tuples in shared programs: 1946581 -> 1943005 (-0.18%) tuples in affected programs: 251742 -> 248166 (-1.42%) helped: 1113 HURT: 11 helped stats (abs) min: 1.0 max: 32.0 x̄: 3.23 x̃: 2 helped stats (rel) min: 0.17% max: 15.38% x̄: 1.80% x̃: 1.38% HURT stats (abs) min: 1.0 max: 2.0 x̄: 1.45 x̃: 1 HURT stats (rel) min: 0.21% max: 3.12% x̄: 1.23% x̃: 0.89% 95% mean confidence interval for tuples value: -3.35 -3.01 95% mean confidence interval for tuples %-change: -1.88% -1.66% Tuples are helped. total clauses in shared programs: 357791 -> 357349 (-0.12%) clauses in affected programs: 15879 -> 15437 (-2.78%) helped: 371 HURT: 3 helped stats (abs) min: 1.0 max: 8.0 x̄: 1.20 x̃: 1 helped stats (rel) min: 0.80% max: 33.33% x̄: 3.85% x̃: 2.17% HURT stats (abs) min: 1.0 max: 1.0 x̄: 1.00 x̃: 1 HURT stats (rel) min: 2.94% max: 5.26% x̄: 4.49% x̃: 5.26% 95% mean confidence interval for clauses value: -1.27 -1.09 95% mean confidence interval for clauses %-change: -4.21% -3.36% Clauses are helped. total cycles in shared programs: 167922.04 -> 167810.71 (-0.07%) cycles in affected programs: 6772.08 -> 6660.75 (-1.64%) helped: 655 HURT: 12 helped stats (abs) min: 0.041665999999999315 max: 1.3333319999999986 x̄: 0.17 x̃: 0 helped stats (rel) min: 0.18% max: 20.00% x̄: 2.02% x̃: 1.60% HURT stats (abs) min: 0.041665999999999315 max: 0.125 x̄: 0.05 x̃: 0 HURT stats (rel) min: 0.21% max: 3.80% x̄: 1.23% x̃: 0.88% 95% mean confidence interval for cycles value: -0.18 -0.16 95% mean confidence interval for cycles %-change: -2.10% -1.81% Cycles are helped. total arith in shared programs: 74393.17 -> 74243.08 (-0.20%) arith in affected programs: 10157.50 -> 10007.42 (-1.48%) helped: 1129 HURT: 12 helped stats (abs) min: 0.041665999999999315 max: 1.3333319999999986 x̄: 0.13 x̃: 0 helped stats (rel) min: 0.18% max: 50.00% x̄: 1.94% x̃: 1.40% HURT stats (abs) min: 0.041665999999999315 max: 0.125 x̄: 0.05 x̃: 0 HURT stats (rel) min: 0.21% max: 3.80% x̄: 1.23% x̃: 0.88% 95% mean confidence interval for arith value: -0.14 -0.12 95% mean confidence interval for arith %-change: -2.06% -1.76% Arith are helped. total quadwords in shared programs: 1692019 -> 1688164 (-0.23%) quadwords in affected programs: 216669 -> 212814 (-1.78%) helped: 1148 HURT: 11 helped stats (abs) min: 1.0 max: 41.0 x̄: 3.37 x̃: 2 helped stats (rel) min: 0.17% max: 17.24% x̄: 2.25% x̃: 1.73% HURT stats (abs) min: 1.0 max: 2.0 x̄: 1.09 x̃: 1 HURT stats (rel) min: 0.60% max: 1.32% x̄: 0.85% x̃: 0.83% 95% mean confidence interval for quadwords value: -3.49 -3.16 95% mean confidence interval for quadwords %-change: -2.33% -2.10% Quadwords are helped. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16725> |
||
|---|---|---|
| .gitlab/issue_templates | ||
| .gitlab-ci | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| src | ||
| subprojects | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .mailmap | ||
| .travis.yml | ||
| CODEOWNERS | ||
| meson.build | ||
| meson_options.txt | ||
| README.rst | ||
| VERSION | ||
`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library ====================================================== Source ------ This repository lives at https://gitlab.freedesktop.org/mesa/mesa. Other repositories are likely forks, and code found there is not supported. Build & install --------------- You can find more information in our documentation (`docs/install.rst <https://mesa3d.org/install.html>`_), but the recommended way is to use Meson (`docs/meson.rst <https://mesa3d.org/meson.html>`_): .. code-block:: sh $ mkdir build $ cd build $ meson .. $ sudo ninja install Support ------- Many Mesa devs hang on IRC; if you're not sure which channel is appropriate, you should ask your question on `OFTC's #dri-devel <irc://irc.oftc.net/dri-devel>`_, someone will redirect you if necessary. Remember that not everyone is in the same timezone as you, so it might take a while before someone qualified sees your question. To figure out who you're talking to, or which nick to ping for your question, check out `Who's Who on IRC <https://dri.freedesktop.org/wiki/WhosWho/>`_. The next best option is to ask your question in an email to the mailing lists: `mesa-dev\@lists.freedesktop.org <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_ Bug reports ----------- If you think something isn't working properly, please file a bug report (`docs/bugs.rst <https://mesa3d.org/bugs.html>`_). Contributing ------------ Contributions are welcome, and step-by-step instructions can be found in our documentation (`docs/submittingpatches.rst <https://mesa3d.org/submittingpatches.html>`_). Note that Mesa uses gitlab for patches submission, review and discussions.