[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-960816
I messed around with the optimizers to find out which are working or
could be made working by me. The results were poor. Only the
algebraic transformations, gate reduction, and guard propagation work
resp. do not break the oo2c compiler. They correspond to the command
line argument `--opt gGA'. Ever the optimist I promoted them to the
status of "oo2c default optimization" :-)
In particular constant propagation/unreachable code elimination and
common subexpression elimination don't work -- for one reason or
another. Maybe Juergen can shed some light on this.
-- mva
ChangeLog Aug 12 to Aug 16:
Fri Aug 16 06:42:37 1996 Michael van Acken <acken@informatik.uni-kl.de>
* backend/ansi-c/GenStatm.Mod (EmitCase):
Handle lonely case guards correctly (i.e. case guards that
do not appear as operands of a case merge).
(Region): Be more careful when placing an `else' statement. Otherwise
it can happen that an `if' with two else parts is emitted.
* optimizers/GateReduction.Mod (VisibleValue):
Fixed calculation of final value of cascaded gates.
* backend/ansi-c/WriteGSAvC.Mod, frontend/WriteGSA.Mod (Id):
Try to place the instruction mark [XXX] in (and not before) the
instruction's indentation.
* backend/ansi-c/CodeGen.Mod (NumerateRegions):
Take into account that merges are moved into their
last guard in the generated C code.
New constant `defaultOptimizers' lists the optimizations that are
applied by default.