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:
Martin Jambor
2022-12-14 00:33:06 +01:00
parent f2cf4c6121
commit 8a263116d4
+3 -1
View File
@@ -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);