avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] avr superoptimizer


From: John Regehr
Subject: Re: [avr-gcc-list] avr superoptimizer
Date: Mon, 20 Apr 2009 10:13:49 -0600 (MDT)
User-agent: Alpine 1.00 (DEB 882 2007-12-20)

On Sat, 18 Apr 2009, Sean D'Epagnier wrote:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=77805

This is cool, though I largely agree with the message in this thread which says that most of the time, poor avr-gcc output should simply be filed as bugs in the AVR backend.

The superoptimizer must be extremely careful in rewriting loads and stores. Probably the best policy would be to never duplicate or eliminate a memory operation. The reason is that volatile qualifiers have been lost by the time the compiler finishes.

Sean the limit case of what you are working on is something like Diablo, you should read some of their papers:

  http://diablo.elis.ugent.be/publications

It is an excellent tool.

Many benefits of something like Diablo come from optimizing the application and all of its libraries together. Someone should figure out how to get this kind of benefit for AVR. I have spent a bunch of time looking at avr-gcc output over the past couple weeks and have seen many cases where better code could have been generated by perforing IPO on the application + libraries. In many cases simply propagating constants into avr-libc would get most of the benefit.

John Regehr




reply via email to

[Prev in Thread] Current Thread [Next in Thread]