Zitat von
dizzy:
Da kann der Optimierer nicht dran - mit Inlining hätte er hier also sogar einen doppelten Vorteil: Einmal spart man sich den CALL, und zum zweiten ließe sich eine ganze Anweisug wegoptimieren. Ferner würde sich dann sogar erkennen lassen, dass v immer der selbe Wert zugewiesen wird, und der ganze Kram incl. Schleife könnte rausgeschmissen werden, und v ein einziges Mal mit einer Konstanten belegt... jaja, ich war schon immer Fan von Inlining ^^
Und hier der Test dazu:
Delphi-Quellcode:
procedure x(var AValue: Integer); inline;
begin
AValue := 0;
end;
function y: Integer; inline;
begin
Result := 0;
end;
var
i: Integer;
begin
x(i);
i := y;
end.
http://img237.imageshack.us/img237/7222/temp2nh.png
Mein Wissen über Assembler tendiert zwar gegen null, aber das sieht für mich ziemlich ähnlich aus
. Die Geschwindigkeiten sollten wohl auch nah beieinander liegen
² . Von anderen Optimierungen sehe ich aber nichts.