[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-960520
Hi.
The first (tiny) module has been successfully translated to ANSI-C.
And no, it was not the infamous `Hello World', but rather a
Strings.Length procedure plus some calls to Unix.printf. Not much,
but it's a start.
This update fixes some bugs and corrects some inconsistencies in
Data.Mod and Opcode.Mod (see ChangeLog below for details).
-- mva
ChangeLog May 10 to May 20:
Mon May 20 14:30:55 1996 Juergen Zimmermann <jnzimmer@informatik.uni-kl.de>
* optimizers/Schedule.Mod:
Simple version for ANSI-C backend... No heuristics, but as
similar to the original gsa code as possible.
* optimizers/AlgebraicTransformation.Mod:
Added constant forwarding for bound(Range|Index) instructions.
* optimizers/Schedule.Mod: Initial revision
Mon May 20 12:25:03 1996 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/SymbolFile.Mod (IntegrateSymbols):
Do not discard objects that may be used for
debugging output. Otherwise WriteGSA may abort with a nasty NIL
dereference.
Sun May 19 21:33:16 1996 Michael van Acken <acken@informatik.uni-kl.de>
* frontend/doc/Errors.lst, frontend/Make.Mod, frontend/SymbolFile.Mod:
Added format identifier to symbol files to distinguish between files
that were generated by different back-ends.
* frontend/ParseStatm.Mod, frontend/Opcode.Mod:
Added operand to `trap-case'. It holds the value of the case select
expression.
* backend/demo/Config.Mod:
Added constant `symbolFileFormat'. Holds a unique integer value for
every back-end. See also frontend/doc/SymFormats.
* frontend/doc/SymFormats: Initial revision
* frontend/Data.Mod (OpndType):
New function. Takes an operand (instance of Opnd),
returns its type (an instance of Struct).
* frontend/Data.Mod:
Instructions are hold in doubly linked list (again), since the
algorithm for building interference graphs for register allocation
traverses the instructions back to front.
* optimizers/DeadCodeElimination.Mod, frontend/ParseExpr.Mod, frontend/Opcode.Mod:
Changed behaviour of bound-index and bound-range to be consistent with
type-guard and type-assert: Result is always the value of the first
operand. If the runtime check is disabled, then the flag
`instrIsDisabled' is set. Disabled checks are removed when the final
dead code elimination is run.