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

Author: Marek Olšák <[email protected]>
Date:   Thu Aug 11 09:27:52 2022 -0400

gl_marshal.py: remove the -O1 hack and manual SET_* inlining

The compile times aren't so bad anymore now that the initialization is
split among all 8 files.

Also add one assertion.

Acked-By: Mike Blumenkrantz <[email protected]>
Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18199>

---

 src/mapi/glapi/gen/gl_marshal.py | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/mapi/glapi/gen/gl_marshal.py b/src/mapi/glapi/gen/gl_marshal.py
index f1f355b62ab..b87c45bcfd3 100644
--- a/src/mapi/glapi/gen/gl_marshal.py
+++ b/src/mapi/glapi/gen/gl_marshal.py
@@ -192,6 +192,7 @@ class PrintCode(gl_XML.gl_print_base):
         val = mapping.get(str, 9999)
         if val == 9999:
             print('Unhandled type in gl_marshal.py.get_type_size: ' + str, 
file=sys.stderr)
+            assert False
         return val
 
     def print_async_struct(self, func):
@@ -367,10 +368,6 @@ class PrintCode(gl_XML.gl_print_base):
         out('')
 
     def print_init_marshal_table(self, functions):
-        out('/* _mesa_create_marshal_table takes a long time to compile with 
-O2 */')
-        out('#if defined(__GNUC__) && !defined(__clang__)')
-        out('__attribute__((optimize("O1")))')
-        out('#endif')
         out('void')
         out('_mesa_glthread_init_dispatch%u(struct gl_context *ctx, '
                                            'struct _glapi_table *table)' % 
file_index)
@@ -385,12 +382,8 @@ class PrintCode(gl_XML.gl_print_base):
                 if not condition:
                     continue
 
-                # Don't use the SET_* functions, because they increase compile 
time
-                # by 20 seconds (on Ryzen 1700X).
                 settings_by_condition[condition].append(
-                    ('if (_gloffset_{0} >= 0)\n' +
-                     '   ((_glapi_proc *)table)[_gloffset_{0}] =' +
-                     ' (_glapi_proc)_mesa_marshal_{0};').format(func.name))
+                    'SET_{0}(table, _mesa_marshal_{0});'.format(func.name))
 
             # Print out an if statement for each unique condition, with
             # the SET_* calls nested inside it.

Reply via email to