# Eure CFLAGS

## slick

Passend zum Thread Auf Leistung optimieren hier die Umfrage.

Welche CFLAGS benutzt ihr? Ich habs bewußt einfach gehalten, wer möchte kann ja im Text Details preisgeben. Ich weiß, je nach CPU kann etwas anderes optimal sein, es geht mir um die grobe Tendenz.

(-O1 habe ich bewußt weggelassen, sowas wird denke ich, wenn überhaupt jemand, nur eine sehr kleine Minderheit nutzen)

----------

## slick

[x] das ist bei mir Paketabhängig

Ich baue die System-Pakete (in etwa sys-apps, app-*) mit -Os, alle libs und dergleichen (in etwa sys-libs, x11-libs) mit -O3 und den Rest mit -O2. Mag zwar vielleicht Blödsinn sein, aber ich fühl mich gut dabei und es funktioniert, also wird es schon irgendwie passen  :Wink: 

----------

## xraver

Für mein altes Maschienchen, 586, AMD K6-2

 *grep CFLAGS /etc/make.conf wrote:*   

> 
> 
> CFLAGS="-Os -march=k6-2 -pipe -m3dnow -mmmx"
> 
> CXXFLAGS="${CFLAGS}"

 

Kennt noch jemand Optimierungsmöglichkeiten? Ich glaub zwar nicht das man da noch was raus holen kann, aber wenn noch jemand einen Tip hat, her damit  :Wink: .

----------

## Wolle

[x] Das ist Maschinen und Einsatzabhängig

Meine erste Anlaufstelle ist http://gentoo-wiki.com/Safe_Cflags. Dann überlege ich mir, welche Prozessoren für Fallback-Zwecke in Frage kommen (falls mal ein Board abraucht) und lasse weg, was die Backup-CPU nicht kann. Da bleibt dann z.B. schnell mal ein -msse3 weg.

Auf meinem Arbeitplatzrechner hate ich mitCFLAGS="-O3 -march=k8 -ffast-math -fomit-frame-pointer -mfpmath=sse -funit-at-a-time -fpeel-loops -ftracer -funswitch-loops -pipe"angefangen. Inzwischen bin ich bei CFLAGS="-O2 -march=k8 -pipe" angekommen. Ich hatte keinen Bock mehr auf Streß. Ob die Maschine damit langsamer wurde kann ich nicht sagen. Bemerkt habe ich nichts (gemessen aber auch nicht).

----------

## Keruskerfuerst

Ich sollte meine CFLAGS besser nicht posten, da ansonsten die Entwickler einen Herzinfarkt bekommen.  :Cool: Last edited by Keruskerfuerst on Fri May 04, 2007 3:02 pm; edited 1 time in total

----------

## Mr_Maniac

Auf meinem PC:

```

CFLAGS="-O2 -march=athlon-tbird -m3dnow -mmmx -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

```

Auf meinem kleinen 200 MHz Router/Server:

```

CFLAGS="-Os -march=pentium-mmx -mmmx -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

```

----------

## Klaus Meier

Noch mal ein Hinweis an Alle, die mit diesem -mXXX irgendwas setzen. Dies wird für eure CPU von -march komplett erledigt. Da muss man nichts setzen mit sse und mmx. Höchstens -msse3 bei neueren Athlons, weil das da nicht drin ist.

----------

## moe

 *Klaus Meier wrote:*   

> Noch mal ein Hinweis an Alle, die mit diesem -mXXX irgendwas setzen. Dies wird für eure CPU von -march komplett erledigt. Da muss man nichts setzen mit sse und mmx. Höchstens -msse3 bei neueren Athlons, weil das da nicht drin ist.

 

Das wurde doch schon öfter hier behandelt.. Es stört auf jeden Fall nicht, und macht teilweise auch Sinn, wenn ebuilds -march oder -mtune aus den CFlags rausfiltern.

Ob das Paket dann instabiler wird, da es ja sicher irgendeinen Grund gab march und mtune zu filtern, ist eine andere Frage. Ich benutze es auch nicht, mir ist Stabilität wichtiger als 0,01% mehr Leistung..

Gruss Maurice

----------

## Ampheus

Hm hier mal meine seltsamerweise problemlos funktionierende config  :Smile: 

```
CFLAGS="-Os -march=prescott -frename-registers -fweb -pipe -fomit-frame-pointer -funit-at-a-time -freorder-blocks -fno-ident -freorder-blocks-and-partition -fmerge-all-constants -combine -msse3"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
```

LDFLAGS verwende ich auch. Aber wie gesagt, es läuft stabil und schnell  :Smile: 

----------

## bbgermany

Da bin ich ja anscheinend noch einer von den ganz konservativen:

Für mein 32bit Gentoo verwende ich folgende CFLAGS

```

CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer -msse3"

```

Für mein 64bit Gentoo habe ich diese CFLAGS:

```

CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer -msse3"

```

MfG. Stefan

----------

## sirro

