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
This commit is contained in:
parent
19b493f714
commit
fd95ee7ca0
|
@ -1,3 +1,9 @@
|
|||
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))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue