[Bug middle-end/32044] [4.3 regression] udivdi3 counterproductive, unwarranted use
rakdver at kam dot mff dot cuni dot cz
gcc-bugzilla@gcc.gnu.org
Thu Nov 8 14:47:00 GMT 2007
------- Comment #20 from rakdver at kam dot mff dot cuni dot cz 2007-11-08 14:46 -------
Subject: Re: [4.3 regression] udivdi3 counterproductive, unwarranted use
> ------- Comment #19 from manu at gcc dot gnu dot org 2007-11-08 14:22 -------
> (In reply to comment #16)
> > One possible solution would be to annotate the division by the expected value
> > of the result. Division expanders then may decide whether to expand to machine
> > instruction/libcall or to check for small values of the result in if-guards
> > first.
> >
>
> Well, that won't achieve at all what the user wants, that is, to not get a call
> to __udividi3.
However, it would avoid calling the division most of the time, i.e.,
for performance this would be a possible solution.
> There are 2 issues here:
>
> 1) GCC replaces the loop by division. This may or may not be more efficient. In
> this case, it is not. In many other cases, it is.
The code performing the replacement should probably check what is the
expected # of iterations of the loop, and compute which way is more
efficient. However, it is a bit difficult to get this work correctly.
> 2) The user does not want a call to __udividi3.
There is nothing wrong with calling __udividi3, once the division is
introduced.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32044
More information about the Gcc-bugs
mailing list