On Aug 29, 8:35 pm, Andreas Davour <·······@updateLIKE.uu.HELLse>
wrote:
> I've just spent three days in a application tuning seminar, learning
> everything about cache lines, cache hits, inlining functions, unrolling
> loops, openMP and more of that kind of techniques. If I didn't like
> Fortran almost as much as Lisp, it might had been tiring.
>
> This got me wondering. How much of these kind of tools for optimizing
> code is implemented in the popular lisp compilers? What compiler is best
> at it? Worst? What can be improved?
>
> I know I have read that by declarations and smart programming that don't
> trigger gc can generate code that is comparable to C (at least that was
> the state of CMUCL a few years back), but I have never really
> investigated how the performance is achieved.
>
> Anyone in the know who can enlighten me? I'd love to try my new
> knowledge about profiling and see things like loop unrolling happening
> in my lisp system.
>
> /Andreas
>
> --
> A: Because it fouls the order in which people normally read text.
> Q: Why is top-posting such a bad thing?
> A: Top-posting.
> Q: What is the most annoying thing on usenet and in e-mail?
You'd really have to ask the implementors of the Common Lisp
compilers. My speculation is that most likely none of them do this
kind of optimization. Most were written before cache layout became as
important a factor as it is today. And most of the outstanding Common
Lisp compilers are not very sophisticated when it comes to code
generation; this varies a lot between implementations. But I agree
with you that it would be interesting to know more about what each
compiler does.