Gibt es ein Werkzeug, wo ich in meinem c-Code verschüttet habe?Tools zum Anzeigen von Verschüttungen in einem c-Code
Ich meine sehen, welche Code-Block möglicherweise ein Register in den Speicher verschieben.
EDIT: was für ein Spill ist:
Im Prozess der Erstellung Ihres Codes an einem gewissen Punkt werden Sie Zuteilung registrieren zu tun haben. Der Compiler wird ein Interferenzdiagramm erstellen ("Variablen" sind Knoten und sie sind verbunden, wenn sie gleichzeitig aktiv sind). Von diesem Punkt an gibt es einen linearen Prozess, der die Graph-Färbung ausführt: Für jede Variable wird ein Register zugewiesen, das nicht mit anderen Variablen interferiert ... Wenn Sie nicht genug Register haben, um den Graphen zu färben, schlägt der Algorithmus und eine Variable (Register) wird verschüttet (in den Speicher verschoben).
Vom Standpunkt der Softwareentwicklung aus gesehen bedeutet dies, dass Sie eine Variable live immer minimieren sollten, damit Sie die Gefahr eines Überlaufs minimieren können.
Wenn Sie Code optimieren möchten, sollten Sie nach solchen Dingen suchen, da ein Überlauf eine zusätzliche Zeit zum Lesen/Schreiben von Speicher bietet. Ich war auf der Suche nach einem Tool oder einem Compiler-Flag, das mir sagen kann, wo es sich befindet, damit ich es optimieren kann.
was ist ein verschütten? –
Werfen Sie einen Blick auf meine Bearbeitung :-) –
danke für die Erklärung! –