forked from M-Labs/nac3
1
0
Fork 0
Commit Graph

6 Commits

Author SHA1 Message Date
pca006132 083eacc268 with parallel/sequential support
Behavior of parallel and sequential:
Each function call (indirectly, can be inside a sequential block) within a parallel
block will update the end variable to the maximum now_mu in the block.
Each function call directly inside a parallel block will reset the timeline after
execution. A parallel block within a sequential block (or not within any block) will
set the timeline to the max now_mu within the block (and the outer max now_mu will also
be updated).

Implementation: We track the start and end separately.
- If there is a start variable, it indicates that we are directly inside a
parallel block and we have to reset the timeline after every function call.
- If there is a end variable, it indicates that we are (indirectly) inside a
parallel block, and we should update the max end value.

Note: requires testing, it is difficult to inspect the output IR
2021-10-31 23:54:37 +08:00
Sebastien Bourdeauducq 3a1dd893a1 nac3artiq/demo: get closer to regular ARTIQ 2021-10-10 17:45:38 +08:00
pca006132 a4ccac2329 nac3artiq: implements #55, #56 2021-10-10 16:26:01 +08:00
Sebastien Bourdeauducq 6ba74ed9f6 nac3artiq: allow creating drivers on device 2021-10-09 15:51:47 +08:00
Sebastien Bourdeauducq 5749141efb nac3artiq: add simple KernelInvariant CPython wrapper 2021-10-08 23:46:46 +08:00
Sebastien Bourdeauducq 3b10172810 nac3artiq: get closer to original ARTIQ semantics in demo
Currently crashes the compiler with:
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', nac3core/src/codegen/expr.rs:395:58
2021-10-08 23:41:41 +08:00