[LLVMdev] RFC: Upcoming Build System Changes
Wesley Peck
peckw at wesleypeck.com
Tue Nov 1 21:40:15 PDT 2011
Just for informational purposes on a smaller system (Core 2 Duo MacBook Pro):
make none X86.td X86InstrInfo.cpp
real 11.568 217% 76.283 177% 34.435 169%
user 7.726 141% 70.659 100% 25.608 116%
sys 3.234 111% 3.992 100% 6.438 104%
make -j2 none X86.td X86InstrInfo.cpp
real 7.7346 145% 43.138 100% 25.77 127%
user 7.6072 139% 70.414 100% 26.589 121%
sys 3.2492 111% 3.984 100% 6.671 107%
cmake none X86.td X86InstrInfo.cpp
real 9.604 180% 92.127 214% 30.874 152%
user 5.751 105% 84.993 121% 21.628 98%
sys 3.053 104% 3.998 100% 6.246 100%
cmake -j2 none X86.td X86InstrInfo.cpp
real 5.321 100% 46.723 108% 20.324 100%
user 5.481 100% 85.392 121% 21.995 100%
sys 2.924 100% 3.833 96% 6.217 100%
The numbers are in seconds and are an average of five runs. The file names indicate the file that was modified (via touch) to cause the rebuild. The change of the file X86.td cause tablegen to run but no source file compilation and no executable or library linking. The change of X86InstrInfo.cpp caused several files to be recompiled and many executables and libraries to be relinked.
One thing that I noticed (not in this table) was that tablegen is about 300% faster on my machine when building a Release build vs. a Debug build, lowering the build time for the X86.td rebuild from 46 seconds to 15 seconds. This obviously adds up quickly when there are more tablegen files being regenerated.
Perhaps tablegen should always be compiled with optimizations even in Debug Mode? I assume the need to debug tablegen itself is relatively rare.
--
Wesley Peck
University of Kansas
SLDG Laboratory
More information about the llvm-dev
mailing list