Reputation: 383
I'm using Codeblocks for a C program on Windows 7. The program is using the OMP library. GCC version is 4.9.2. Mingw x86_64-w64-mingw32-gcc-4.9.2.exe.
Flags used are: -fopenmp -O3 -mfpmath=sse -funroll-loops -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose=2
.
The program runs correctly but the problem is that it doesn't show information on what loops were vectorized or not. How can I solve it?
Build log info:
-------------- Build: Release in **** (compiler: GNU GCC Compiler)---------------
x86_64-w64-mingw32-gcc-4.9.2.exe -Wall -O2 -march=corei7 -fexpensive-optimizations -O3 -fopenmp -mfpmath=sse -funroll-loops -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose=2 -c C:\Users...\f.c -o obj\Release\f.o x86_64-w64-mingw32-g++.exe -o bin\Release\d.exe obj\Release\f.o obj\Release\main.o -s "C:\Program Files...\libgomp-1.dll" Output file is bin\Release\d.exe with size 21.00 KB Process terminated with status 0 (0 minute(s), 0 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
Upvotes: 20
Views: 17013
Reputation: 71
The gcc flag -ftree-vectorizer-verbose
has been deprecated in gcc 4.9. In newer versions of GCC you can use -fopt-info-vec-missed
.
See https://github.com/gcc-mirror/gcc/blob/releases/gcc-4.9/gcc/common.opt
ftree-vectorizer-verbose= Common Joined RejectNegative Ignore Does nothing. Preserved for backward compatibility.
Upvotes: 5
Reputation: 29
In GCC-9.0.0,Messages are now prefixed with optimizaed,missed,or note,rather than the old behavior of all being preixed with note. If want to get exhaustive log of all decisions made by the vectorizer via new -internals suboption of -fopt-info.
Upvotes: 1
Reputation: 8492
CodeBlocks is an IDE. It doesn't compile anything. GCC does. The -ftree-vectorizer-verbose
used to work in previous versions. Now there's -fopt-info
, which allows to retrieve information about optimizations (vectorization too); you can find the relevant documentation here.
It is even shown how to actually retrieve the vectorizer output to stderr
:
and this one:
gcc -O2 -ftree-vectorize -fopt-info-vec-missed
prints information about missed optimization opportunities from vectorization passes on stderr. Note that -fopt-info-vec-missed is equivalent to -fopt-info-missed-vec.
You can change missed
to e.g. optimized
, all
and so on as listed.
Upvotes: 33