ipa: Avoid looking for IPA-SRA replacements where there are none
While modifying the code, I realized that we do look into statements even when there are no replacements. This patch adds the necessary early bail-outs to avoid that. ipa_param_body_adjustments::modify_call_stmt cannot have the same at the very beginning because calls can still contain otherwise removed parameters that need to be removed from the statements too. gcc/ChangeLog: 2022-11-11 Martin Jambor <mjambor@suse.cz> * ipa-param-manipulation.cc (ipa_param_body_adjustments::modify_expression): Bail out early if there are no replacements. (ipa_param_body_adjustments::modify_assignment): Likewise.
This commit is contained in:
@@ -1762,6 +1762,8 @@ ipa_param_body_adjustments::modify_expression (tree *expr_p, bool convert)
|
||||
{
|
||||
tree expr = *expr_p;
|
||||
|
||||
if (m_replacements.is_empty ())
|
||||
return false;
|
||||
if (TREE_CODE (expr) == BIT_FIELD_REF
|
||||
|| TREE_CODE (expr) == IMAGPART_EXPR
|
||||
|| TREE_CODE (expr) == REALPART_EXPR)
|
||||
@@ -1809,7 +1811,7 @@ ipa_param_body_adjustments::modify_assignment (gimple *stmt,
|
||||
tree *lhs_p, *rhs_p;
|
||||
bool any;
|
||||
|
||||
if (!gimple_assign_single_p (stmt))
|
||||
if (m_replacements.is_empty () || !gimple_assign_single_p (stmt))
|
||||
return false;
|
||||
|
||||
rhs_p = gimple_assign_rhs1_ptr (stmt);
|
||||
|
||||
Reference in New Issue
Block a user