[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OOC update



Hi.

I just uploaded the new versions of the OOC sources to the cognac ftp
server. 

A huge number of bugs were fixed.  As a premiere I was able to run
oo2c over the complete OOC sources, without any core dump or
interfering run-time error.  This means that the front-end is able to
translate approx. 550KB of non-trivial Oberon-2 code to GSA.  This
doesn't mean that the generated GSA code is correct, though ;-).

-- Michael van Acken



ChangeLog of Nov 27 to Dec 1:

Fri Dec  1 12:09:38 1995  Juergen Zimmermann  <jnzimmer@informatik.uni-kl.de>

	* optimizers/ValueNumbering.Mod: Initial revision

	* optimizers/AlgebraicTransformations.Mod:
	Added some evaluations of constants.

	* optimizers/ConstPropagation.Mod:
	Fixed bug with constant folding of `classBit(Set|Range|Clear)', type of
	instruction was falsely determined from first operand instead of the
	instruction itself.

Thu Nov 30 21:13:22 1995  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/doc/SymbolFile.ebnf:
	The list of contributing imported modules may contain modules that do
	not appear in the IMPORT list.  This happens whenever a type alias is
	used from an actually imported module that refers to another, not
	imported, module.

	* frontend/UndefVar.Mod (ReadsEmptyStore):
	Assume that all references to variables appearing
	beyond the formal parameters in a procedure's enter instruction
	correspond to existing read instructions.

	* frontend/SymbolTable.Mod (WarnUnused):
	Disabled warnings of unused formal parameters.

	(WriteTree): Don't write the objects representing imported modules
	into the symbol file.

	(WriteUsedImports): Don't forget to write modules into the sym file
	that provide types for it due to type aliasing, but don't appear in
	the current module's import list.

	(InitPredef): Oops.  Forget to define second parameters of ROT and
	LSH.

	* frontend/ParseStatm.Mod (AssignmentCompatible):
	Handle case of assignment to `grpString'
	(first parameter of COPY) correctly.

	Removed some redundant type-guards spotted by OOC itself.

	* frontend/ParseExpr.Mod (EvalInstr):
	Call `TryConstantFolding' with parameter
	`adaptIntRange=TRUE'.

	(Designator): Set a procedure designator's current value to its
	address.

	(StringConvertible): When converting a character constant into a
	string constant also update the item's current value to the new
	constant.

	* frontend/ParseDecl.Mod (ProcDecl):
	Don't clear export flag of type-bound procedures when the
	receiver's record type isn't exported.  The procedure may be called
	with a pointer as receiver.

	* frontend/ParseExpr.Mod (EvalDyadicOp):
	Overlooked comparison operators =, # when building
	opcode for SET operations.

	(Factor): Sequences of set elements were built with a wrong opcode.

Wed Nov 29 16:32:12 1995  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/SymbolTable.Mod (Find):
	When a search fails inside a type-bound procedure, continue
	the search in the global module scope.

	(ReadImportList): Store modules that provide types for the current
	module's symbol file in a local list.
	(ReadStruct): If a type is read from a different module, then search
	the local module list for the providing module (and not the global
	one).

	* frontend/ParseStatm.Mod (RegisterSideEffects):
	Corrected code that assigns the new values of a
	call's variable parameters to the actual parameter designators.

	* frontend/ParseExpr.Mod (Designator):
	Store receiver of type-bound procedure in global
	variable `receiverDesignator'.

Tue Nov 28 10:26:59 1995  Juergen Zimmermann  <jnzimmer@informatik.uni-kl.de>

	* optimizers/ConstPropagation.Mod:
	Changed the way `AlgebraicTransformation' is called.

	# added some comments

	* optimizers/SimpleScheduler.Mod:
	Rewrote `BuildDependencies' and `Schedulable'. Now only those
	dependencies are added as `SInfo' nodes which are not already
	visible from the operands of an instruction. This way, a lot of
	memory is conserved.

	Fixed typo in `ResolveRegion' which caused infinite loops.

	* optimizers/SimpleScheduler.Mod:
	Added some tests for NIL dereferences, which occured sometime, but I was
	not able to reproduce them. Perhaps it was a problem with an old version.

	Gates of Loop-Merges are no longer inspected for dependencies, as this
	caused always problems with nested loops.

Mon Nov 27 14:23:47 1995  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/Scanner.Mod (Init):
	Will checkout working file only if RCS is enabled and
	`fileName' looks like the name of a RCS master file.  Will not search
	for RCS master itself, assumes that `fileName' was previously passed
	to `ParamPaths.FindPath' to do this.

	* frontend/ParamPaths.Mod (Init):
	New config option `keepGivenPath': If TRUE, then FindPath or
	FindPathExt won't search the path lists when they are given a filename
	with a directory prefix (eg, "./foo" or "bar/foo").
	(FindPath): Changed search for `fileName' with non-empty directory.
	If `fileName' isn't found in the path list, try the name itself and
	then the RCS master.
	Changed name of NEWPATHS section to NEWFILES.

	* backend/ansi-c/oo2c.Mod:
	Changed behaviour of `ParamPaths.FindPath(f, x)' in such a way that
	the filename `f' isn't searched for in other directories iff `f'
	contains an non-empty directory part.