On 05/06/14 02:24, Florian Weimer wrote:
On 05/05/2014 06:11 PM, Jeff Law wrote:
Yes, this is a known issue. There's places where the costing models
change the gimple we initially generate and what transformations we
apply later.
Well, "known issue" is very subjective. Our developers run into this
quite regularly because you get more -Wstrict-overflow warnings on ppc64
and s390x than on x86_64. The GIMPLE on x86_64 contains fewer
conditional statements, so the warning does not fire.
That unfortunately happens. We don't guarantee warning stability across
platforms.
Long term we want to push this stuff to a later point in the pipeline,
but there's some disagreement over exactly how/when to do that.
Would it be feasible (for someone like me who is not really familiar
with GCC internals) to move the BRANCH_COST-dependent bits of fold to an
early GIMPLE pass? There's another target dependence related to
function pointers which could receive similar treatment.
Moving the bits is easy. Verifying that doing so doesn't hurt
performance is the real work here. And in the process of looking at the
performance side, you're going to run into a rats nest of issues.
If it were easy, it'd already have been done.
Jeff