LINUX.ORG.RU

[gentoo] Оптимальные флаги gcc для 64 битных приложений

 


0

0

В ближайшем месяце полностью переползаю на 64 бита. Отличаются ли флаги оптимизации gcc от 32 битных ? И какие варианты флагов наиболее оптимальны. Кто поможет?

Процессор: Intel Core 2 Duo (Worfdale)

-O2 -march=core2 -msse4.1 -mcx16 -msahf

отличаются тем что 2 последних на 32 не поддерживаются,
-mfpmath=sse и -fomit-frame-pointer включены по умолчанию

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Вот мои флаги сейчас :
CFLAGS="-O2 -march=core2 -msse4.1 -mfpmath=sse,387 -fomit-frame-pointer -pipe"
CXXFLAGS=«${CFLAGS}»
ICCCFLAGS="-O2 -xS -gcc"
ICCCXXFLAGS=«${ICCCFLAGS}»

На 32 битной системе с ними все собирается и работает без проблем.
А вот последние 2 флага -mcx16 -msahf что дают?

unixway
() автор топика
Ответ на: комментарий от devl547

те же
только для conroe вместо -msse4.1 будет -mssse3 (именно с тремя s)

для 32 бит:
-O2 -msse4.1 (-mssse3) -mfpmath=sse,387 -fomit-frame-pointer -march=core2

Sylvia ★★★★★
()
Ответ на: комментарий от unixway

man gcc , Man !

       -mcx16
           This option will enable GCC to use CMPXCHG16B instruction in gener-
           ated code.  CMPXCHG16B allows for atomic operations on 128-bit dou-
           ble quadword (or oword) data types.  This is useful for high reso-
           lution counters that could be updated by multiple processors (or
           cores).  This instruction is generated as part of atomic built-in
           functions: see Atomic Builtins for details.

       -msahf
           This option will enable GCC to use SAHF instruction in generated
           64-bit code.  Early Intel CPUs with Intel 64 lacked LAHF and SAHF
           instructions supported by AMD64 until introduction of Pentium 4 G1
           step in December 2005.  LAHF and SAHF are load and store instruc-
           tions, respectively, for certain status flags.  In 64-bit mode,
           SAHF instruction is used to optimize "fmod", "drem" or "remainder"
           built-in functions: see Other Builtins for details.

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

>allows for atomic operations on 128-bit double quadword (or oword) data types
Интересно кроме криптографии где нужны большие числа , где-нибудь еще используется инструкция CMPXCHG16B

In 64-bit mode, SAHF instruction is used to optimize «fmod», «drem» or «remainder» built-in functions: see Other Builtins for details.

Зачем все так усложнять. Куда катится x86 архитектура

unixway
() автор топика
Ответ на: комментарий от Sylvia

Ясно, значит для мобильных все то же, что и для десктопных.

devl547 ★★★★★
()
Ответ на: комментарий от Sylvia

Вопрос для Сильви:

CFLAGS="-O2 -march=core2 -mtune=generic -fomit-frame-pointer -pipe"

что дает флаг -mtune=generic ?

судя по ман гцц, я понял оно дает возможность запускать бинарники на более древниx процессорах. так ли это?
ты наверняка уже на практике все проверила :)))

Cosmicman ★★
()
Ответ на: комментарий от Cosmicman

mtune это всего лишь планировщик (schedule code for the given cpu)
набор инструкций задается -march= , так что приведеное сочетание несколько бессмыслено, в отличие например от -march=i486 -mtune=generic что позволяет оптимизировать код ( в котором будет только набор 486 инструкций ) под массив разных процессоров, с ориентировкой на самый ширпотреб ( кстати так собирают убунту )

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.