Welche g++ Schlüssel passen zu meiner Machine?



  • Ich benutze gerade:

    # compile options
    CXXFLAGS := -ansi -std='c++98' -pedantic -Wall -Weffc++ -Wold-style-cast \
    -Wextra -Wunknown-pragmas -Wshadow -Wwrite-strings -Wconversion \
    -Wunreachable-code -Winline -Wdisabled-optimization -O3 -march=prescott \
    -mfpmath=sse -mmmx -msse -msse2 -msse3
    # link options
    LDFLAGS := -s
    

    Meine Maschine ist Intel Pentium Dual Core T2310.



  • Es heißt Optionen.

    Also , alles was in der Form -WXXXXX ist, gibt an, dass bei XXXXXXX eine Warnung ausgegeben werden soll.
    -O3 ist die höchste Optimierungsstufe, die -OX sind aber praktisch nur eine Zusammenfassung verschiedener -fXXXX.
    Die -msseX gibt an, welches SSE dein Prozessor unterstützt.
    -march=XXX gibt ähnlich wie -msseX an, welche neueren Befehle verwendeet werden dürfen (=schneller), musst aber schauen welchen Prozessor du hast, Prescott ist glaube ich ein P4.
    -mfpmath=XXX kenne ich so nicht, es gibt aber wahrscheinlich an, dass Fließkommaarithmetik mittels SSE erledigt werden soll/darf/muss.

    Für manche Dinge (z.B. Kernel) sollte man aber z.B. höchstens -O2 verwenden.
    Was willst du denn damit kompilieren?



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Linux/Unix in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • welche gcc-Version und was soll compiliert werden?





  • 4.1.3
    Es sollen Programme für arithmetische Ausdrücke der Mathematik kompiliert werden. Wichtiger ist die Schnelligkeit.



  • Ja was für einen Prozessor hast du denn?



  • Sososo schrieb:

    Ja was für einen Prozessor hast du denn?

    Das habe ich schon geschrieben.



  • Laut Wikipedia ist das ein Merom-2M kern - dann müsste -march=nocona die beste Einstellung für gcc-4.1 sein. Ab gcc-4.2 gibt es march=native, damit erübrigt sich die Sucherei, wenn das Ganze nur auf derselben Maschine laufen soll, ein eigener Scheduler für den core2 wird es aber erst mit gcc-4.3 geben.

    -fomit-frame-pointer ist empfehlenswert, Optimierungseinstellungen "im Prinzip" so hoch wie möglich, allerdings führen einige Einstellungen je nach Source zu einer Verschlechterung. Da hilft nur ausprobieren.
    Für den Anfang ist sicher gut:
    CXXFLAGS="-O3 -march=nocona -fomit-frame-pointer"
    sonstige Flags, die nicht die Optimierung betreffen, nach Belieben..
    CXXFLAGS="${CXXFLAGS} -ansi -std='c++98' -pedantic -Wall -Weffc++ -Wold-style-cast -Wextra -Wunknown-pragmas -Wshadow -Wwrite-strings -Wconversion -Wunreachable-code -Winline"


Anmelden zum Antworten