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:
Aditya Kumar 2015-05-22 09:10:29 +00:00 committed by Richard Biener
parent 476c12802d
commit 9dbe0d83c8
2 changed files with 23 additions and 28 deletions

View File

@ -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

View File

@ -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;