* use indexword() in tsuperregisterworklist.delete, greatly speeds up

compilation of tw2242
This commit is contained in:
Jonas Maebe 2004-07-18 15:14:59 +00:00
parent aa6475e9fd
commit c7afb87846

View File

@ -387,10 +387,12 @@ implementation
function tsuperregisterworklist.delete(s:tsuperregister):boolean; function tsuperregisterworklist.delete(s:tsuperregister):boolean;
var i:word; var
i:longint;
begin begin
delete:=false; delete:=false;
{$ifndef FPC}
for i:=1 to length do for i:=1 to length do
if buf^[i-1]=s then if buf^[i-1]=s then
begin begin
@ -398,6 +400,14 @@ implementation
delete:=true; delete:=true;
break; break;
end; end;
{$else FPC}
i := indexword(buf^,length,s);
if i <> -1 then
begin
deleteidx(i);
delete := true;
end;
{$endif FPC}
end; end;
@ -585,7 +595,11 @@ finalization
end. end.
{ {
$Log$ $Log$
Revision 1.91 2004-07-07 17:35:26 daniel Revision 1.92 2004-07-18 15:14:59 jonas
* use indexword() in tsuperregisterworklist.delete, greatly speeds up
compilation of tw2242
Revision 1.91 2004/07/07 17:35:26 daniel
* supregset_reset clears 8kb of memory. However, it is being called in * supregset_reset clears 8kb of memory. However, it is being called in
inner loops, see for example colour_registers. According to profile data inner loops, see for example colour_registers. According to profile data
this causes fillchar to be the most time consuming procedure. this causes fillchar to be the most time consuming procedure.