BorlandTalk.com Forum Index BorlandTalk.com
Borland discussion newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

New Fastcode library deisgn

 
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi Language BASM
View previous topic :: View next topic  
Author Message
John O'Harrow
Guest





PostPosted: Thu Oct 13, 2005 4:58 pm    Post subject: New Fastcode library deisgn Reply with quote



Fellow FastCoders,

I have taken the liberty of implementing the new library design, as recently
discussed in his group. and have posted the source in the attachments group.
I have done this by updating the library provided by Charalabos Michael (is
Charalabos your first or second name?)

This does not make it an official Fastcode library yet (the voting is still
continuing), but it does give programmers an opportunity to access it.

Feedback (both Good and Bad) will be appreciated.

regards,
John


Back to top
Eric W. Carman
Guest





PostPosted: Thu Oct 13, 2005 8:30 pm    Post subject: Re: New Fastcode library deisgn Reply with quote



I really like the new design. Haven't used it yet, so just based on a
review of the code. (Also, you should include the fastcode.inc file in the
attachments at least as an example of what options you have.)

Best Regards,
Eric


"John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote

Quote:
Fellow FastCoders,

I have taken the liberty of implementing the new library design, as
recently discussed in his group. and have posted the source in the
attachments group. I have done this by updating the library provided by
Charalabos Michael (is Charalabos your first or second name?)

This does not make it an official Fastcode library yet (the voting is
still continuing), but it does give programmers an opportunity to access
it.

Feedback (both Good and Bad) will be appreciated.

regards,
John





Back to top
Charalabos Michael
Guest





PostPosted: Thu Oct 13, 2005 9:37 pm    Post subject: Re: New Fastcode library deisgn Reply with quote



Hello John,

Quote:
I have taken the liberty of implementing the new library design, as recently
discussed in his group. and have posted the source in the attachments group.
I have done this by updating the library provided by Charalabos Michael (is
Charalabos your first or second name?)

This does not make it an official Fastcode library yet (the voting is still
continuing), but it does give programmers an opportunity to access it.

Feedback (both Good and Bad) will be appreciated.

Excellent and more and cleaner!
A couple comments:
1) The fastcode.inc is missing (i'm sending you my latest
one according to your modifications)
2) In a couple units, in the contributors names you have
placed you name twice.

And i'm also sending you via mail the latest test project and
the FastMove unit. (I've included your "10th" versions
from your latest fastmove unit)

--
Charalabos Michael - [Creation Power] - http://www.creationpower.com -
http://www.creationpower.gr

Back to top
Charalabos Michael
Guest





PostPosted: Thu Oct 13, 2005 9:42 pm    Post subject: Re: New Fastcode library deisgn Reply with quote

Hello John,

Quote:
And i'm also sending you via mail the latest test project and
the FastMove unit. (I've included your "10th" versions
from your latest fastmove unit)

btw, should i start to prepare more challenges
or i should wait ? (From voting it seems that the
new design will go from now on ...)

--
Charalabos Michael - [Creation Power] - http://www.creationpower.com -
http://www.creationpower.gr

Back to top
John O'Harrow
Guest





PostPosted: Thu Oct 13, 2005 11:30 pm    Post subject: Re: New Fastcode library deisgn Reply with quote


"Charalabos Michael" <chmichael (AT) _-_no_-_creationpower_-_spam_-_ (DOT) com> wrote
in message news:434ed42a (AT) newsgroups (DOT) borland.com...
Quote:
Hello John,

And i'm also sending you via mail the latest test project and
the FastMove unit. (I've included your "10th" versions
from your latest fastmove unit)

I would hold fire with Move at the moment.

FastMove is unusual in that it doesn't simply replace the existing RTL
function with a call to the replacement function. It actually patches a
larger portion of the existing RTL code, such that much of the work
necessary is done before the appropriate move function is called.
(experimentation has shown that over 95% of all moves in a typical
application are of less than 32 bytes). Patching Move in the same way as
other function will be slower than using FastMove.

Quote:

btw, should i start to prepare more challenges
or i should wait ? (From voting it seems that the
new design will go from now on ...)

