Hello, > > 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. > > OK, thanks for the explanation. > > > 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. > > I agree on the fewer VCE expressions goal (and I have an upcoming gigi change > to that effect) but some of them are essentially mandated by the RTL level > and, since GENERIC & GIMPLE are ultimately lowered to RTL, they need to take > that into account IMO. So, if the mode change is not really necessary for > the > rest of the work, I'd restore the mode check (and this only affects Ada in > practice since apparently only the Ada compiler fiddles with the type mode).
Why is Ada fliddling with the modes? Is it only for packed structures? I was wondering how to produce VCE convesions of aggregates with C frontend at all (that is getting them synthetized by the middle-end) to get non-ada testcases. Storing through union is never folded to one and I don't see any other obvious way of getting them. Perhaps it may be possible to get them via inliner on incompatible parameter and LTO, but that seems to be the only case I can think of right now. I am testing the change to compare modes and revert the two expr.c changes. Lets see what is Richard's opinion. The whole concept of modes on aggregate types is bit funny post-tree-ssa days when we do SRA. I suppose they may be tied to calling conventions, but should no longer be needed for code quality? Honza > > -- > Eric Botcazou