Commit graph

249 commits

Author SHA1 Message Date
jeltz e23fce0285
WIP: Call reset method on global async objects
It will probably be necessary to disable interrupts before calling
the reset method.
2020-12-30 01:28:36 +01:00
jeltz 215b602383
Add a simple_simul compiler option 2020-12-30 01:10:45 +01:00
jeltz e536ec17d6
Use external linkage for global async variables 2020-12-26 04:28:39 +01:00
jeltz 74f5e9a2e8
Generate run_timers with correct timing 2020-12-25 23:06:30 +01:00
jeltz 5346c720d2
WIP: Generate the body of run_timers 2020-12-25 22:24:45 +01:00
jeltz 58e6a951e4
Declaration of static variables in Cfundef 2020-12-25 21:54:58 +01:00
jeltz 1ba3284031
Extract timers from obj_dec.o_ack 2020-12-25 19:44:01 +01:00
jeltz 9b44a7a7ab
Create run_timers function for async calls 2020-12-25 15:36:05 +01:00
jeltz 5b1a286999
Fix bug of async calls of stateless functions 2020-12-25 13:17:31 +01:00
jeltz eca2974bba
Define global variables for async state 2020-12-24 06:41:47 +01:00
jeltz 2bd04ed02d
Generate calls to async stub (with a dummy _async) 2020-12-24 06:01:48 +01:00
jeltz 9687050f25
Remove MstepAsync and add stub function for calls 2020-12-24 05:28:47 +01:00
jeltz 73db32c6be
Fix bug and generate MstepAsync call in MiniLS
Easync applications were not flowing throw some Heptagon passes.
2020-12-23 13:08:10 +01:00
jeltz fbad83a61d
Add and use atomic_memcpy for the AVR backend 2020-12-22 21:33:04 +01:00
jeltz f72a092af3
Add support for _local_in in cexprs 2020-12-22 20:54:16 +01:00
jeltz 622a55ed81
Use _local_out variable for _async_step method 2020-12-22 17:45:56 +01:00
jeltz e0fd48562b
Add argument for out variable name 2020-12-22 03:34:56 +01:00
jeltz c36ab43ab1
WIP: Add _async_step method
Copy functions are called, but the body doesn't use the good variable
names.
2020-12-22 01:54:19 +01:00
jeltz 34902b58f0
Add basic copy functions
Warning: These functions are not yet atomic.
2020-12-22 00:30:59 +01:00
jeltz 5376d9993e
Add _in struct for async 2020-12-21 11:27:30 +01:00
jeltz fdee5b68c0
WIP: Add MstepAsync method to ObC 2020-12-21 00:16:04 +01:00
Adrien Guatto 54cbec9190 C backend: generate A_types.{h,c} when compiling A.epi
Before this commit, the C backend would put the translated definitions
of an interface file A.epi into A.{h,c}. This is inconsistent with the
C code generated for source files, which expects to find A_types.{h,c}.
2019-10-13 13:27:52 +02:00
Adrien Guatto 0435a2420d Fix miscompilation of Pervasives.xor to C 2018-10-12 16:56:01 +02:00
Gwenaël Delaval 7d6106d0aa Passes optimization
Translation to tail-recursive versions of functions
for handling of (very) big nodes.
2017-05-23 22:13:32 +02:00
Gwenaël Delaval 028c564a31 Clean-up of verbose output
Leave only comments about compilation passes.
Remove output of intermediate code on standard output: added
generation of <module>.log containing all intermediate code.
2017-05-23 11:37:30 +02:00
Gwenaël Delaval e4f51fea68 Switch to non-deprecated String functions
Use of String.*_ascii non-deprecated versions.

NB: Heptagon becomes available only for Ocaml versions >= 4.03.0.
2017-03-14 12:24:29 +01:00
Gwenaël Delaval 2f18926bf4 Clean up documentation comments 2017-03-03 11:41:57 +01:00
Gwenaël Delaval 69b8cc5a18 Added operator (=>) in Pervasives module
Operator (=>) for implication added in Pervasives module.

