[Bug target/54888] GCC with -Os is faster than -O3 on some AVR code

2013-02-02 Thread gjl at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54888



Georg-Johann Lay gjl at gcc dot gnu.org changed:



   What|Removed |Added



 Status|WAITING |RESOLVED

 CC|gjl at gcc dot gnu.org  |

 Resolution||INVALID



--- Comment #6 from Georg-Johann Lay gjl at gcc dot gnu.org 2013-02-02 
14:21:27 UTC ---

Closed as invalid. No answer and no valid test case for over 3 months now.


[Bug target/54888] GCC with -Os is faster than -O3 on some AVR code

2012-10-22 Thread mojo at world3 dot net


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54888



--- Comment #3 from mojo at world3 dot net 2012-10-22 12:40:57 UTC ---

(In reply to comment #2)



 And I actually don't understand teh issue: Optimizing for size does not 
 require

 to produce slow code.  The code may run fast.



-O3 is supposed to produce the fastest possible code, but it doesn't. -Os is

faster. At the very least the two should be equal.



In other words -O3 is broken.


[Bug target/54888] GCC with -Os is faster than -O3 on some AVR code

2012-10-22 Thread rguenth at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54888



--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-10-22 
12:56:23 UTC ---

(In reply to comment #3)

 (In reply to comment #2)

 

  And I actually don't understand teh issue: Optimizing for size does not 
  require

  to produce slow code.  The code may run fast.

 

 -O3 is supposed to produce the fastest possible code, but it doesn't. -Os is

 faster. At the very least the two should be equal.



Supposed to?  Where in the documentation is that specified?  I remember

a sentence that -O3 enables optimization that might not always be

profitable (but that sentence seems to be gone from latest docs).



 In other words -O3 is broken.



It's behavior is certainly undesirable, but broken?  For certain targets

-Os might be a win because that's what it is tuned for or icache behavior

is simply more important than anything else.


[Bug target/54888] GCC with -Os is faster than -O3 on some AVR code

2012-10-22 Thread gjl at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54888



Georg-Johann Lay gjl at gcc dot gnu.org changed:



   What|Removed |Added



 CC||gjl at gcc dot gnu.org



--- Comment #5 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-10-22 
20:10:44 UTC ---

As a start, you could try to enable us to reproduce your problem.



First of all, it is clear that we don't have your hardware (oscilloscope) to

measure things and even if, it is very unlikely someone will start research to

find out exactly were you lost the ticks.



Second, notice that it is ulikely anybody is inclined to pick up buch of code

you dumped above. It's 3800 lines and around 30 functions.  And it fails to

compile.  Maybe you can be more descriptive and point out what /exactly/ goes

wrong and work out a small example and limit to a critical spot or function and

throw away unneeded stuff.



Third, please notice that 4.3 is no more supported since several years now. 

Please supply code that compiles with a supported version of the compiler which

implies at least 4.7 (because you use -mmcu=atxmega128d3).



Fourth, you use inline assembler that is not correct because of missing memory

barrier and might show malfunction in corner cases.



Thus, you may want to fix at least 3. and 4. and rerun your benchmarks to see

if the problem still exists.  Very likely, that is not the case.


[Bug target/54888] GCC with -Os is faster than -O3 on some AVR code

2012-10-21 Thread gjl at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54888



Georg-Johann Lay gjl at gcc dot gnu.org changed:



   What|Removed |Added



 Target||avr

   Priority|P3  |P4

 Status|UNCONFIRMED |WAITING

   Last reconfirmed||2012-10-21

  Component|c   |target

 Ever Confirmed|0   |1



--- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-10-21 
20:40:45 UTC ---

atxmega128d3 is not supported by avr-gcc, neither in 4.3 nor in 4.4 nor 4.5 nor

4.6.  Please report to the respective bug tracker, obviously some private

toolchain port.



Compiling with a current compiler that supports ATxmega128D3 (4.7 or newer)

stops compilation with errors.



And I actually don't understand teh issue: Optimizing for size does not require

to produce slow code.  The code may run fast.



If your program relies on slow executable code, the program is incorrect.