[РЕШЕНО]Настройка флагов оптимизации в makepkg.conf

Немного не понятна тема, как же определить точные флаги оптимизации под свой процессор
тут сказано, что надо проделать:
Find CPU-specific options
At first, create two files and set language to English to get sed working:

user $touch native.cc march.cc
user $LANG="en"
Compile the first file:

user $gcc -fverbose-asm -march=native native.cc -S
Get march, which gcc will choose:

user $grep march native.s
Options passed: -D_GNU_SOURCE native.cc -march=core-avx-i -mcx16 -msahf

Now compile a second file:

user $gcc -fverbose-asm -march=core-avx-i march.cc -S
Now clean the

.s files for an easy comparisons:
user $sed -i 1,/options\ enabled/d march.s
user $sed -i 1,/options\ enabled/d native.s
When you not set LANG on an localized system, you have now empty files.

Compare both

.s files:
user $diff march.s native.s
Output empty? You found your -march=, use it. In other cases:
тут то у меня и получается проблема.
написано как я понял, чо если вывод диффа пустой, то нужные флаги найдены, если не пустой, то:
20,25c20,23
< # -maccumulate-outgoing-args -maes -malign-stringops -mavx
< # -mavx256-split-unaligned-load -mavx256-split-unaligned-store -mcx16
< # -mf16c -mfancy-math-387 -mfp-ret-in-387 -mfsgsbase -mfxsr -mglibc
< # -mieee-fp -mlong-double-80 -mmmx -mpclmul -mpopcnt -mpush-args -mrdrnd
< # -mred-zone -msahf -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3
< # -mtls-direct-seg-refs -mxsave -mxsaveopt
---
> # -maccumulate-outgoing-args -malign-stringops -mcx16 -mfancy-math-387
> # -mfp-ret-in-387 -mfsgsbase -mfxsr -mglibc -mieee-fp -mlong-double-80
> # -mmmx -mpclmul -mpopcnt -mpush-args -mred-zone -msahf -msse -msse2 -msse3
> # -msse4 -msse4.1 -msse4.2 -mssse3 -mtls-direct-seg-refs
Now guess, which switches -march=core-avx-i enable and -march=native not: -maes -mavx and some more. Now we build march.cc again with this two switches disabled:

gcc -fverbose-asm -march=core-avx-i -mno-aes -mno-avx march.cc -S
sed -i 1,/options\ enabled/d march.s
diff march.s native.s

< # -mmmx -mpclmul -mpopcnt -mpush-args -mrdrnd -mred-zone -msahf -msse
< # -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3 -mtls-direct-seg-refs
---
> # -mmmx -mpclmul -mpopcnt -mpush-args -mred-zone -msahf -msse -msse2 -msse3
> # -msse4 -msse4.1 -msse4.2 -mssse3 -mtls-direct-seg-refs
One switch we need to disable too: -mrdrnd

Finally set CFLAGS:

FILE /etc/portage/make.conf
CFLAGS="-march=ivybridge -mno-avx -mno-aes -mno-rdrnd -O2 -pipe"

получается у меня вывод:
diff march.s native.s
23c23
< # -maes -malign-stringops -mavx -mavx256-split-unaligned-load
---
> # -malign-stringops -mavx -mavx256-split-unaligned-load
т.е. надо найтить различия и отключить их (-maes)...

но дальше там есть именно для моего проца строка с флагами, но получается она не подходит, если верить ентим действиям выше
строка с флагами для моего i3 2100 процессора
содержит
CFLAGS="-march=sandybridge -O2 -pipe"
, дополнительные опции выключения
CFLAGS="-march=sandybridge -mno-avx -mno-aes -mno-rdrnd -O2 -pipe"
содержатся для проца pentium на ентой архитектуре.

т.е. мой проц не поддерживает AES??? и его надо отключить?
со строкой
gcc -fverbose-asm -march=sandybridge -mno-aes march.cc -S
diff выводится пустой.
почему тогда для моего проца написана строка без -mno-aes в руководстве?
мде... и правда... тут сказано чо поддержки AES нету...
 
Зарегистрироваться или войдите чтобы оставить сообщение.