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

ooc-960620



Hi.

This update fixes some small bugs in the front-end and contains an
almost complete ANSI-C back-end.  The `almost' refers to the fact,
that recursion in connection with nested procedures aren't handled
properly yet.  This problem appears since the C back-end implements
accesses to nonlocal (but not global) variables by adding additional
parameters to nonlocal procedures, instead of maintaining static links
of its own (like an assembler back-end would do it).  Otherwise legal
C code is generated.  

I hope that I'll have an oo2c executable build through oo2c by the end
of next week.  Your guess is as good as mine, whether this executable
will do what it's supposed to do or not.

As soon as the `stupid' C back-end manages to build correct code, I'll
fix the generated run-time checks and start working on a smarter
allocator (i.e., hierarchical graph coloring).

-- mva



I forgot to add the ChangeLog to the last update anouncement, so here
is a full month's worth of changes (May 20 to June 20):

Wed Jun 19 17:12:46 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/SymbolFile.Mod (ReadStruct):
	Restore `objIsParameter' flag when reading the formal
	parameter of a procedure type.

	* frontend/SymbolFile.Mod (ReadObject):
	Set `moduleId' for every object read from symbol file.

	* frontend/Attributes.Mod (TypeTag): Fixed type tag for pointer types.

	* frontend/ParseExpr.Mod (Designator): Fixed type tag for super call.

Mon Jun 17 14:42:32 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/ParseStatm.Mod (PredefCodeGen):
	When parsing a call of SYSTEM.VAL, then set the
	result's address to the one of the operand.

Sat Jun 15 08:33:46 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/SymbolFile.Mod (ReadStruct):
	Restore `Struct.len' (extension level) when reading a
	record type.

	* frontend/Data.Mod:
	Clarification: `Struct.len' holds the extension level of a record
	type.

Wed Jun 12 06:10:45 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/Data.Mod (FindGlobalRegion):
	Extendend domain to include operands, results,
	instructions, and regions.

Tue Jun 11 16:13:49 1996  Juergen Zimmermann  <jnzimmer@informatik.uni-kl.de>

	* optimizers/ConstPropagation.Mod:
	Fixed bug with `BitTest' being in the wrong case block.

	Fixed wrong evaluation of SYSTEM.LSH and SYSTEM.ROT on constants with
	data types different from LONGINT.

Sun Jun  9 17:33:44 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* backend/ansi-c/doc/Errors.ext, backend/ansi-c/WriteGSAvC.Mod, backend/ansi-c/GenStatm.Mod, backend/ansi-c/Classify.Mod, backend/ansi-c/Allocate.Mod:
	Initial revision

Thu Jun  6 03:52:03 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* doc/Literature:
	Added two papers on graph coloring, [Bri92] and [BCT94].

Sun Jun  2 15:07:27 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/ParseStatm.Mod (RegisterSideEffects):
	Changed location attributes of results of a
	call instruction that signal a modified variable parameter.  The
	location was the formal parameter.  Now it's the variable that was
	passed to the parameter, or NIL if it was a complex designator (like a
	record field or array element).

	(RemoveCollectOperands): Discarded.  All local variables appear as
	operands of a collect instruction.

	* frontend/SymbolFile.Mod (ReadObjList):
	Fixed module ids of record elements and formal
	parameters read from symbol file.

Sat Jun  1 12:40:38 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/Attributes.Mod, frontend/ParseStatm.Mod, frontend/ParseExpr.Mod, frontend/Opcode.Mod:
	Inserted variable address as second parameter into access-local,
	access-nonlocal, and their update counterparts.  This way all access
	resp. update instructions take their variable's address as argument.

	Instruction `zero' got an address parameter, too.

Fri May 31 12:19:39 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* backend/ansi-c/doc/ExternalC:
	Added module flag INIT_FCT.  Minor adjustments to syntax of module
	flags.

	* backend/demo/ood.Mod: Adjusted call of `Error.EmitErrors'.

	* frontend/Error.Mod (EmitErrors):
	Added parameter to suppress all warnings.  This is used
	by `Make' to avoid generation of warnings while scanning just the
	import list of a module.

Thu May 30 14:00:34 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/ParseStatm.Mod, frontend/Opcode.Mod:
	Added value of $mem as last argument to trap instructions.  It's only
	present if $mem is defined at the place of the trap.

Sat May 25 16:53:01 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/Check.Mod:
	Added procedure to check restrictions of update instructions for
	structured variables.

	* frontend/ParseStatm.Mod (AssignToVar):
	Don't create update-local instruction if the new value
	is result of a call, reclaim, or gate instruction.

Fri May 24 18:49:35 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/ParseStatm.Mod:
	Fixed result types of update and reclaim instructions.  Don't insert
	update-local for results of reclaim.

Thu May 23 15:37:43 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/Data.Mod:
	New constant `minInstrFlag'.  Holds the index of the smallest set
	element in `Instruction.flags' that isn't used by the front-end.

Tue May 21 19:54:07 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* backend/demo/CodeGen.Mod (CreateModule):
	Extended spec to distinguish between actual
	translation of a module and integration of the module into the make
	data structure (without translation, since its generated files are up to
	date).

Mon May 20 20:12:50 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/WriteGSA.Mod, frontend/ParseStatm.Mod, frontend/ParseExpr.Mod, frontend/Opcode.Mod:
	Added instructions access-local and update-local.  They are inserted
	when refering to structured (i.e. record, array, or complex) local
	variables or value parameters.  See file frontend/doc/AccessLocal for
	details.