```
-O2 -march=i686 -pipe
```

Ein paar (wenige) Pakete, die Netzwerkkommunikation machen bekommen noch "-fstack-protector". Hab trotzdem -O2 gewählt, da es wirklich nur ein kleiner Teil ist.

----------

## c_m

Auf meinem Fileserver/Mediabox

```
CFLAGS="-Os -march=athlon -pipe -fomit-frame-pointer"
```

Auf meinem Notebook

```
CFLAGS="-Os -march=pentium-m -pipe -fomit-frame-pointer"
```

----------

## hoschi

CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

 :Smile: 

----------

## Fabiolla

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer -ftree-vectorize"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"

 :Confused: 

----------

## misterjack

ich bin konservativ:

```
CFLAGS="-O2 -march=$CPUTYPE -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

```

auf allen Rechnern: http://www.sysprofile.de/id30096 und http://www.sysprofile.de/id30255

----------

## UTgamer

Die Vorsichtigen kriegen einen Herzinfarkt bei meinen, sind für Mathematiker nicht geeignet.  :Wink: 

Hier erneut in gekürzter Schreibweise.

```
CFLAGS="-march=athlon64 -O2 -msse3 -mfpmath=sse,387 -pipe -ffast-math -m64"
```

Merkbar sind die Flags sofort bei hoher/voller CPU-Belastung, z.B. bei gqview oder Quake4.

Bei Quake 4 ist der Unterschied sogar gewaltig, es brachte rund 35% mehr.

Gilt für die obere Rechnercombi in meiner Signatur.

----------

## Kuhrscher

 *misterjack wrote:*   

> ich bin konservativ:
> 
> ```
> CFLAGS="-O2 -march=$CPUTYPE -pipe -fomit-frame-pointer"
> 
> ...

 

Ich auch  :Smile: 

```
CFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer"
```

----------

## RealGeizt

```
CFLAGS="-O3 -march=athlon64 -funroll-all-loops -funit-at-a-time -fpeel-loops -ftracer -funswitch-loops -fomit-frame-pointer -pipe -ffast-math"
```

```
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
```

benutze ich schon seit jahren...hatte noch keine probleme  :Wink: 

----------

## Ampheus

```
-funroll-loops

           Unroll loops whose number of iterations can be determined at compile time or

           upon entry to the loop.  -funroll-loops implies both -fstrength-reduce and

           -frerun-cse-after-loop.  This option makes code larger, and may or may not

           make it run faster.

       -funroll-all-loops

           Unroll all loops, even if their number of iterations is uncertain when the

           loop is entered.  This usually makes programs run more slowly.  -fun‐

           roll-all-loops implies the same options as -funroll-loops
```

Das sagt man gcc dazu. Also -funroll-loops sollte reichen.

----------

## ConiKost

Mein Home Server:

```
CFLAGS="-march=k6-2 -Os -mmmx -m3dnow -pipe -fomit-frame-pointer -mfpmath=387"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"

LDFLAGS="-Wl,-O1"

CHOST="i586-pc-linux-gnu"
```

Mein AMD64 Desktop:

```
CFLAGS="-march=athlon64 -O2 -mmmx -m3dnow -msse -msse2 -msse3 -pipe -fomit-frame-pointer -mfpmath=387,sse -m64"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"

LDFLAGS="-Wl,-O1"

CHOST="x86_64-pc-linux-gnu" 
```

----------

## xraver

 *ConiKost wrote:*   

> Mein Home Server:
> 
> ```
> CFLAGS="-march=k6-2 -Os -mmmx -m3dnow -pipe -fomit-frame-pointer -mfpmath=387"
> 
> ...

 

Hallo,

ich verwende fast die gleichen CFLAGS.

Was bringt -mfpmath=387?

Mehr Probleme oder vileicht doch einen merklichen Performanceschub?

----------

## ConiKost

Hi!

Ehrlich gesagt kein Plan, ich hatte auf meinem Desktiop -mfpmath=387,sse gehabt ... aber da meine cpu nicht sse konnte im server, habe ich einfach sse weggelassen ...

----------

## xraver

 *ConiKost wrote:*   

> Hi!
> 
> Ehrlich gesagt kein Plan, ich hatte auf meinem Desktiop -mfpmath=387,sse gehabt ... aber da meine cpu nicht sse konnte im server, habe ich einfach sse weggelassen ...

 

Hm, ich würde es ja mal antesten - würde das compilieren nicht sooooooooo lange dauern.

Aja, GCC4.2 ist draussen. Es darf wieder an den CFLAGS geschraubt werden  :Wink: .

----------

## Keruskerfuerst

Ich hatte mfpmath=387,sse auf einem Athlon64 getestet. Wenn man mfpmath=xyz wegläßt, lief das System am schnellsten.

----------

## Sourcecode

...ich bin auch eher altmodisch:  

```
CFLAGS="-march=athlon-xp -pipe -fomit-frame-pointer"
```

----------

