-march=native && distcc

entropie88

Lt. Junior Grade
Registriert
Juli 2011
Beiträge
442
Da ich distcc nutzen will kann ich kein -march=native mehr verwenden.

$gcc -march=native -E -v - </dev/null 2>&1 | grep cc1

liefert mir:

-march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rdrnd -mno-f16c -mno-fsgsbase --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=corei7-avx

Ich würde gerne sowenige CFLAGS verwenden wie möglich. Nun meine Frage:

implitziert
-march=corei7-avx =>> -mtune=corei7-avx -mcx16 -msahf -maes -mavx -mpclmul -mpopcnt -msse4.2 -msse4.1 ???

würde ich mit:
-march=corei7-avx --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144
das gleiche Binary erhalten wie mit march=native bzw dem Output oben? In der GCC Doku klick fehlt wie ich mit den -mno- umgehen soll.

Gruß
 
Ich hab im gcc-src gesucht ob es eine feste Zuordnung gibt, aber (noch) nichts gefunden.

Ich denke aber, du musst alle Flags mitnehmen, zumindest hat bei mir ein kurzer test auf einer amd-plattform für corei7 keine weiteren flags ausgespuckt als die angegeben march, mtune und cache sizes.
 
Macht auch mehr Sinn, ich find es nur nach wie vor nicht im Code, das ist ziemlich verstreut und eine Makro-Definition und Parser mit Funktionspointer nach dem anderen...:rolleyes: ist dann zwar nicht mehr wichtig, aber interessiert hätte mich das schon mal...
 
Zurück
Oben