ipa-cp: Do not consider useless aggregate constants

When building vectors of known aggregate values, there is no point in
including those for parameters which are not used in any way
whatsoever.  This patch avoids that together with also other kinds of
constants.

gcc/ChangeLog:

2022-11-13  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.cc (push_agg_values_from_edge): Do not consider constants
	in unused aggregate parameters.
diff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc
index f0feb4b..d5230c7 100644
--- a/gcc/ipa-cp.cc
+++ b/gcc/ipa-cp.cc
@@ -5785,7 +5785,8 @@
 	}
 
       ipcp_param_lattices *plats = ipa_get_parm_lattices (dest_info, index);
-      if (plats->aggs_bottom)
+      if (!ipa_is_param_used (dest_info, index)
+	  || plats->aggs_bottom)
 	continue;
       push_agg_values_for_index_from_edge (cs, index, res,
 					   optimize_self_recursion ? interim
@@ -6151,6 +6152,9 @@
 
   for (i = 0; i < count;i++)
     {
+      if (!ipa_is_param_used (info, i))
+	continue;
+
       class ipcp_param_lattices *plats = ipa_get_parm_lattices (info, i);
       ipcp_lattice<tree> *lat = &plats->itself;
       ipcp_lattice<ipa_polymorphic_call_context> *ctxlat = &plats->ctxlat;