gimple.h (gimple_expr_type): Refactor to make it concise.
2015-05-22 hiraditya <hiraditya@msn.com> * gimple.h (gimple_expr_type): Refactor to make it concise. Remove redundant if. From-SVN: r223529
This commit is contained in:
parent
476c12802d
commit
9dbe0d83c8
|
@ -1,3 +1,8 @@
|
|||
2015-05-22 hiraditya <hiraditya@msn.com>
|
||||
|
||||
* gimple.h (gimple_expr_type): Refactor to make it concise. Remove
|
||||
redundant if.
|
||||
|
||||
2015-05-22 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/65701
|
||||
|
|
46
gcc/gimple.h
46
gcc/gimple.h
|
@ -5717,36 +5717,26 @@ static inline tree
|
|||
gimple_expr_type (const_gimple stmt)
|
||||
{
|
||||
enum gimple_code code = gimple_code (stmt);
|
||||
|
||||
if (code == GIMPLE_ASSIGN || code == GIMPLE_CALL)
|
||||
/* In general we want to pass out a type that can be substituted
|
||||
for both the RHS and the LHS types if there is a possibly
|
||||
useless conversion involved. That means returning the
|
||||
original RHS type as far as we can reconstruct it. */
|
||||
if (code == GIMPLE_CALL)
|
||||
{
|
||||
tree type;
|
||||
/* In general we want to pass out a type that can be substituted
|
||||
for both the RHS and the LHS types if there is a possibly
|
||||
useless conversion involved. That means returning the
|
||||
original RHS type as far as we can reconstruct it. */
|
||||
if (code == GIMPLE_CALL)
|
||||
{
|
||||
const gcall *call_stmt = as_a <const gcall *> (stmt);
|
||||
if (gimple_call_internal_p (call_stmt)
|
||||
&& gimple_call_internal_fn (call_stmt) == IFN_MASK_STORE)
|
||||
type = TREE_TYPE (gimple_call_arg (call_stmt, 3));
|
||||
else
|
||||
type = gimple_call_return_type (call_stmt);
|
||||
}
|
||||
const gcall *call_stmt = as_a <const gcall *> (stmt);
|
||||
if (gimple_call_internal_p (call_stmt)
|
||||
&& gimple_call_internal_fn (call_stmt) == IFN_MASK_STORE)
|
||||
return TREE_TYPE (gimple_call_arg (call_stmt, 3));
|
||||
else
|
||||
switch (gimple_assign_rhs_code (stmt))
|
||||
{
|
||||
case POINTER_PLUS_EXPR:
|
||||
type = TREE_TYPE (gimple_assign_rhs1 (stmt));
|
||||
break;
|
||||
|
||||
default:
|
||||
/* As fallback use the type of the LHS. */
|
||||
type = TREE_TYPE (gimple_get_lhs (stmt));
|
||||
break;
|
||||
}
|
||||
return type;
|
||||
return gimple_call_return_type (call_stmt);
|
||||
}
|
||||
else if (code == GIMPLE_ASSIGN)
|
||||
{
|
||||
if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
|
||||
return TREE_TYPE (gimple_assign_rhs1 (stmt));
|
||||
else
|
||||
/* As fallback use the type of the LHS. */
|
||||
return TREE_TYPE (gimple_get_lhs (stmt));
|
||||
}
|
||||
else if (code == GIMPLE_COND)
|
||||
return boolean_type_node;
|
||||
|
|
Loading…
Reference in New Issue