"a => b" is translated into "not a or b" at code generation.
2016-06-25 08:37:47 +02:00
Gwenaël Delaval 83905f9039 Remove traces and warnings 2016-06-02 01:33:02 +02:00
Gwenaël Delaval d8d24ffd95 Handle modularity/several controllers by module
* Several controllers by module : added option "-m <Module>" in ctrl2ept

Generate controllers for each node of one module in <module>_controller.ept

* Types of <Module> no longer moved to <Module>_controller

* Added "_types" suffix for type dependencies for C target
2016-06-02 01:33:02 +02:00
Gwenaël Delaval 05150f2078 [ctrl-n] Suppression of type declarations in Heptagon controller
TODO : move type declarations in separated module.
2016-06-02 01:33:02 +02:00
Gwenaël Delaval 2aed0f6537 Deadcode removal improvement
Deadcode removal in Obc :
- suppression of switch unused cases :

switch(true) {
  case false: ...
}

- activation with -deadcode option
2016-01-18 14:32:54 +01:00
Gwenaël Delaval 64b8c0592a Pretty-printing class parameters in obc 2016-01-18 14:31:04 +01:00
Gwenaël Delaval e8ec3e012c Merge branch 'ctrl-n' into decade 2015-12-15 09:33:25 +01:00
Adrien Guatto dc47767ba4 Print an empty default statement at the end of all C switches
This prevents modern compilers from emitting warnings when the generated C code
contains switch statements with (intentionally) missing cases.
2015-06-12 17:49:59 +02:00
Gwenaël Delaval 0d1aef8c78 Bug correction: support of enumerated types as input for simulation
- use of a buffer to translate enumerated types from string to enum value
- hepts : correct interface with main
2015-02-27 15:39:39 +01:00
Nicolas Berthier cbcf8b9ac0 Using unqualified names for string representation of constructors in C backend.
+ minor modifications in various places.
2014-11-13 09:45:15 +01:00
Nicolas Berthier d4fe017864 Bug correction in names of C functions for converting constructors to string. 2014-10-31 15:40:05 +01:00
Nicolas Berthier 5506690de5 Merge branch 'decade' into ctrl-n 2014-10-03 10:58:41 +02:00
Valentin Perrelle 1f2e084e6e Fixed a bug where loops were not generated for copying arrays. 2014-06-25 18:53:34 +02:00
Nicolas Berthier 99ab12aa13 Fixed warnings. 2014-03-18 11:01:56 +01:00
Nicolas Berthier 216550c0d1 Fixed warnings & documentation comments.
- gitignore: ignore files generated by `configure' script.
2013-11-08 18:51:06 +01:00
Gwenal Delaval ee7ef158e7 Bug correction: java code generation for "~-."
Bug correction: handling of unary float "~-."
2013-08-02 14:14:13 +02:00
Cédric Pasteur a00620ca19 Fixed interference of fast memories
A fast memory should be considered alive during
the whole step function when its clock is false.
2013-05-06 11:47:05 +02:00
Nicolas Berthier 899d33afb6 Corrected a bug in generation of C records.
Corrected a somewhat unnoticeable but ugly bug in the generation of C
records, that could mess up the field names when they were not
assigned in the same order as in the declaration of the type.
2013-03-15 09:31:19 +01:00
Gwenal Delaval 9b3ba83bb1 Bug correction in java generation 2013-03-11 16:04:12 +01:00
Gwenaël Delaval 3e8af67e07 Added Java 1.4 target (experimental)
Experimental : remains some bugs on arrays
2012-11-17 23:29:19 +01:00
Gwenaël Delaval 6dd1c743d6 Records in Java
Added support of records in Java
2012-09-30 01:40:18 +02:00
Gwenal Delaval 6a21e5d701 Iostream for Java
Added support of Iostream.printf (not fprintf)
for Java code gen.
2012-09-28 15:26:01 +02:00
Gwenal Delaval b176384952 Java code generation: lexicography
Handling of weird lexical elements (e.g., idents with ', infix names...)
2012-09-28 13:04:08 +02:00