Just by adding the -flto option to CXXFLAGS link command
we can gain a few percent in speed.
On a Core i5-2500 (3300 Mhz, Sandy Bridge):
64 bit download version:
Without -flto:
1597151 n/s
With -flto :
1659664 n/s
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
# bsfq = no/yes --- -DUSE_BSFQ --- Use bsfq x86_64 asm-instruction
# --- (Works only with GCC and ICC 64-bit)
# popcnt = no/yes --- -DUSE_POPCNT --- Use popcnt x86_64 asm-instruction
# bsfq = no/yes --- -DUSE_BSFQ --- Use bsfq x86_64 asm-instruction
# --- (Works only with GCC and ICC 64-bit)
# popcnt = no/yes --- -DUSE_POPCNT --- Use popcnt x86_64 asm-instruction
+# lto = no/yes --- -flto --- gcc Link Time Optimization
#
# Note that Makefile is space sensitive, so when adding new architectures
# or modifying existing flags, you have to make sure there are no extra spaces
#
# Note that Makefile is space sensitive, so when adding new architectures
# or modifying existing flags, you have to make sure there are no extra spaces
prefetch = yes
bsfq = yes
popcnt = yes
prefetch = yes
bsfq = yes
popcnt = yes
endif
ifeq ($(ARCH),x86-32)
endif
ifeq ($(ARCH),x86-32)
CXXFLAGS += -DUSE_POPCNT
endif
CXXFLAGS += -DUSE_POPCNT
endif
+### 3.11 lto.
+### Note that this is a mix of compile and link time options
+### because the lto link phase needs access to the optimization flags
+ifeq ($(lto),yes)
+ CXXFLAGS += -flto
+ LDFLAGS += $(CXXFLAGS) -static
+endif
+
### ==========================================================================
### Section 4. Public targets
### ==========================================================================
### ==========================================================================
### Section 4. Public targets
### ==========================================================================