scons: Enable LTO for opt, perf and prof builds.
The name of the build is opt, so it should be fully optomized. Also, the fast build, the only one with LTO historically, is dangerous to use since it disables many error checks. I personally run gem5 many times while developing, iterating and trying to fix bugs, and so want it to run quickly then too, not just the final time when collecting results. Also, since they mirror the opt build, the perf and prof builds also have LTO options added. This has the nice side effect of speeding up the build time of build/X86 significantly (6:20 -> 4:27) due to parallelization of the link, and reduces the size of the build/X86 directory (with debug compression enabled) from 3.4GB to 2.8GB. The size of build/X86/python/_m5 is still 1.6GB, so still more than half of the total size of build/X86. Change-Id: I8feabf99454693fdd100d9e1a64fdeae53362f75 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/40815 Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Earl Ou <shunhsingou@google.com>
This commit is contained in:
@@ -1341,11 +1341,8 @@ if env['GCC']:
|
||||
# the optimization to the ldflags as LTO defers the optimization
|
||||
# to link time
|
||||
for target in ['opt', 'fast', 'prof', 'perf']:
|
||||
ccflags[target] += ['-O3']
|
||||
ldflags[target] += ['-O3']
|
||||
|
||||
ccflags['fast'] += env['LTO_CCFLAGS']
|
||||
ldflags['fast'] += env['LTO_LDFLAGS']
|
||||
ccflags[target] += ['-O3'] + env['LTO_CCFLAGS']
|
||||
ldflags[target] += ['-O3'] + env['LTO_LDFLAGS']
|
||||
elif env['CLANG']:
|
||||
ccflags['debug'] += ['-g', '-O0']
|
||||
# opt, fast, prof and perf all share the same cc flags
|
||||
|
||||
Reference in New Issue
Block a user