--
Charalabos Michael - [Creation Power] - http://www.creationpower.com -
http://www.creationpower.gr



Back to top
Charalabos Michael
Guest





PostPosted: Fri Oct 14, 2005 12:36 am    Post subject: Re: New Fastcode library deisgn Reply with quote

Hello John,

Quote:
I would hold fire with Move at the moment.

FastMove is unusual in that it doesn't simply replace the existing RTL
function with a call to the replacement function. It actually patches a
larger portion of the existing RTL code, such that much of the work
necessary is done before the appropriate move function is called.
(experimentation has shown that over 95% of all moves in a typical
application are of less than 32 bytes). Patching Move in the same way as
other function will be slower than using FastMove.

Ok!

--
Charalabos Michael - [Creation Power] - http://www.creationpower.com -
http://www.creationpower.gr

Back to top
Pierre le Riche
Guest





PostPosted: Sat Oct 15, 2005 11:48 am    Post subject: Re: New Fastcode library deisgn Reply with quote

Hi John,

I noticed there was a discussion earlier about duplicating functions and the
maintenance issues it involves. I didn't follow the whole discussion, but
have you considered that perhaps we could use include files that only
contains the implementation part of each function?We could then include the
same file four times into a single .pas for the 4 different alignments,
saving a lot of time.

Example:

unit CompareStrPLR;

interface

function CompareStrPLR1a(x, y: string): Integer;
function CompareStrPLR1b(x, y: string): Integer;
function CompareStrPLR1c(x, y: string): Integer;
function CompareStrPLR1d(x, y: string): Integer;

implementation

