Verschiedene C/C++ Compiler haben #pragma
s, um die Optimierung zu kontrollieren.Was ist die Methode zur Optimierung einzelner Funktionen in einer Datei in GCC 4.1.1?
Zum Beispiel:
Codewarrior
#pragma optimization_level 0
void func_no_opt()
{
// Some Work - not optimized
}
#pragma optimization_level 3
void func_full_opt()
{
// Some Work - optimized
}
MSVC
#pragma optimize("g", off)
void func_no_opt()
{
// Some Work - not optimized
}
#pragma optimize("g", on)
void func_full_opt()
{
// Some Work - optimized
}
#pragma optimize("", on)
void func_default_opt()
{
// Some Work - default optimizations
}
Aus rein Performance-Gründen, ich habe ein paar Funktionen, die in allen Versionen optimiert werden müssen einschließlich Debug-Builds, die ansonsten nicht optimiert sind.
Gibt es einen Weg in GCC (speziell 4.1.1), etwas Ähnliches wie diese anderen Compiler zu tun? Leider wird GCC 4.4 nicht auf meiner Zielplattform (proprietäre Hardware) unterstützt, so dass ich das Optimierungsattribut nicht verwenden kann - d. H. __attribute__((optimize(...)))
.
Auch auf der Toolchain für diese Zielplattform gibt es ein Auto-Bulk-Build-Tool; Es ist also auch nicht möglich, die Funktionen in eine separate Datei zu zerlegen und die Optimierungsparameter zu ändern, da Dateien innerhalb eines Projekts automatisch kombiniert werden können, um die Kompilierungs- und Verbindungsgeschwindigkeiten zu erhöhen. Ich müsste eine separate Bibliothek nur dieser Funktionen erstellen und sie einbinden lassen, um die Absplitterungsmethode zu machen. Das könnte ein bisschen mehr Schmerz sein, als es wert wäre - besonders wenn es eine einfachere Methode gibt, dies zu erreichen.
Ugghh .. Ich hatte gehofft, es würde einen einfacheren Weg geben. Ich denke, ich werde einfach leiden müssen, bis sie GCC 4.4 unterstützen :-( – Adisak