[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).