> >And AFAIK nobody answered the question: what do we gain by making this > >change? > >So far I have only seen breakages, suspicious fixes and code > >duplication... > > Honza wants the structural equality predicate (operand_equal_p) complete > (optimistically) for GIMPLE.
There are two independent things - operand_equal_p changes and useless_type_conversion changes. operand_equal_p =============== What I want to do is to merge logic of ipa-icf-gimple's func_checker::compare_operand and operand_equal_p so we don't have two incomplette and duplicated ways to say if two gimple operands are equal, but one that does it right. Main problem of func_checker::compare_operand is that it is confused about matching types, producing too many false negatives. Because ipa-icf works as a propagation engine, gving up on one equivalnce leads to a cascaded effect. operand_equal_p does handle types better, but on the other hand it does not handle few trees that we need to match. - CONSTRUCTOR - VIEW_CONVERT_EXPR - OBJ_TYPE_REF The plan is to add these into operand_equal_p and implement interface for valueizing hook that can be used by ipa-icf-gimple to match objects cross function boundary (for example say that two SSA_NAMEs are equal) and drop func_checker::compare_operand usless_type_conversion ====================== I was only tracking one isse I hit: Fortran/C interoperability nees LTO to produce same TYPE_CANONICAl for signed and unsigned version of size_t. Doing so broke useless_type_conversion because it used TYPE_CANONICAL. We discussed the topic on the GNU Cauldron and decided that it is cleaner to drop TYPE_CANONICAL from useless_type_conversion because it does not really belong there. That is only change I plan into the area. The decision to drop comparsion of TYPE_MODE from the aggregate path was decision of the discussion about this particular patch and I do not really insist on it. Having fewer VCE expressions in the code is not a bad thing, but I do not really see it as an important change. I am sorry for the breakage in move expansion that I hoped to not be as important. I am willing to continue fixing the fallout (and be more cureful about it - obviously I originally underestimated the issue). I am also happy with simply adding back the mode checking and drop the changes we did to expr.c so far. Honza