[Mesa-dev] [PATCH 1/3] i965/vec4: Call opt_algebraic after opt_cse.
Anuj Phogat
anuj.phogat at gmail.com
Tue Sep 30 14:05:21 PDT 2014
On Sat, Sep 27, 2014 at 12:12 PM, Matt Turner <mattst88 at gmail.com> wrote:
> The next patch adds an algebraic optimization for the pattern
>
> sqrt a, b
> rcp c, a
>
> and turns it into
>
> sqrt a, b
> rsq c, b
>
> but many vertex shaders do
>
> a = sqrt(b);
> var1 /= a;
> var2 /= a;
>
> which generates
>
> sqrt a, b
> rcp c, a
> rcp d, a
>
> If we apply the algebraic optimization before CSE, we'll end up with
>
> sqrt a, b
> rsq c, b
> rcp d, a
>
> Applying CSE combines the RCP instructions, preventing this from
> happening.
>
> No shader-db changes.
> ---
> src/mesa/drivers/dri/i965/brw_vec4.cpp | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> index 022ed37..e0a3d5f 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> @@ -1790,8 +1790,8 @@ vec4_visitor::run()
> OPT(dead_code_eliminate);
> OPT(dead_control_flow_eliminate, this);
> OPT(opt_copy_propagation);
> - OPT(opt_algebraic);
> OPT(opt_cse);
> + OPT(opt_algebraic);
> OPT(opt_register_coalesce);
> } while (progress);
>
> --
> 1.8.5.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
For the series:
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
More information about the mesa-dev
mailing list