Hi folks,

When compiling our simulation tool with the undefined behavior sanitizer, I 
noticed that some files take much longer to compile - I am talking about a 
5x-250x increase:

file1 (zfsdgblock_inst_3d_acousticperturb.cpp): 8.5s vs 41.3s (4.8x)
file2 (zfsfvparticle.cpp): 9.5s vs 114.8s (12.1x)
file3 (zfscartesiangrid_inst_fv.cpp): 18.4s vs 100.8s (5.4x)
file4 (zfsfvbndrycnd3d.cpp): 19.6s vs [stopped after 1.5 hours of compilation]

For reference, I’ve added the full compilation command I used below. In the 
UBSan invocation, the only change is the addition of 
“-fsanitize=undefined,unsigned-integer-overflow”.

Even though the files in question are relatively large (5k-20k lines), I am 
wondering if this is expected. Is there anything I can do to significantly 
speed up compilation while still getting reasonable runtime performance? I 
found out that e.g. using -O0 instead of -O3 significantly reduces the compile 
time for file4 with ubsan to 17.1s, while -O1 already takes > 15 mins.

Regards,

Michael

P.S.: 

Here is the compilation command I used for file2 (the other files were compiled 
using the exact same flags):

/pds/opt/llvm/bin/clang++ -O3 -DNDEBUG -fvectorize -fslp-vectorize 
-DCOMPILER_ATTRIBUTES -DUSE_RESTRICT -march=native -mtune=native -std=c++11 
-stdlib=libc++ -Wall -Wextra -pedantic -Wshadow -Wfloat-equal -Wcast-align 
-Wfloat-equal -Wdisabled-optimization -Wformat=2 -Winvalid-pch -Winit-self 
-Wmissing-include-dirs -Wredundant-decls -Wpacked -Wpointer-arith 
-Wstack-protector -Wswitch-default -Wwrite-strings -Wno-type-safety -Werror 
-Wunused -Wno-infinite-recursion -Isrc -isystem /pds/opt/fftw/include -isystem 
/pds/opt/parallel-netcdf/include -isystem /pds/opt/openmpi/include -MMD -MT 
src/CMakeFiles/zfs.dir/zfsfvparticle.cpp.o -MF 
src/CMakeFiles/zfs.dir/zfsfvparticle.cpp.o.d -o 
src/CMakeFiles/zfs.dir/zfsfvparticle.cpp.o -c src/zfsfvparticle.cpp

"-DCOMPILER_ATTRIBUTES -DUSE_RESTRICT” just enables compiler attributes and the 
use of __restrict in the preprocessor stage.
_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to