function CompareStrPLR1a(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

procedure Pad1;
asm
nop;
end;

function CompareStrPLR1b(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

procedure Pad2;
asm
nop;
end;

function CompareStrPLR1c(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

procedure Pad3;
asm
nop;
end;

function CompareStrPLR1d(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

end.

And then CompareStrPLR1.Inc could contain everything from "asm" to "end;"
for that function.

We could perhaps keep every entrant's submissions in a subfolder, so it
doesn't become too cluttered.

Could this work?

Regards,
Pierre


Back to top
John O'Harrow
Guest





PostPosted: Sun Oct 16, 2005 9:32 am    Post subject: Re: New Fastcode library deisgn Reply with quote

I like this idea.

It removes any possibility of there being any difference between the
different aligned version. (I Quite often change one of these 4 to test an
idea, and then either fail to put it back or overwrite it with the next B&V
release and lose an improvement). With the new type B&V tool layout (as
used in IntToStr), it is so quick and easy to add/remove functions, that I
no longer need to do this.

regards,
John

I have always considered have 4 differently aligned versions of each
function a bit of a superficial exercise, since we have no control over how
the function will be aligned outside the B&V.


"Pierre le Riche" <pleriche (AT) hotmail (DOT) com> wrote

Quote:
Hi John,

I noticed there was a discussion earlier about duplicating functions and
the maintenance issues it involves. I didn't follow the whole discussion,
but have you considered that perhaps we could use include files that only
contains the implementation part of each function?We could then include
the same file four times into a single .pas for the 4 different
alignments, saving a lot of time.

Example:

unit CompareStrPLR;

interface

function CompareStrPLR1a(x, y: string): Integer;
function CompareStrPLR1b(x, y: string): Integer;
function CompareStrPLR1c(x, y: string): Integer;
function CompareStrPLR1d(x, y: string): Integer;

implementation

function CompareStrPLR1a(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

procedure Pad1;
asm
nop;
end;

function CompareStrPLR1b(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

procedure Pad2;
asm
nop;
end;

function CompareStrPLR1c(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

procedure Pad3;
asm
nop;
end;

function CompareStrPLR1d(x, y: string): Integer;
{$I CompareStrPLR1.Inc}

end.

And then CompareStrPLR1.Inc could contain everything from "asm" to "end;"
for that function.

We could perhaps keep every entrant's submissions in a subfolder, so it
doesn't become too cluttered.

Could this work?

Regards,
Pierre





Back to top
Philip von Melle
Guest





PostPosted: Sun Oct 16, 2005 1:47 pm    Post subject: Re: New Fastcode library deisgn Reply with quote

"John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote:

Quote:
I would hold fire with Move at the moment.

FastMove is unusual in that it doesn't simply replace the existing RTL
function with a call to the replacement function. It actually patches
a larger portion of the existing RTL code, such that much of the work
necessary is done before the appropriate move function is called.
(experimentation has shown that over 95% of all moves in a typical
application are of less than 32 bytes). Patching Move in the same way
as other function will be slower than using FastMove.

Is this a recommendation against the unofficial FastMove unit available
from www.fastcode.dk ? The version there is v2.30 dated 12-FEB-2005.

I read some newsgroup posts about FastMove v3.02 - where can I get it from?

I am using FastMM4 and there it is recommended to use FastMove in
conjunction with FastMM4 (and some conditional defines) and in the new
FastCodeLib.zip the recommended uses clause order is FastMM4, FastMove,
FastCode.

Any recommendations regarding the use of FastMove are appreciated.

Regards, Philip

Back to top
John O'Harrow
Guest





PostPosted: Sun Oct 16, 2005 2:39 pm    Post subject: Re: New Fastcode library deisgn Reply with quote


"Philip von Melle" <philip.vonmelle (AT) globetrotter (DOT) de> wrote

Quote:
"John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote:

Is this a recommendation against the unofficial FastMove unit available
from www.fastcode.dk ? The version there is v2.30 dated 12-FEB-2005.

The version of FastMove on the old Fastcode site is a fairly old version.
It does not include the SSE2 and SSE3 optimized code. It also has a bug in
the DEP (Data Execution Prevention) code

Quote:
I read some newsgroup posts about FastMove v3.02 - where can I get it
from?

Version 3.02 is still the latest version of FastMove. You should be able to
find a copy in the attachments newsgroup. If not, let me know and I will
repost it.

Quote:
I am using FastMM4 and there it is recommended to use FastMove in
conjunction with FastMM4 (and some conditional defines) and in the new
FastCodeLib.zip the recommended uses clause order is FastMM4, FastMove,
FastCode.

FastMM4 does not use FastMove itself (it has its own internal moves).

FastCodeLib is still as a very early stage in its development. The final
layout has not formally agreed yet and there are still many functions to be
added. If you are using it now, treat it as "beta" software.

Quote:
Any recommendations regarding the use of FastMove are appreciated.

Simple. Just add FastMove to any uses clause.and that's it. It is a
totally independent unit.

Note - I may be removing SSE2 support from within FastMove since it offers
no speed improvement over SSE, and is therefore just unnecessary code bloat.

regards,
John



Back to top
Pierre le Riche
Guest





PostPosted: Sun Oct 16, 2005 2:50 pm    Post subject: Re: New Fastcode library deisgn Reply with quote

Hi John,

Quote:
FastMM4 does not use FastMove itself (it has its own internal moves).

FastMM's custom move procedures can be switched on and off through
conditional defines. I haven't done much testing, but I am quite sure
FastMove will be faster with largish blocks. For smaller blocks FastMM uses
fixed-size move procedures, so they may be hard to beat. Fortunately the
various move procedures can be disabled or enabled separately.

I usually recommend using the fixed size move procedures of FastMM, but the
variable size move procedure of FastMove.

Regards,
Pierre



Back to top
Philip von Melle
Guest





PostPosted: Mon Oct 17, 2005 6:34 am    Post subject: Re: New Fastcode library deisgn Reply with quote

"John O'Harrow" <john (AT) elmcrest (DOT) demon.co.uk> wrote:

Quote:
I read some newsgroup posts about FastMove v3.02 - where can I get it
from?

Version 3.02 is still the latest version of FastMove. You should be
able to find a copy in the attachments newsgroup. If not, let me know
and I will repost it.

It's not there anymore. I'd appreciate if you repost it there, please.

Best Regards and thanks for the answers,
Philip

Back to top
John O'Harrow
Guest





PostPosted: Mon Oct 17, 2005 8:04 am    Post subject: Re: New Fastcode library deisgn Reply with quote

Quote:

It's not there anymore. I'd appreciate if you repost it there, please.

Done



Back to top
Display posts from previous:   
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi Language BASM All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.