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