On 12/21/2017 10:50 AM, Jakub Jelinek wrote:
> Hi!
> 
> The problem here is that the code expects fold_build1 will actually not
> fold, because using gimple_build_assign (..., VIEW_CONVERT_EXPR, temp);
> is valid only if TREE_CODE (temp) == VIEW_CONVERT_EXPR.
> So, either we can replace the fold_build1 with build1, or we should just
> use the gimple_build_assign overload that will handle even what
> <view_convert_expr <SSA_NAME_result_of_phi>> will fold to (in this case
> a <nop_expr <SSA_NAME_result_of_phi>>).
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
> 
> 2017-12-21  Jakub Jelinek  <ja...@redhat.com>
> 
>       PR tree-optimization/83521
>       * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
>       gimple_build_assign without code on result of
>       fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
>       a VIEW_CONVERT_EXPR.
> 
>       * gcc.dg/pr83521.c: New test.
OK.
jeff

Reply via email to