3

I just discovered the nice "-Minfo=" flag in pgcc, which outputs all the optimizations that the compiler is making.

IE:

pgcc -c -pg -O3 -Minfo=all -Minline    -c -o example.o example.c
run:
 55, Memory zero idiom, loop replaced by call to __c_mzero8
 91, Memory zero idiom, loop replaced by call to __c_mzero8
pgcc -c -pg -O3 -Minfo=all -Minline    -c -o controller.o controller.c
main:
 82, second inlined, size=4, file controller.c (113)
 84, second inlined, size=4, file controller.c (113)

is there an equivalent compiler flag for GCC?

1 Answers1

1

Yes there is. -fopt-info is what you are looking for.

gcc -O3 -fopt-info example.c -o example

Or equivalently you can do

gcc -O3 -fopt-info-all=all.dat example.c -o example

Will output all the optimization information to file all.dat. You can also be specific about which optimization information you want by specifying -fopt-info-options like so:

-fopt-info-loop                 # info about all loop optimizations  
-fopt-info-vec                  # info about auto-vectorization
-fopt-info-inline               # info about function inlining
-fopt-info-ipa                  # info about all interprocedural optimizations  

You can get more specific if you want by telling gcc to dump information only about loops/inlinings/vectorizations that were optimized or were missed

-fopt-info-inline-optimized     # info only about functions that were inlined
-fopt-info-vec-missed           # info only about vectorizations that were missed
-fopt-info-loop-note            # verbose info about loop optimization 

For more details look at the online documentation.

romeric
  • 2,325
  • 3
  • 19
  • 35