Mesa (main): isaspec: Add prototypes for expr evaluators

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 16 19:12:51 UTC 2021


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

Author: Rob Clark <robdclark at chromium.org>
Date:   Sun Nov 14 12:00:07 2021 -0800

isaspec: Add prototypes for expr evaluators

Add function prototypes for generated expr evaluators, to avoid a use-
before-declaration issue if an expression references a derived field.

Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13787>

---

 src/compiler/isaspec/encode.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/compiler/isaspec/encode.py b/src/compiler/isaspec/encode.py
index bc19209e743..1bb0f925da6 100755
--- a/src/compiler/isaspec/encode.py
+++ b/src/compiler/isaspec/encode.py
@@ -464,6 +464,14 @@ ${s.expr_name(leaf.get_root(), expr)}(struct encode_state *s, struct bitset_para
 ## note, we can't just iterate all the expressions, but we need to find
 ## the context in which they are used to know the correct src type
 
+%for root in s.encode_roots():
+%   for leaf in s.encode_leafs(root):
+%      for expr in s.bitset_used_exprs(leaf):
+static inline int64_t ${s.expr_name(leaf.get_root(), expr)}(struct encode_state *s, struct bitset_params *p, ${leaf.get_root().encode.type} src);
+%      endfor
+%   endfor
+%endfor
+
 %for root in s.encode_roots():
 <%
     rendered_exprs = []



More information about the mesa-commit mailing list