Frage

Ich habe habe die Untersuchung der Wirkung von __restricting bestimmte Zeiger in einem C ++ -. Code, wenn es über den GCC-Compiler kompiliert

Es hat sich gezeigt, dass nicht nur die Laufzeit bleibt ganz die gleiche, aber die ausführbare Datei scheint nicht verändert zu haben, die Größe in Bytes ist genau das gleiche wie zuvor.

Meine GCC-Version ist

gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

und obwohl es dieses C akzeptiert ++ - Erweiterung beim Parsen, scheint es nicht, es zu betrachten, wenn Sie den Code der Montage. So gibt es entweder einen Grund, der Compiler nicht weiß, wie diese semantischen Informationen zu verwenden oder diese Informationsverarbeitung ist komplett deaktiviert.

Der Code führt eine Menge Zahl Knirschen, würde es ihn haben freigegeben für Prüfzwecke. Können Sie helfen?

War es hilfreich?

Lösung

restrict-Qualifikation ist im Grunde eine Möglichkeit für den Benutzer, die Compiler zu helfen, bestimmte Aliasing bezogenen Optimierungen durchzuführen. Sie werden nur dann einen Einfluss, wenn diese Optimierungsmöglichkeiten im Code bereits vorhanden sind, so mit restrict einfach ermöglicht es sie, in Situationen, in denen die Compiler zuvor eine „sichere“ (Nicht-Optimierung) Codegenerierung zu verwenden hatten. In anderen Zusammenhängen wird restrict keine Auswirkungen auf alle haben.

Also, kann du einig restrict-Qualifikation, um Ihren Code. Aber war einer von ihnen im Zusammenhang verwendet, wo sie Materie tatsächlich, das heißt, wo tatsächlich sie dem Compiler mehr Freiheit geben, um den Code zu optimieren? Wenn nicht, werden Sie nicht glauben, Ihren Code zu ändern erwarten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top