Wie werden alle Optimierungen in GCC deaktiviert? Die Verwendung von -O0 funktioniert nicht, da es immer noch die Anweisungen optimiert, die keine Auswirkungen haben, oder irgendeinen Code, der nach einer Endlosschleife ohne Break-Anweisungen ist.So deaktivieren Sie alle Optimierungen in GCC
8
A
Antwort
7
Es gibt keine Möglichkeit, gcc nicht unerreichbaren Code und Anweisungen zu ignorieren, die keine Wirkung haben.
Sie können Code, der nicht erreichbar ist, mit volatilen Variablen erreichbar machen.
volatile bool always_true = true;
if(always_true )
{
//infinite loop
//return something
}
//Useless code
in dem obigen Beispiel gcc wird nutzlos Code nicht optomize, weil es nicht weiß, kann es infact nutzlos ist
int a = 5;
int b = 5;
volatile int c = 9;
c += 37;
return a + b;
In diesem Beispiel ganze Zahl c wird nicht optimiert werden, weil gcc tut kann nicht wissen, dass es totes Gewicht ist.
2
Sie müssen Ihren Code fast unmöglich machen, vom Compiler optimiert zu werden. Zum Beispiel:
- Verwendung
volatile
Stichwort auf Variablen, die Sie nicht wünschen - optimiert werden sicherstellen, dass der Code Effekt hat, zum Beispiel: nicht nur nur den Variablenwert zu ändern, sondern auch den Wert ausdrucken oder speichern auf eine andere Variable oder Arithmetik auf die Variable und speichern sie in einer anderen variablen
- reference/die Variable in andere Funktion ändern, um der Compiler stellen sie sicher, kann es nicht beurteilen, nicht in der Kompilierung verwendet
Verwandte Themen
- 1. Deaktivieren Sie alle GCC-Warnungen
- 2. So deaktivieren Sie alle Warnungen mit Pragma-Direktiven in GCC
- 3. GCC Standard Optimierungen Verhalten
- 4. So deaktivieren Sie bestimmte Optimierungsflags in gcc
- 5. So deaktivieren Sie alle Schaltflächen
- 6. So deaktivieren Sie alle Objekte in Fabric.js
- 7. Wie können Sie wissen, welche Optimierungen in gcc aktiviert sind?
- 8. gcc deaktivieren Sie alle Warnungen für ein paar Zeilen Code
- 9. So deaktivieren Sie selektiv -Werror mit #pragma mit gcc
- 10. Was sind die teuren Optimierungen von GCC?
- 11. Deaktivieren GOT in GCC
- 12. Wie wird im Release-Modus mit Optimierungen in GCC gebaut?
- 13. Alle bis auf wenige Warnungen in gcc deaktivieren
- 14. Welcher ist besser, gcc oder armcc für NEON-Optimierungen?
- 15. Deaktivieren Sie alle SCON-Warnungen
- 16. So deaktivieren Sie E_STRICT
- 17. So deaktivieren Sie "periodicals_call_remote"
- 18. Können Sie alle Druckanweisungen in SML deaktivieren
- 19. So deaktivieren Sie die Rechtschreibprüfung für alle meine Projekte
- 20. Javascript deaktivieren Sie alle Cookies
- 21. So deaktivieren Sie Verknüpfungen in WPF TextBox
- 22. SelectCheckboxMenu - Deaktivieren Sie "alle-Auswahl"
- 23. So deaktivieren Sie Testsuite in ScalaTest
- 24. Deaktivieren Sie alle anderen Kontrollkästchen
- 25. Deaktivieren Sie alle Programm-Sounds
- 26. So deaktivieren Sie die Datenbankkonfiguration in symfony2
- 27. LogBack, So deaktivieren Sie in bestimmten Umgebungen
- 28. So deaktivieren Sie "npm install" in VS2015
- 29. Deaktivieren Sie Warnmeldungen in GCC über Header-Dateien?
- 30. So verwenden Sie mehrere Versionen von GCC
keine es gibt alles Ich habe ist -g -g strict-dwarf -Wall – user2124324
Ich glaube nicht, dass Sie alle Optimierungen ausschalten können. –
Auch ohne Flags macht gcc einige grundlegende Optimierungen. Es macht Sinn, Anweisungen ohne Auswirkungen zu entfernen (Optimierung oder nicht). Nur neugierig: Warum willst du toten Code behalten? –