diff options
author | Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> | 2020-12-06 22:44:06 -0500 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-12-23 17:06:56 +0000 |
commit | 6d81df6e0c781a1080ede0cbcd45c19d256b0f62 (patch) | |
tree | ab94f9f079c92cd1f3c773afe83f6548176cd417 | |
parent | b45978c8e1c0af55f31f18c51444b5f670aa1f74 (diff) |
pan/bi: Mark some instructions as unused
Certain transcendental instructions are not even possible to generate
since these bits are lowered away before the Bifrost backend is touched,
as far as I know.
Job management instructions (most interestingly DOORBELL) do not
correspond to OpenGL/OpenCL/Vulkan.
Segment arithmetic seems mostly useless for real code, any actual use
case I can think of is already covered by indirect loads/stores which
does the segment arithmetic implicitly. I've never seen this in blob
code, probably just a future proofing thing.
Dropping these instructions corresponds to a 3% reduction in generated
lines of code for the printer, builder, and packer for the new IR. Not a
terrible yield for functionality we'll likely never need.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8213>
-rw-r--r-- | src/panfrost/bifrost/ISA.xml | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/panfrost/bifrost/ISA.xml b/src/panfrost/bifrost/ISA.xml index 9723a7e7a09..9a5df1b2df5 100644 --- a/src/panfrost/bifrost/ISA.xml +++ b/src/panfrost/bifrost/ISA.xml @@ -2319,7 +2319,7 @@ </mod> </ins> - <ins name="*SEG_ADD" mask="0x7fff40" exact="0x701500"> + <ins name="*SEG_ADD" mask="0x7fff40" exact="0x701500" unused="true"> <src start="0" mask="0xfb"/> <mod name="seg" start="3" size="3"> <reserved/> @@ -2334,7 +2334,7 @@ <mod name="preserve_null" start="7" size="1" opt="preserve_null"/> </ins> - <ins name="*SEG_SUB" mask="0x7fff40" exact="0x701540"> + <ins name="*SEG_SUB" mask="0x7fff40" exact="0x701540" unused="true"> <src start="0" mask="0xfb"/> <mod name="seg" start="3" size="3"> <reserved/> @@ -3823,11 +3823,11 @@ </swap> </ins> - <ins name="+DOORBELL" mask="0xffff8" exact="0xd7860"> + <ins name="+DOORBELL" mask="0xffff8" exact="0xd7860" unused="true"> <src start="0"/> </ins> - <ins name="+EUREKA" mask="0xffff8" exact="0xd7850"> + <ins name="+EUREKA" mask="0xffff8" exact="0xd7850" unused="true"> <src start="0"/> </ins> @@ -4115,7 +4115,7 @@ </derived> </ins> - <ins name="+FATAN_ASSIST.f16" mask="0xfff00" exact="0x67800"> + <ins name="+FATAN_ASSIST.f16" mask="0xfff00" exact="0x67800" unused="true"> <src start="0" mask="0xf7"/> <src start="3" mask="0xf7"/> <mod name="lane1" start="6" size="1" default="h0"> @@ -4128,12 +4128,12 @@ </mod> </ins> - <ins name="+FATAN_ASSIST.f32" mask="0xfffc0" exact="0x67a00"> + <ins name="+FATAN_ASSIST.f32" mask="0xfffc0" exact="0x67a00" unused="true"> <src start="0" mask="0xf7"/> <src start="3" mask="0xf7"/> </ins> - <ins name="+FATAN_TABLE.f16" mask="0xfff00" exact="0x67900"> + <ins name="+FATAN_TABLE.f16" mask="0xfff00" exact="0x67900" unused="true"> <src start="0" mask="0xf7"/> <src start="3" mask="0xf7"/> <mod name="lane1" start="6" size="1" default="h0"> @@ -4146,7 +4146,7 @@ </mod> </ins> - <ins name="+FATAN_TABLE.f32" mask="0xfffc0" exact="0x67a40"> + <ins name="+FATAN_TABLE.f32" mask="0xfffc0" exact="0x67a40" unused="true"> <src start="0" mask="0xf7"/> <src start="3" mask="0xf7"/> </ins> @@ -4668,7 +4668,7 @@ </mod> </ins> - <ins name="+FRCBRT_APPROX_A.f32"> + <ins name="+FRCBRT_APPROX_A.f32" unused="true"> <src start="0" mask="0xf7"/> <mod name="widen0" size="2"> <opt>none</opt> @@ -4690,11 +4690,11 @@ </encoding> </ins> - <ins name="+FRCBRT_APPROX_B.f32" mask="0xffff8" exact="0x67ab0"> + <ins name="+FRCBRT_APPROX_B.f32" mask="0xffff8" exact="0x67ab0" unused="true"> <src start="0" mask="0xf7"/> </ins> - <ins name="+FRCBRT_APPROX_C.f32" mask="0xffff8" exact="0x67ab8"> + <ins name="+FRCBRT_APPROX_C.f32" mask="0xffff8" exact="0x67ab8" unused="true"> <src start="0" mask="0xf7"/> </ins> @@ -6157,7 +6157,7 @@ <src start="6" mask="0xf7"/> </ins> - <ins name="+KABOOM" mask="0xffff8" exact="0xd7858"> + <ins name="+KABOOM" mask="0xffff8" exact="0xd7858" unused="true"> <src start="0"/> </ins> @@ -7451,7 +7451,7 @@ </mod> </ins> - <ins name="+SEG_ADD" mask="0xfff40" exact="0x3d500"> + <ins name="+SEG_ADD" mask="0xfff40" exact="0x3d500" unused="true"> <src start="0"/> <mod name="seg" start="3" size="3"> <reserved/> @@ -7466,7 +7466,7 @@ <mod name="preserve_null" start="7" size="1" opt="preserve_null"/> </ins> - <ins name="+SEG_SUB" mask="0xfff40" exact="0x3d540"> + <ins name="+SEG_SUB" mask="0xfff40" exact="0x3d540" unused="true"> <src start="0"/> <mod name="seg" start="3" size="3"> <reserved/> |