[Ecls-list] Type propagation

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Wed May 26 21:09:45 UTC 2010


I have stripped down and reimplemented the type propagator. Right now it is
kind of stable and implements forward type propagation for most forms. You
will see, however, some harmless notes such as the following one.
;;; Note:
;;;   Refusing to propagate FUNCTION

The result is that some benchmarks are now dominated by stupid statements in
them (ASSERT) (SBCL first column, ECL tonight second, ECL 10.4.1 last)

1D-ARRAYS                [      0.03]   1.00  2.67
2D-ARRAYS                [      0.24]   3.04  7.17
3D-ARRAYS                [      0.68]   2.19  11.78

Other benchmarks got a little bit worse because while the type information
is better, the inliner can not handle all that information so accurately.
For instance addition, multiplication, etc, are not inlined unless the
destination of the value is declared or inferred to have a real type.

Please understand that the CVS tree remains unstable. In particular these
and the changes to come are quite critical in the sense that wrong type
information can cause ECL to produce *wrong* code, specially with low safety
settings. That said, feel free to report problems or improvements!

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20100526/757def73/attachment.html>


More information about the ecl-devel mailing list