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

Erik Faye-Lund kusmabite at gmail.com
Mon Jan 20 08:42:53 PST 2014


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?


More information about the mesa-dev mailing list