Do not use TYPE_CANONICAL in useless_type_conversion
Eric Botcazou
ebotcazou@adacore.com
Fri Oct 2 08:37:00 GMT 2015
> I believe TYPE_ALIGN_OK should be "lowered" so that if you have a
> handled-component chain with some intermediate TYPE_ALIGN_OK you
> lower it to taking the address of that component and dereferencing
> it (which is where the middle-end always trusts the alignment of
> the type of the dereference). I don't think we honor TYPE_ALIGN_OK
> "ok" everywhere ("ok" in the optimistic sense).
In the original design, TYPE_ALIGN_OK need not be honored or acted upon, it
just needs to be preserved. It's only set on VIEW_CONVERT_EXPRs so that the
RTL expander doesn't create temporaries on strict-alignment considerations,
so it's essentially a flag on VIEW_CONVERT_EXPR but set on the target type
which can be ignored entirely at the GIMPLE level as long as it's preserved.
--
Eric Botcazou
More information about the Gcc-patches
mailing list