Technical support > Windows

speed up ufo2map.exe over 100% (gcc optimization)

<< < (2/2)

Muton:
currently most fastest:
bunker.map
standard: 1077 sec
standard -O3 -fno-strict-aliasing -march=k8-sse3: 754sec
full optimized (look down): 445 sec

build\projects\ufo2map.cbp
replace

--- Code: --- <Add option="-ffloat-store" />

--- End code ---
with this

--- Code: --- <Add option="-march=...." />
<Add option="-m....." />
<Add option="-O1" />
<Add option="-fthread-jumps" />
<Add option="-falign-functions" />
<Add option="-falign-jumps" />
<Add option="-falign-loops" />
<Add option="-falign-labels" />
<Add option="-fcaller-saves" />
<Add option="-fcrossjumping" />
<Add option="-fcse-skip-blocks" />
<Add option="-fdelete-null-pointer-checks" />
<Add option="-fexpensive-optimizations" />
<Add option="-fgcse-lm" />
<Add option="-foptimize-sibling-calls" />
<Add option="-fpeephole2" />
<Add option="-fregmove" />
<Add option="-freorder-blocks" />
<Add option="-freorder-functions" />
<Add option="-frerun-cse-after-loop" />
<Add option="-fsched-interblock" />
<Add option="-fsched-spec" />
<Add option="-fschedule-insns2" />
<Add option="-fno-strict-aliasing" />
<Add option="-fstrict-overflow" />
<Add option="-ftree-pre" />
<Add option="-ftree-vrp" />
<Add option="-finline-functions" />
<Add option="-funswitch-loops" />
<Add option="-fpredictive-commoning" />
<Add option="-fgcse-after-reload" />
<Add option="-ftree-vectorize" />
<Add option="-mfpmath=sse" />
<Add option="-mieee-fp" />

--- End code ---
(-O2 and -O3 errors ufo2map out if SSE is used and more than one threat is used )
(-O2 and -O3 need -fno-strict-aliasing if gcc 4.4.0 is used)
watch the 1st and 2nd value

Easy way:
-march=native
-msse


Hard way:

cpuz will tell you what type of cpu and instruction set it does support
pentium3 <- SSE
pentium-m <- SSE2
pentium4 <- SSE2
prescott <- SSE3
core2 <- SSE3 - SSE4.2
athlon-4, athlon-xp, athlon-mp <- SSE (Socket A)
athlon64 <- SSE2
k8-sse3 <- SSE3
amdfam10, barcelona <- SSE4A

-msse
-msse2
-msse3
-mssse3
-msse4a
-msse4.1
-msse4.2

For an Intel Core 2 Duo E6400

--- Code: ---<Add option="-march=core2" />
<Add option="-mssse3" />
<Add option="--param l1-cache-line-size=32" />
<Add option="--param l1-cache-size=32" />
<Add option="--param l2-cache-size=2048" />

--- End code ---


--- Code: ---<Add option="-fcse-follow-jumps" /> errors ufo2map out
<Add option="-fgcse" /> errors ufo2map out
<Add option="-fschedule-insns" />  prevent successful compile
<Add option="-fstrict-aliasing" /> prevent successful compile replaced by <Add option="-fno-strict-aliasing" />

--- End code ---

Navigation

[0] Message Index

[*] Previous page

Go to full version