generate_builtins.py: Clean up generated output a bit.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 18 Aug 2010 20:17:27 +0000 (13:17 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 18 Aug 2010 20:20:41 +0000 (13:20 -0700)
This should make it easier to diff the output, clean up some of the
insane whitespace, and make the strings a bit smaller.

We'll probably need to split up the prototype strings eventually, but
for now, this gets it under the 65K mark.

src/glsl/builtins/tools/generate_builtins.py

index 2eb67e398a6ab51550e937626185e0effa07d152..6c3892269aff0c5708d56269fd34596a75921021 100755 (executable)
@@ -38,6 +38,14 @@ def run_compiler(args):
     command = [compiler_path, '--dump-lir'] + args
     p = Popen(command, 1, stdout=PIPE, shell=False)
     output = p.communicate()[0]
+
+    # Clean up output a bit by killing whitespace before a closing paren.
+    kill_paren_whitespace = re.compile(r'[ \n]*\)', re.MULTILINE);
+    output = kill_paren_whitespace.sub(')', output);
+
+    # Also toss any duplicate newlines
+    output = output.replace('\n\n', '\n')
+
     return (output, p.returncode)
 
 def write_profile(filename, profile):
@@ -51,6 +59,10 @@ def write_profile(filename, profile):
     kill_globals = re.compile(r'^\(declare.*\n', re.MULTILINE);
     proto_ir = kill_globals.sub('', proto_ir)
 
+    # Kill pointer addresses.  They're not necessary in prototypes and just
+    # clutter the diff output.
+    proto_ir = re.sub(r'@0x[0-9a-f]+', '', proto_ir);
+
     print 'static const char *prototypes_for_' + profile + ' ='
     print stringify(proto_ir), ';'