glsl: Replace most assertions with unreachable()
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 19 Jul 2016 00:38:19 +0000 (17:38 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 30 Aug 2016 23:28:03 +0000 (16:28 -0700)
   text    data     bss     dec     hex filename
7669233  277176   28624 7975033  79b079 i965_dri.so before generated code
7647081  277176   28624 7952881  7959f1 i965_dri.so before this commit
7669289  277176   28624 7975089  79b0b1 i965_dri.so with this commit

Looking at the generated assembly, it appears that some of changes made
in the generated code prevent some loops from being unrolled.  Removing
the default cases (via unreachable()) allows these loops to unroll again.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/compiler/glsl/ir_expression_operation.py

index d5a06f864eb429b284fb80e8c37698018b621efb..43ba46e4086b9ebfd00671de12235361c7773ead 100644 (file)
@@ -103,7 +103,7 @@ constant_template_common = mako.template.Template("""\
             break;
     % endfor
          default:
-            assert(0);
+            unreachable("invalid type");
          }
       }
       break;""")
@@ -134,7 +134,7 @@ constant_template_vector_scalar = mako.template.Template("""\
             break;
     % endfor
          default:
-            assert(0);
+            unreachable("invalid type");
          }
       }
       break;""")
@@ -157,7 +157,7 @@ constant_template_mul = mako.template.Template("""\
                break;
     % endfor
             default:
-               assert(0);
+               unreachable("invalid type");
             }
          }
       } else {
@@ -215,7 +215,7 @@ constant_template_horizontal = mako.template.Template("""\
          break;
     % endfor
       default:
-         assert(0);
+         unreachable("invalid type");
       }
       break;""")
 
@@ -232,7 +232,7 @@ constant_template_vector_extract = mako.template.Template("""\
          break;
     % endfor
       default:
-         assert(0);
+         unreachable("invalid type");
       }
       break;
    }""")
@@ -251,8 +251,7 @@ constant_template_vector_insert = mako.template.Template("""\
          break;
     % endfor
       default:
-         assert(!"Should not get here.");
-         break;
+         unreachable("invalid type");
       }
       break;
    }""")
@@ -268,7 +267,7 @@ constant_template_vector = mako.template.Template("""\
             break;
     % endfor
          default:
-            assert(0);
+            unreachable("invalid type");
          }
       }
       break;""")
@@ -292,7 +291,7 @@ constant_template_lrp = mako.template.Template("""\
             break;
     % endfor
          default:
-            assert(0);
+            unreachable("invalid type");
          }
       }
       break;
@@ -311,7 +310,7 @@ constant_template_csel = mako.template.Template("""\
             break;
     % endfor
          default:
-            assert(0);
+            unreachable("invalid type");
          }
       }
       break;""")