- cvalue = ipcp_cval_get_cvalue (ipcp_method_cval (node, i));
- parm_tree = ipa_method_get_tree (node, i);
- if (type != CONST_VALUE_REF
- && !TREE_READONLY (parm_tree))
- ipcp_propagate_const (node1, i, cvalue, type);
+ type = ipcp_cval_get_cvalue_type (ipcp_method_cval (node, i));
+ if (ipcp_type_is_const (type))
+ {
+ cvalue = ipcp_cval_get_cvalue (ipcp_method_cval (node, i));
+ parm_tree = ipa_method_get_tree (node, i);
+ if (type != CONST_VALUE_REF && !is_gimple_reg (parm_tree))
+ ipcp_propagate_const (node1, i, cvalue, type);
+ }
+ }
+ if (gimple_in_ssa_p (cfun))
+ {
+ update_ssa (TODO_update_ssa);
+#ifdef ENABLE_CHECKING
+ verify_ssa (true);
+#endif