nir/variable: Remove the constant_value field
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 19 Dec 2014 22:55:45 +0000 (14:55 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 15 Jan 2015 15:20:23 +0000 (07:20 -0800)
This was a left-over relic of GLSL IR that we aren't using for anything.
If we ever want that value again, we can add it back, but NIR constant
folding should be just as good as GLSL IR's if not better pretty soon, so
I'm not worried about it.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
src/glsl/nir/glsl_to_nir.cpp
src/glsl/nir/nir.h

index d0737d01db16a3dc5581a0d193f37f834c7e41a8..372f219f4f46096aec2714c6c323e7fa24de5d4e 100644 (file)
@@ -344,7 +344,6 @@ nir_visitor::visit(ir_variable *ir)
       var->state_slots = NULL;
    }
 
-   var->constant_value = constant_copy(ir->constant_value, var);
    var->constant_initializer = constant_copy(ir->constant_initializer, var);
 
    var->interface_type = ir->get_interface_type();
@@ -1745,8 +1744,8 @@ nir_visitor::visit(ir_constant *ir)
 {
    /*
     * We don't know if this variable is an an array or struct that gets
-    * dereferenced, so do the safe thing an make it a variable and return a
-    * dereference.
+    * dereferenced, so do the safe thing an make it a variable with a
+    * constant initializer and return a dereference.
     */
 
    nir_variable *var = ralloc(this->shader, nir_variable);
@@ -1754,7 +1753,6 @@ nir_visitor::visit(ir_constant *ir)
    var->type = ir->type;
    var->data.mode = nir_var_local;
    var->data.read_only = true;
-   var->constant_value = constant_copy(ir, var);
    var->constant_initializer = constant_copy(ir, var);
    exec_list_push_tail(&this->impl->locals, &var->node);
 
index 56b6ab0ed7e7773cbcc36533b636babbf98d06fe..923b53366f2cb1a6db8c3e2372ff362849d9abdc 100644 (file)
@@ -200,8 +200,8 @@ typedef struct {
       /**
        * Was an initial binding explicitly set in the shader?
        *
-       * If so, constant_value contains an integer ir_constant representing the
-       * initial binding point.
+       * If so, constant_initializer contains an integer nir_constant
+       * representing the initial binding point.
        */
       unsigned explicit_binding:1;
 
@@ -342,18 +342,8 @@ typedef struct {
    nir_state_slot *state_slots;  /**< State descriptors. */
    /*@}*/
 
-   /**
-    * Value assigned in the initializer of a variable declared "const"
-    */
-   nir_constant *constant_value;
-
    /**
     * Constant expression assigned in the initializer of the variable
-    *
-    * \warning
-    * This field and \c ::constant_value are distinct.  Even if the two fields
-    * refer to constants with the same value, they must point to separate
-    * objects.
     */
    nir_constant *constant_initializer;