<div class="gmail_quote">On Fri, May 7, 2010 at 11:49 PM, Juan Jose Garcia-Ripoll <span dir="ltr"><<a href="mailto:juanjose.garciaripoll@googlemail.com">juanjose.garciaripoll@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The problem I am having right now is how to specify the interaction of these flags (which could also appear in proclamations, DECLAIM, etc) with the standard optimization settings. One possibility would be defining the whole set of optimizations as a bitmap, B. Each of the standard optimization settings would then do two things: first compute a combined mask of optimizations that are activated, A, and a combined mask of flags that are deactivated, D, and compute B <- (LOGANDC2 (LOGIOR B A) D)<br>
</blockquote><div><br></div><div>Not exactly in this form, but this idea has been already committed. This new representation of "policy" flags is accompanied by changes in the compiler which do the following:</div>
<div><br></div><div>- Improved optimization of AREF/ASET via compiler macros. As other optimizations soon to come, they are very efficient but without losing type safety.</div><div><br></div><div>- Fixed the generation of C variables for temporary results. Now the type of the variable is more accurately computed, avoiding a lot of inefficient calls to Lisp<->C conversion functions. Should really produce more efficient code.</div>
<div><br></div><div>- Removed the type filter. Now ECL keeps more accurate information about the type of arguments that a function expects, and this already helped us uncover a couple of bugs in the library.</div><div><br>
</div><div>Juanjo</div></div><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://tream.dreamhosters.com">http://tream.dreamhosters.com</a><br>