History log of /seL4-l4v-10.1.1/HOL4/examples/dev/sw/ANF.sml
Revision Date Author Comments
# 8d83067c 21-Oct-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove TABs from examples


# 4761143b 10-Aug-2009 Tjark Weber <Tjark.Weber@cl.cam.ac.uk>

Removed trailing whitespace from all .sml and .sig files.

This affects over 900 files and was done using emacs's delete-trailing-whitespace
function in batch mode. Building the system with Poly/ML and Moscow ML seems to
work, so I'm hoping these changes don't break anything. Please complain if
they do!


# 5d66b4e6 22-Nov-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

Modification related to function calls. funCall was modified to get nested function calls working. As a result, mechReasoning had to be adapted to keep track of the modified parts of the stack. Additionally, function inlining at the IR level was implemented for non recursive functions.


# 84a6ab5c 12-Nov-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

Modified to allow "subprograms". Now it is for example possible to assign the value result of a complex if-then-else statement to a temporary variable. Thus, more complicated programs with complicated let expressions or nested conditional-executions can be handled now.


# 2c3cc694 10-Nov-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

The representation of memory and access to memory was changed. Now memory is a map of 30 bit words to 32 bit words. Also the addressing of memory was changed to use just the upper 30 bit of the base register.


# 9d9c7a77 30-Aug-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

Merge between the portation to the new word-library / changes of IL and the new version checked in as TAR-file


# e569e7aa 23-Aug-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

changed VAR_CONV to handle MUL correctly and to exploit commutativity


# 92c9872e 22-Aug-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

The compiler has been ported to the new version of word-library. Additionally, the IL language has been adapted to be closer to ARM6 assembler.


# 2ad40f19 21-Aug-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

changed Convert_CONV and VAR_LET_CONV to be able to handle constants better


# f9fd98d9 30-Jan-2006 Konrad Slind <konrad.slind@gmail.com>

Further updates to get things working for paired let bindings:

let (u,v) = M in N

Later phases in the compiler die on the results of this input ...


# 09e73994 28-Jan-2006 Konrad Slind <konrad.slind@gmail.com>

Small changes needed to make it compile.


# a80e993b 28-Jan-2006 Konrad Slind <konrad.slind@gmail.com>

Added "let" to the input language. Scott Owens noticed that

let v = M in N

can be mapped to

Seq (Par (\x.x) (\args. M)) (\(args,v). N)

so we don't have to add anything extra to get computation sharing via
lets. This should also transfer over to the hardware front-end I hope.
Now we can write

Round ((y,z),(k0,k1,k2,k3),s) =
let s' = s + DELTA in
let y' = ShiftXor(z, s', k0, k1)
in
((y', z + ShiftXor(y', s', k2, k3)), (k0,k1,k2,k3), s')

for TEA, which looks much nicer and produces 1/3 smaller code because we
no longer duplicate the expression abbreviated by y'.


# aaf49d14 24-Jan-2006 Konrad Slind <konrad.slind@gmail.com>

*** empty log message ***


# 9bdb96ae 19-Jan-2006 Konrad Slind <konrad.slind@gmail.com>

*** empty log message ***


# c49747ad 21-Dec-2005 Konrad Slind <konrad.slind@gmail.com>

*** empty log message ***


# ce2c831a 01-Nov-2005 Konrad Slind <konrad.slind@gmail.com>

Trivial changes.


# 61e53ec9 31-Oct-2005 Scott Owens <Scott.Owens@cl.cam.ac.uk>

Simplified and improved the ANF generation.


# fd487286 31-Oct-2005 Konrad Slind <konrad.slind@gmail.com>

Updates to accomodate Scott's new CPS_INTRO theorem.


# df021246 30-Oct-2005 Konrad Slind <konrad.slind@gmail.com>

Added a new "sw" directory for the software compiler being
written by Li, Owens, and Slind. This is a temporary hiding
place for work-in-progress.