[Mesa-dev] [PATCH 2/6] glsl: Optimize log(exp(x)) and exp(log(x)) into x.

Ian Romanick idr at freedesktop.org
Mon Jan 20 11:52:04 PST 2014


On 01/20/2014 08:42 AM, Erik Faye-Lund wrote:
> On Mon, Jan 20, 2014 at 5:39 PM, Eric Anholt <eric at anholt.net> wrote:
>> Erik Faye-Lund <kusmabite at gmail.com> writes:
>>
>>> On Mon, Jan 20, 2014 at 8:18 AM, Eric Anholt <eric at anholt.net> wrote:
>>>> ---
>>>>  src/glsl/opt_algebraic.cpp | 36 ++++++++++++++++++++++++++++++++++++
>>>>  1 file changed, 36 insertions(+)
>>>>
>>>> diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp
>>>> index 6b0d992..4aa49e5 100644
>>>> --- a/src/glsl/opt_algebraic.cpp
>>>> +++ b/src/glsl/opt_algebraic.cpp
>>>> @@ -252,6 +252,42 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir)
>>>>        }
>>>>        break;
>>>>
>>>> +   case ir_unop_exp:
>>>> +      if (op_expr[0] == NULL)
>>>> +        break;
>>>
>>> How can this happen?!
>>
>> If the first operand itself isn't an expression (for example, it's a
>> swizzle of something else).
> 
> But what is "something else"? The GLSL grammar defines the arguments
> to be assignment_expressions, so they should always be expressions,
> no?

ir_dereference isn't a subclass of ir_expression, for example.

> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list