re PR middle-end/56483 (LTO issue with expanding GIMPLE_COND)
2013-03-18 Richard Biener <rguenther@suse.de> PR middle-end/56483 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p and implement properly. * gimple.h (gimple_cond_single_var_p): Remove. From-SVN: r196776
This commit is contained in:
parent
fcac74a177
commit
31348d52c0
|
@ -1,3 +1,10 @@
|
|||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/56483
|
||||
* cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
|
||||
and implement properly.
|
||||
* gimple.h (gimple_cond_single_var_p): Remove.
|
||||
|
||||
2013-03-18 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* tree-data-ref.h (find_data_references_in_loop): Declare.
|
||||
|
|
|
@ -1886,9 +1886,14 @@ expand_gimple_cond (basic_block bb, gimple stmt)
|
|||
be cleaned up by combine. But some pattern matchers like if-conversion
|
||||
work better when there's only one compare, so make up for this
|
||||
here as special exception if TER would have made the same change. */
|
||||
if (gimple_cond_single_var_p (stmt)
|
||||
&& SA.values
|
||||
if (SA.values
|
||||
&& TREE_CODE (op0) == SSA_NAME
|
||||
&& TREE_CODE (TREE_TYPE (op0)) == BOOLEAN_TYPE
|
||||
&& TREE_CODE (op1) == INTEGER_CST
|
||||
&& ((gimple_cond_code (stmt) == NE_EXPR
|
||||
&& integer_zerop (op1))
|
||||
|| (gimple_cond_code (stmt) == EQ_EXPR
|
||||
&& integer_onep (op1)))
|
||||
&& bitmap_bit_p (SA.values, SSA_NAME_VERSION (op0)))
|
||||
{
|
||||
gimple second = SSA_NAME_DEF_STMT (op0);
|
||||
|
|
17
gcc/gimple.h
17
gcc/gimple.h
|
@ -2750,23 +2750,6 @@ gimple_cond_false_p (const_gimple gs)
|
|||
return false;
|
||||
}
|
||||
|
||||
/* Check if conditional statement GS is of the form 'if (var != 0)' or
|
||||
'if (var == 1)' */
|
||||
|
||||
static inline bool
|
||||
gimple_cond_single_var_p (gimple gs)
|
||||
{
|
||||
if (gimple_cond_code (gs) == NE_EXPR
|
||||
&& gimple_cond_rhs (gs) == boolean_false_node)
|
||||
return true;
|
||||
|
||||
if (gimple_cond_code (gs) == EQ_EXPR
|
||||
&& gimple_cond_rhs (gs) == boolean_true_node)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Set the code, LHS and RHS of GIMPLE_COND STMT from CODE, LHS and RHS. */
|
||||
|
||||
static inline void
|
||||
|
|
Loading…
Reference in New Issue