Commit Graph

2157 Commits

Author SHA1 Message Date
Neil Brown
68161bdfea Fixed one of the occam passes so that it no longer enforces that mobile array dimensions are statically known 2009-03-22 15:00:08 +00:00
Neil Brown
4fd2c7c890 Took out my warning option since it causes problems 2009-03-22 14:50:25 +00:00
Neil Brown
854a1fca50 Fixed various things in the C backend and made genVariable more flexible, for functions that want to specify the C type desired 2009-03-22 14:49:35 +00:00
Neil Brown
3801857817 Fixed a bug in the C backend (using the wrong type in a call) 2009-03-22 14:27:46 +00:00
Neil Brown
81ebebe4fe Added a quick work-around in SimplifyAbbrevs for the SYB-Map issue 2009-03-22 00:32:56 +00:00
Neil Brown
2fc327287a Fixed various conflicts in the backends directory while merging one of my branches 2009-03-21 23:43:04 +00:00
Neil Brown
90634ff1d6 Improved the error message for getting the C type to leave the mobile wrapper on 2009-03-21 23:41:54 +00:00
Neil Brown
f5fa5e5caf Fiddled with the code supplying the mobile types to MTAlloc 2009-03-20 21:20:43 +00:00
Neil Brown
03f1b2d115 Added a few more mobile things (DEFINED keyword, an intrinsic) 2009-03-20 20:53:51 +00:00
Neil Brown
1d43b9d7bd Poked the mobile and record stuff until cgtest83 compiles (it blows up on running, but it compiles) 2009-03-20 19:24:54 +00:00
Neil Brown
bbabef868c Moved the comma-related helper functions to the GenerateCBased module 2009-03-20 19:24:20 +00:00
Neil Brown
3a7b2aaaf4 Added a function for getting the attributes of a record type 2009-03-20 19:10:11 +00:00
Neil Brown
64f58f3770 Fiddled the occam type checker and inference to understand the basics of mobile types (and infer the dereferences) 2009-03-20 15:19:06 +00:00
Neil Brown
1044a94730 Changed most of the rest of Tock (except some tests) to understand the new record attributes 2009-03-20 15:18:29 +00:00
Neil Brown
86f0218899 Changed the occam parser to understand the MOBILE and CLONE keywords 2009-03-20 15:17:43 +00:00
Neil Brown
1c0f4d17ca Changed the RecordType item to support multiple attributes (including mobility) 2009-03-20 15:17:15 +00:00
Neil Brown
e79fa43fa2 Fixed the last few of the channel uses to request abbreviations of channels when using them 2009-03-21 23:24:21 +00:00
Neil Brown
e0bec17672 Fixed the tests enough to get them to compile, but a lot fail 2009-03-21 23:05:11 +00:00
Neil Brown
e4bed22b7e Various fixes to the C++ backend to at least get it compiling (not tested it much yet) 2009-03-21 23:04:25 +00:00
Neil Brown
bf2f50ba2c Removed a lot of commented out old code in the C backend 2009-03-21 23:03:46 +00:00
Neil Brown
defca6e34d Started simplifying some of the C backend in light of the new changes, and made a few fixes
The first few cgtests (at least) now pass with the new system in the C backend.
2009-03-21 22:59:25 +00:00
Neil Brown
63d6c5258d Added an extra GCC flag to help catch problems with the C output 2009-03-21 22:57:49 +00:00
Neil Brown
88077ce755 Cleared up a problem where passes from the Rain list could be enabled in occam and vice versa 2009-03-20 15:16:20 +00:00
Neil Brown
b6b0577ecd Fixed directed variables (for the C++ backend) 2009-03-21 21:01:25 +00:00
Neil Brown
8e768e2b25 Started fixing up the new variable stuff to work with mobiles 2009-03-21 20:50:06 +00:00
Neil Brown
87fefcb66d Fiddled with the new variable stuff in the C backend, and now variable subscripts seem to work 2009-03-21 19:30:29 +00:00
Neil Brown
ca207f7291 Quickly implemented the first version of a revamp of the genVariable code in the C backend
Surprisingly, the generated code seems to be compiled by GCC without warnings.  Array subscripts are currently unimplemented (a star, i.e. equivalent of subscript 0) is used wherever there should be a subscript.

