[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
25 Nov 2006 22:18:29 -0500
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2
Greetings! Have checked in the experimental tagbody optimization,
which can use a heavy test. This makes many loops, for example,
without optimization keywords like fixnum, fully optimizable anyway.
I've gotten a significant speedup on ansi tests with this in.
Ideally, it could be implemented better. Some considerable work has
been done in centralizing the type propagation logic into pass1 of the
compiler -- here we try to guess a nil return type pertaining to the
solitary true branch of a toplevel if in the tagbody using
macroexpansion, portable-source calls, and a tiny code walker. This
is to prevent yet another iteration over pass1 in tagbody at the
expense of possibly missing some cases.
(disassemble '(lambda (x) (loop for i below (length x) do (incf i))) nil)
Camm Maguire address@hidden
"The earth is but one country, and mankind its citizens." -- Baha'u'llah