This is the mail archive of the
mailing list for the GCC project.
Re: extending fpmuls
On 25 October 2011 16:45, Joseph S. Myers <firstname.lastname@example.org> wrote:
> On Tue, 25 Oct 2011, Frederic Riss wrote:
> Contracting (which is independent from excess precision) is controlled by
> -ffp-contract. ?This can operate at the very latest at the GIMPLE level
> (it needs to know about original expression boundaries to operate
> correctly); by the time you get to RTL the relevant information is long
> gone and you can't transform between the two patterns you give.
> -ffp-contract=on is actually an alias for -ffp-contract=off because of
> lack of expression boundary information.
When I read the paragraph on expression contraction, it seems that a
lot of liberty is left to the implementation wrt the kind of
contraction it does. The footnotes even talk about different accuracy,
loss of predictability and fast machine specific instructions. I don't
see what would prevent a conformant compiler to 'contract' the
discussed patterns into a widenning float multiply, without taking
care of initial operator's boundaries.
Note that I'm not pleading for any change, I'm just trying to
understand where my reading of the standard is wrong and/or what
motivates the corresponding implementation decisions in GCC.