[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: GLS at MIT-AI, (BUG LISPM) at MIT-AI
- From: RMS@MIT-AI
- Date: Thu ,23 Feb 79 11:25:04 EDT
GLS@MIT-AI 02/23/79 02:06:32 Re: OPTIMIZE in pass 1 of QCMP (QCP1)
The optimizer as it is currently structured seems to have
the general problem that at the point an optimizer is applied to
a form, the subforms of that form are not optimized. As a result,
a form like (EQUAL X (OR)) optimizes only to (EQUAL X 'NIL),
whereas if (EQUAL X 'NIL) were originally written, it would optimize
first to (EQ X 'NIL) and thence to (NOT X). The optimizer seems
to operate top-down, in effect, but this example indicates that
it were perhaps better arranged bottom-up.
The optimizer is called by some of the individual optimizers to avoid
this problem. If some neglect to do so, they can be fixed.
It can't be done bottom-up without being a separate
pass. I don't think that's worth it.