mailer added html again...
----------------------------------------
When trying some of my updated prototype changes on trunk, the code
tripped over this segment in ipa-prop.c :
lhs = gimple_assign_lhs (stmt);
rhs = gimple_assign_rhs1 (stmt);
if (!is_gimple_reg_type (rhs)
|| TREE_CODE (lhs) == BIT_FIELD_REF
|| contains_bitfld_component_ref_p (lhs))
break;
I had converted "gimple_reg_type(tree)" to instead be "gimple_reg_type
(gimple_type)", and during bootstrap it conked out because it received
an SSA_NAME instead of a type.
static inline bool
is_gimple_reg_type (tree type)
{
return !AGGREGATE_TYPE_P (type);
}
It never triggered before because AGGREGATE_TYPE_P(TYPE) just checks
the tree codes, and doesn't do a TYPE_CHECK()
#define AGGREGATE_TYPE_P(TYPE) \
(TREE_CODE (TYPE) == ARRAY_TYPE || RECORD_OR_UNION_TYPE_P (TYPE))
I think it should probably be passing TREE_TYPE (rhs) liek so ?
Andrew
Index: ipa-prop.c
===================================================================
*** ipa-prop.c (revision 205351)
--- ipa-prop.c (working copy)
*************** determine_known_aggregate_parts (gimple
*** 1424,1430 ****
lhs = gimple_assign_lhs (stmt);
rhs = gimple_assign_rhs1 (stmt);
! if (!is_gimple_reg_type (rhs)
|| TREE_CODE (lhs) == BIT_FIELD_REF
|| contains_bitfld_component_ref_p (lhs))
break;
--- 1424,1430 ----
lhs = gimple_assign_lhs (stmt);
rhs = gimple_assign_rhs1 (stmt);
! if (!is_gimple_reg_type (TREE_TYPE (rhs))
|| TREE_CODE (lhs) == BIT_FIELD_REF
|| contains_bitfld_component_ref_p (lhs))
break;