Commit fd95ee7c by Richard Guenther Committed by Uros Bizjak

tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond" before forcing…

tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond" before forcing it to gimple operand.

        * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
        before forcing it to gimple operand.


Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r126692
parent 19b493f7
2007-07-16 Richard Guenther <rguenther@suse.de>
Uros Bizjak <ubizjak@gmail.com>
* tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
before forcing it to gimple operand.
2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
David Ung <davidu@mips.com>
......
......@@ -751,7 +751,7 @@ find_phi_replacement_condition (struct loop *loop,
if (TREE_CODE (*cond) == TRUTH_NOT_EXPR)
/* We can be smart here and choose inverted
condition without switching bbs. */
*cond = invert_truthvalue (*cond);
*cond = invert_truthvalue (*cond);
else
/* Select non loop header bb. */
first_edge = second_edge;
......@@ -770,9 +770,11 @@ find_phi_replacement_condition (struct loop *loop,
/* Create temp. for the condition. Vectorizer prefers to have gimple
value as condition. Various targets use different means to communicate
condition in vector compare operation. Using gimple value allows compiler
to emit vector compare and select RTL without exposing compare's result. */
*cond = force_gimple_operand_bsi (bsi, *cond, false, NULL_TREE,
condition in vector compare operation. Using gimple value allows
compiler to emit vector compare and select RTL without exposing
compare's result. */
*cond = force_gimple_operand_bsi (bsi, unshare_expr (*cond),
false, NULL_TREE,
true, BSI_SAME_STMT);
if (!is_gimple_reg (*cond) && !is_gimple_condexpr (*cond))
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment