Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
28. Okt 2005
Um die Variable im Speicher/Register ging es hier garnicht. Es ging um das doppelt ausgeführte xor zum Erzeugen einer Null.
Ist wie gesagt garnicht Gegenstand der Diskussion ;)
Das wäre dann aber grober Unfug, es sei denn D2005 tut auf einmal etwas ganz neues: Lokale Variablen mit 0 (nil) initialisieren. Ist dem so? Warum erkennt der Optimizer dann nicht auch, dass in der Prozedur x nur...
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
28. Okt 2005
Mh, find ich nun fast enttäuschend. Dann heisst Inlining dort tatsächlich nur Ersparnis des Calls, bzw. der Vorbereitung der Parameter, und den Optimizer kümmerts nicht? In meinen Augen inkonsequent. In einem komplexeren Zusammenhang könnte ich ja verstehen dass da sicher nicht alles super-tip-top optimiert werden kann, da die Zusammenhänge sehr komplex werden können. Aber in so einem einfachen...
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
28. Okt 2005
Dessen bin ich mir bewusst. Daher schrieb ich ja auch, dass es hier doch sehr stark auf den Kontext ankommt. Allein schon wenn man nicht "lose" Funktionen, sondern Klassenmethoden aufruft ändert sich einiges. Auch was sonst drumherum passiert kann das ganze Bild verändern. Eine pauschale Antwort ist hier also kaum machbar.
\\edit:
:mrgreen:
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
28. Okt 2005
Weil es den Prozeduren des Threaderstellers gleicht ;)
Forum: Object-Pascal / Delphi-Language
Delphi
by dizzy,
28. Okt 2005
Letztendliche Gewissheit bringt nur ein Durchsteppen durch das CPU-Fenster.
...was ich nun auch mal getan habe:
function y: Integer;
----------------------
CALL y
XOR eax, eax // Inhalt von eax 0 setzen
RET // Rücksprung