Waldek Hebisch <[EMAIL PROTECTED]> writes: > Well, what you see here? I see function calls :) All Spad function calls > crossing constructor boundary are indirect function calls, which basically > gives Lisp compiler almost no chance to optimize. Some functions are > inlined, in such case Lisp compiler may give much better code. For this to > happen there are two conditions: constructor must be mentioned in > '$optimizableDomainNames' list and there must be 'SPADreplace' propery on the > Lisp name of the function. Spad compiler puts this property only on > functions it considers simple enough, apparently 'qelt' is deemed too > complicated (in IIARRAY2 only 'empty' and 'nrows' have this property). > > I think that key to speeding arrays is to find out how to inline 'qelt' (and > relatives).
Do you know, or can you point me to, the place where SPADreplace is used? Up to now I thought the lisp compiler would just compile the code.lsp files, but how would it make use of the SPADreplace property then? Martin ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ open-axiom-devel mailing list open-axiom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-axiom-devel