The new mechanism is based on working out the C type of the original variable/abbrev-mode, the C type of the desired variable/abbrev-mode, and works out how many *s or &s to insert to coerce it to the right type.
2009-03-21 18:43:32 +00:00
Neil Brown
1343954c2f Added an option to automatically run indent on C/C++ source before running GCC
This option is very handy when debugging the C/C++ output of Tock when GCC gives a compiler error.
2009-03-21 18:25:09 +00:00
Neil Brown
936dc29fde 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
Neil Brown
56cd7d73c4 Changed the channel-output code generation so that it knows the desired type being sent 2009-03-20 11:37:52 +00:00
Neil Brown
65550b705e Added an AllSizesVariable item to the AST so that the backend inserts the right code for mobiles and non-mobiles 2009-03-20 11:31:14 +00:00
Neil Brown
f5ce1c8f89 Added the code to mobilise arrays inside protocols 2009-03-20 11:26:54 +00:00
Neil Brown
3c4f76ed46 Fixed the memory leaks arising from not clearing mobiles before an input 2009-03-19 18:18:17 +00:00
Neil Brown
7d3e9e8648 Stopped MTRelease being called with a NULL pointer 2009-03-19 16:59:19 +00:00
Neil Brown
65875f523f Added mobile cloning rather than using dereferencing to copy mobiles 2009-03-19 16:47:31 +00:00
Neil Brown
2e99bcfc5e Added the mobilisation of process parameters, but I think I need to clone, not dereference 2009-03-19 15:45:49 +00:00
Neil Brown
8abd09758c Fixed the implicit mobility module to mobilise arrays inside channels 2009-03-19 15:23:56 +00:00
Neil Brown
8e5e73e3a2 Fixed the support in the backends for mobile channel stuff 2009-03-19 15:23:35 +00:00
Neil Brown
ca61da25cf Added a function to the Types module to allow you to easily change the type of a SpecType 2009-03-19 15:13:00 +00:00
Neil Brown
26824883d6 Changed the implicit mobility to only look at mobile variables, and recorded what future use is causing a copy decision 2009-03-19 14:00:59 +00:00
Neil Brown
94d436cbaf Added the testcase I'm using for the implicit mobility stuff 2009-03-19 11:47:31 +00:00
Neil Brown
b970b9df33 Added command line options for occam 2 mobility, and turned it off by default 2009-03-19 11:38:48 +00:00
Neil Brown
a995d29c32 Moved the mobile stuff across to use the CCSP API 2009-03-19 11:33:09 +00:00
Neil Brown
4bc15aae48 Bashed the backend until it works with the new mobility passes (standard occam may be broken though) 2009-02-27 17:12:17 +00:00
Neil Brown
823592bd1d Added some passes to mobilise non-mobile arrays 2009-02-27 17:12:08 +00:00
Neil Brown
2dd8867c91 Removed C++CSP's mobile stuff so that I only have one unified system to deal with for now 2009-02-27 17:04:11 +00:00
Neil Brown
9614d5f7f9 Fixed the intrinsic PROCs to be generated correctly 2009-02-27 17:13:18 +00:00
Neil Brown
0d5c8f28fd Fixed a couple of helper functions to navigate through mobile arrays properly 2009-02-27 17:09:14 +00:00
Neil Brown
4041284feb Renamed a slightly confusing backend pass 2009-02-27 17:04:41 +00:00
Neil Brown
2a2ce367ca Added some missing cases in the ShowCode module 2009-02-27 17:02:34 +00:00