Re: avr_rtx_cost for DImode values?

Georg-Johann Lay <[email protected]>
Newsgroups gmane.comp.hardware.avr.gcc
Message-ID <[email protected]>
Am 03/18/2014 06:33 PM, schrieb Senthil Kumar Selvaraj:
> Hi,
>
> I see that the avr_rtx_costs_1 function returns relative costs for a
> variety of RTL codes, but only for non-DImode operands. For DImode,
> it returns false, and gcc uses its idea of the cost plus the costs of
> operands (found by recursing into the RTL expression) instead.
>
> Is there a reason why this has not been done?
>
> I was trying to debug compilation timeouts in the latest trunk test
> results (http://gcc.gnu.org/ml/gcc-testresults/2014-03/msg01239.html)
> - specifically
> WARNING: program timed out.
> FAIL: gcc.c-torture/execute/20041011-1.c compilation,  -O1

I cannot reproduce this all 22 tests from execute.exp=20041011-1.c take around 
6 seconds (including test suite overhead).

> and found that expmed.c:choose_mult_variant takes a lot of time to
> finish if a DImode value of -513 is provided. From my initial
> analysis, it looks like it has to do with cost values being off for
> DImode RTL operations (making MULT in avr_rtx_costs_1 to return
> twice the cost of SImode for DImode fixed the timeout). Has
> someone seen or fixed something like this before?

No. Even if the choice of a particular MUL strategy is not optimal, it should 
not hang the compiler.  I suspect you are using a 64-bit host? (I am on 32 bit 
Linux).

Johann
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.