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 

  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?

Regards
Senthil

_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to