[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-960304
The latest bugfixes in constant propagation and a speedup in value
numbering allow to remove upto 23% of the GSA instructions from the
intermediate code. The current set of optimizations can be activated
by e.g. "ood -MA --stats --opt dgGcAC ood". Iterating the
optimizations gives another 400+ instructions.
-- JnZ
In an effort to clean up the directory structure I took all files of
general interest from the ansi-c directory and put them into
backend/demo. The main module `ood' is virtually identical to the
most recent version of `oo2c' and implements a simple demo driver for
OOC. While `ood' will continue to serve as a debugging tool for the
front-end's GSA ouput and the optimization algorithms, `oo2c' will
start to infest your harddisk with hideous C code (and it won't
support options like --gsa and --stats anymore).
So, if you've been toying with oo2c, please replace in .o2c.red the
path backend/ansi-c with backend/demo, and use ood instead of oo2c.
-- mva
PS: I hope that I updated all text references to the new layout,
please send me a note if you stumble over texts that aren't up to
date.
ChangeLog from Feb 23 to Mar 4:
Mon Mar 4 16:34:38 1996 Juergen Zimmermann <jnzimmer@informatik.uni-kl.de>
* optimizers/ConstPropagation.Mod (LatticeOfGate):
gate could be become bottom even though some inputs are still marked top. Fixed.
(ReplaceByConstants): Fixed problems with merges. Regions of
non-constant merges were not inspected during replacement phase.
* optimizers/ValueNumbering.Mod:
Added cleanup code at several positions.
* optimizers/TopologicalOrder.Mod: Removed unnecessary code.
Mon Mar 4 16:05:52 1996 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/UndefVar.Mod (InspectUses):
Fixed bug that caused all uses of a variable to be
ignored after a collect instruction. To be precise, the search wasn't
continued with the corresponding result value of the collect's
companion reclaim.
* frontend/ParseStatm.Mod (AssignToVar):
Always set location of result when assigning to $mem.
* frontend/ParseExpr.Mod (ElementAddress):
Oops. Used uninitialzed variable. Lucky me, OOC
detected this. ;-)
Sat Mar 2 15:22:30 1996 Juergen Zimmermann <jnzimmer@informatik.uni-kl.de>
* optimizers/ValueNumbering.Mod: (MoveDiffInstrSignature):
Fixed bug with uninitialized variable `pivotMerge'. This could have
caused unnecessary splitting of regions containing `gates'.
(Partition.Length):
Removed some unused variables.
(CSE):
Removed redundant type guard.
Sat Mar 2 13:25:20 1996 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/Opcode.Mod:
New operand of call instruction. The third operand now holds a
reference to the called (normal or type-bound) procedure or
`Data.constUndef' if the call activates a procedure variable. This
encodes the (static) type-bound procedure and its receiver directly
into the call.
* frontend/Data.Mod:
Added new constant `constUndef' that can be used to signal an
undefined or missing operand.
Fri Mar 1 17:45:08 1996 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/doc/TranslationPatterns:
Updated the conditional expression patterns to match the changes I
made 6 weeks ago...
* backend/demo/ood.Mod, backend/demo/CodeGen.Mod, backend/demo/Config.Mod:
Moved from the ansi-c directory into demo/, minor text cleanups.
* backend/ansi-c/CodeGen.Mod, backend/ansi-c/Config.Mod, backend/ansi-c/StdTypes.Mod, backend/ansi-c/oo2c.Mod, backend/ansi-c/SystemFlags.Mod:
Initial revision
* README: Updated text to refer to backend/demo/ and ood (instead of
backend/ansi-c/ and oo2c).
* frontend/doc/ComplexExtension: Initial revision
Tue Feb 27 15:21:53 1996 Juergen Zimmermann <jnzimmer@informatik.uni-kl.de>
* optimizers/ValueNumbering.Mod (SplitPartitionByNonInstr):
Fixed bug in `moveIt' predicate which
caused too many splittings, if the `pivotOpnd. arg IS D.Result' was
true.
Increased speed by using doubly linked lists for `Node' and explicit
length information in `PartitionDesc'.
Tue Feb 27 11:56:56 1996 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/WriteGSA.Mod, backend/demo/CodeGen.Mod, backend/demo/doc/ood:
Added option --gsa-sorted.
* backend/demo/CodeGen.Mod:
Added --opt options "D" (to run dead code elimination between code
transformations) and "C" (to run a common subexpression elimination).
Fri Feb 23 14:29:29 1996 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/ParseDecl.Mod (FinishRegion):
Remove constants of value NIL from the GSA code (they
are replaced by LONGINT consts of value 0).