Mirror of http://offog.org/git/tock.git . Tock (translator from occam to C from Kent) is a Haskell-based compiler for occam and related languages.
Go to file
Neil Brown 4d2cdc0a9d Altered the backend passes to use all the new VariableSizes mechanisms rather than the old stuff
This is quite a big patch, as it reworks a large pass.  The three backend passes dealing with sizes stuff have now been merged into one (because the traversal order is important).

Instead of generating sizes arrays by blindly appending "_sizes", we now create nonces and store them in the csArraySizes map in CompState, which is a bit less hacky.

Added to that, we also generate constant-size arrays (e.g. for [8]) -- which are needed in case we pass the array to a PROC that has a flexible dimension -- at the top of the whole program, and use that array for every variable with that size (so if foo and bar have the same size, we use the same sizes array from the top of the program).
2009-03-31 10:22:34 +00:00
backends Altered the backend passes to use all the new VariableSizes mechanisms rather than the old stuff 2009-03-31 10:22:34 +00:00
checks Added some debug messages during usage checking, and stopped checking PROCs with one argument for alias issues 2009-03-27 12:02:52 +00:00
common Added support for VariableSizes to the ShowCode module 2009-03-30 15:33:10 +00:00
config Fixed some things to do with the build system (extra headers, include paths) 2009-03-27 19:54:05 +00:00
data Added a new VariableSizes constructor to Variable that will supplant SizeVariable and AllSizesVariable 2009-03-30 15:28:38 +00:00
docextra Add the Tock hacker's guide to the repository. 2008-11-20 13:41:06 +00:00
flow Added information in the flow graph edges as to when a condition becomes non-usable (e.g. when the branches of an IF merge again) 2009-02-09 16:57:13 +00:00
frontends Changed the occam parser to parse SIZE followed by a variable into the new VariableSizes item 2009-03-30 15:33:36 +00:00
pass Turned off unused variable checking for now -- I think it's bugged 2009-03-25 18:33:23 +00:00
pregen Make GenNavAST generate instances of a "Polyplate" class. 2008-05-10 16:27:46 +00:00
support Added some Tock support functions for allocating and freeing workspaces 2009-03-27 17:25:09 +00:00
testcases Fixed some of the tests, and added another testcase for array passing, based on one of Carl's examples 2009-03-20 12:59:16 +00:00
transformations Added code to pull up any VariableSizes expressions (since they result in an array) 2009-03-31 09:22:59 +00:00
AUTHORS Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
cgtests.mk Added an option to automatically run indent on C/C++ source before running GCC 2009-03-21 18:25:09 +00:00
ChangeLog Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
compile-cgtests Added rules for getting and making the cgtests to the new Automake make system 2007-10-09 00:44:41 +00:00
configure.ac Took out my warning option since it causes problems 2009-03-22 14:50:25 +00:00
COPYING Add licensing information. 2007-08-18 20:42:11 +00:00
COPYING.LIB Add licensing information. 2007-08-18 20:42:11 +00:00
LANGUAGE Implement channel direction decorators. 2008-06-09 21:35:20 +00:00
Main.hs Added a command-line option to change how much stack the unknown functions are given 2009-03-26 22:49:38 +00:00
Makefile.am Fixed some things to do with the build system (extra headers, include paths) 2009-03-27 19:54:05 +00:00
NEWS Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
ProcessTags.hs Finally got round to adding a little program to qualify the AST tags in the TAGS file 2009-03-22 15:51:43 +00:00
rangetest.c Fixed the build system for the rangetest 2009-03-27 19:38:08 +00:00
README Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
SYNTAX Give tock its own repo -- i.e. remove everything else and move tock up 2007-07-16 21:48:55 +00:00
TestMain.hs Added some testcases related to checking the use of abbreviations 2009-02-08 23:25:30 +00:00
TODO Give tock its own repo -- i.e. remove everything else and move tock up 2007-07-16 21:48:55 +00:00