2
0
mirror of https://github.com/m-labs/artiq.git synced 2024-12-27 04:08:27 +08:00
Commit Graph

6467 Commits

Author SHA1 Message Date
9d43762695 test: fixed lit tests
Note that because we changed exception representation from using string
names as exception identifier into using integer IDs, we need to
initialize the embedding map in order to allocate the integer IDs. Also,
we can no longer print the exception names and messages from the kernel,
we will need the host to map exception IDs to names, and may need the
host to map string IDs to actual strings (messages can be static strings
in the firmware, or strings stored in the host only).

We now check for exception IDs for lit tests, which are fixed because we
preallocated all builtin exceptions.
2022-01-26 07:16:54 +08:00
4132c450a5 firmware: runtime changes for exception
Ported from:
M-Labs/artiq-zynq#162

This includes new API for exception handling, some refactoring to avoid
code duplication for exception structures, and modified protocols to
send nested exceptions and avoid string allocation.
2022-01-26 07:16:54 +08:00
536b3e0c26 test: added test case for nested exceptions and try 2022-01-26 07:16:54 +08:00
ba34700798 coredevice: report nested exceptions 2022-01-26 07:16:54 +08:00
6ec003c1c9 compiler: fixed dead code eliminator
Instead of removing basic blocks with no predecessor, we will now mark
and remove all blocks that are unreachable from the entry block. This
can handle loops that are dead code. This is needed as we will now
generate more complicated code for exception handling which the old dead
code eliminator failed to handle.
2022-01-26 07:16:54 +08:00
da4ff44377 compiler: fixed try codegen and allocate exceptions
Exceptions are now allocated in the runtime when we raise the exception,
and destroyed when we exit the catch block. Nested exception and try
block is now supported, and should behave the same as in CPython.
Exceptions raised in except blocks will now unwind through finally
blocks, matching the behavior in CPython. Reraise will now preserve
backtrace.

Phi block LLVM IR generation is modified to handle landingpads, which
one ARTIQ IR will map to multiple LLVM IR.
2022-01-26 07:16:54 +08:00
4644e105b1 compiler: modified exception representation
Exception name is replaced by exception ID, which requires no
allocation. Other strings in the exception can now be 'host-only'
strings, which is represented by a CSlice with len = usize::MAX and
ptr = key, to avoid the need for allocation when raising exceptions
through RPC.
2022-01-26 07:16:54 +08:00
hartytp
715bff3ebf
Revert "Merge pull request #1544 from airwoodix/dataset-compression" (#1838)
* Revert "Merge pull request #1544 from airwoodix/dataset-compression"

This reverts commit 311a818a49, reversing
changes made to 7ffe4dc2e3.

* fix accidental revert of f42bea06a8
2022-01-25 10:02:15 +08:00
b452789f03 Merge branch 'master' into nac3 2022-01-19 21:07:10 +08:00
Steve Fan
3f812c4c2c
comm_kernel: fix RPC exception handling (#1801) 2022-01-12 15:23:37 +08:00
Steve Fan
de5892a00a
comm_kernel: check if elements are within bounds for RPC list (#1824) 2022-01-11 17:16:45 +08:00
Peter Drmota
4eee49f889 gateware.test.suservo: Fix tests for python >=3.7
Closes #1748
2022-01-11 17:16:09 +08:00
9eee0e5a7b gateware/suservo: fix profile no. in test
Follow-up/Test update for 9d49302.
2022-01-11 14:20:47 +08:00
d7dd75e833 comm_kernel: fix off-by-one error for numeric value range check 2022-01-11 10:13:42 +08:00
095fb9e333
add Almazny support (#1780) 2022-01-11 09:55:39 +08:00
4e3e0d129c firmware: fix compilation warning 2022-01-11 09:31:26 +08:00
12ee326fb4 firmware: fixed personality function 2022-01-11 09:30:19 +08:00
61349f9685 sinara_tester: fix outdated API 2022-01-10 17:23:28 +08:00
cea0a15e1e suservo: use default urukul profile 2022-01-10 16:21:39 +08:00
8b45f917d1 urukul: use default profile 2022-01-10 16:21:39 +08:00
6542b65db3 compiler: fixed exception codegen issues 2022-01-10 15:54:29 +08:00
9f90088fa6 compiler: generate appropriate landingpad IR
When used together with modified personality function, we got ~20%
performance improvement in exception unwinding with zynq.
2022-01-10 15:54:29 +08:00
5e1847e7c1 compiler: rename variables to retainedNodes
Part of the changes that was made to LLVM 6 by the time that LLVM 7 was released.
LLVM commit: 2c864551df
LLVM differential review: https://reviews.llvm.org/D45024
2022-01-10 11:28:37 +08:00
6f3c49528d compiler: revert cabe5ac
The lack of debug emitter causes #1821.
2022-01-10 11:26:03 +08:00
02555e48a0 update NAC3, use power operator 2022-01-09 11:45:10 +08:00
eaa1505c94 update documentation (#1820) 2022-01-08 11:55:52 +08:00
Leon Riesebos
f42bea06a8 worker_db: removed warning for writing a dataset that is also in the archive
Signed-off-by: Leon Riesebos <leon.riesebos@duke.edu>
2022-01-08 11:48:18 +08:00
9d493028e5 gateware/suservo: write to profile 7
Fixes #1817.
2022-01-07 16:41:19 +08:00
bbac477092 tools: fix importlib issue 2021-12-21 13:20:11 +08:00
088c3b470e update NAC3, use new Kernel type annotation 2021-12-20 17:56:40 +08:00
c0a7be0a90 llvm_ir: move stacksave before lltag alloca in build_rpc
Signed-off-by: Steve Fan <sf@m-labs.hk>
2021-12-19 00:07:07 +00:00
9e5e234af3 stop using explicit ProactorEventLoop on Windows
It is now the default in Python.
2021-12-14 20:06:38 +08:00
352317df11 test_dataset_db: remove (too much breakage on Windows) 2021-12-14 19:27:15 +08:00
a518963a47 test_dataset_db: disable tests broken on windows 2021-12-14 19:19:22 +08:00
37f14d94d0 test_dataset_db: fix for windows 2021-12-14 19:07:17 +08:00
Peter Drmota
7c664142a5
Simplified use of the AD9910 RAM feature (#1584)
* coredevice: Change Urukul default single-tone profile to 7

This allows using the internal profile control in RAM modulation mode (which always starts to play back at profile 0) without competing for the content of the profile 0 register used in single tone mode.

Signed-off-by: Peter Drmota <peter.drmota@physics.ox.ac.uk>

* ad9910/set_mu: comment on caveats when setting register

* ad9910: avoid unnecessary write/param

Credit: Solution proposed by @pmldrmota in https://github.com/m-labs/artiq/pull/1584#issuecomment-987774353

* revert 1064fdff (`set_mu()` comments)

158a7be7 had addressed this issue.

Co-authored-by: occheung <dc@m-labs.hk>
2021-12-13 23:44:03 +08:00
dad23b6981 coredevice/ad53xx: use len(list) 2021-12-09 12:40:01 +08:00
33a9ca2684 tools/file_import: use SourceFileLoader
This allows loading modules from files with extensions not in
importlib.machinery.SOURCE_SUFFIXES

Signed-off-by: Etienne Wodey <etienne.wodey@aqt.eu>
2021-12-09 11:47:04 +08:00
1def0d98c5
Merge branch 'master' into dataset-compression 2021-12-06 12:40:30 +08:00
Leon Riesebos
7ffe4dc2e3 coredevice: set default pow for ad9912 set_mu() 2021-12-06 12:34:55 +08:00
Leon Riesebos
9e3ea4e8ef coredevice: fixed type annotations for AD9910 2021-12-06 12:34:55 +08:00
31ac6881df update NAC3, restore original delays 2021-12-06 12:21:52 +08:00
e34f4cc99b language: add floor64 and ceil64 2021-12-04 20:13:00 +08:00
12c39aaaae coredevice/adf5356: use nac3 floor/ceil 2021-12-04 19:04:48 +08:00
2059fd375e language: add virtual 2021-12-04 19:03:39 +08:00
Steve Fan
4a6bea479a
Host report for async error upon kernel termination (#1791)
Closes #1644
2021-12-04 13:33:24 +08:00
7953f3d705 kc705: add drtio 100mhz clk switch 2021-12-03 17:19:11 +08:00
f281112779 satman: add 100mhz si5324 settings
siphaser: add calculated vco for 100mhz comment
2021-12-03 17:19:11 +08:00
eec3ea6589 siphaser: add support for 100mhz rtio 2021-12-03 17:19:11 +08:00
Etienne Wodey
9f830b86c0
kasli: add SED lanes count option to HW description JSON file (#1745)
Signed-off-by: Etienne Wodey <etienne.wodey@aqt.eu>
2021-12-03 17:05:35 +08:00
b8e7add785 language: remove deprecated set_dataset(..., save=...) 2021-12-01 22:41:34 +08:00
6a09b92fb3 examples/nac3devices: fix mirny clocking 2021-11-29 18:15:06 +08:00
b2f7022e0a examples/nac3devices: demonstrate new capabilities 2021-11-28 12:48:18 +08:00
e45c194c49 coredevice/adf5356: port to NAC3 2021-11-28 12:38:23 +08:00
David Nadlinger
c6039479e4 compiler: Add lit test for call site attributes [nfc] 2021-11-27 04:46:07 +00:00
David Nadlinger
63b5727a0c compiler: Also emit byval argument attributes at call sites
See previous commit.

GitHub: Fixes #1599.
2021-11-27 04:45:50 +00:00
David Nadlinger
9b01db3d11 compiler: Emit sret call site argument attributes
LLVM 6 seemed not to mind the mismatch, but more recent
versions produce miscompilations without this.

Needs llvmlite support (GitHub: numba/llvmlite#702).
2021-11-27 04:44:41 +00:00
6a433b2fce artiq_sinara_tester: test Urukul attenuator digital control 2021-11-24 18:57:16 +08:00
5800496425 coredevice/adf5356_reg: port to NAC3 2021-11-24 16:54:58 +08:00
9423428bb0 drtio: fix crc32 offset address 2021-11-24 12:00:56 +08:00
29f42ccd8a coredevice/mirny: port to NAC3 2021-11-23 17:13:43 +08:00
f5a5b7a22a examples: add nac3devices 2021-11-23 16:41:29 +08:00
3a6fcd069d remove old examples 2021-11-23 16:37:40 +08:00
d8e1a22bdf coredevice/ad53xx: remove problematic default param 2021-11-23 16:12:36 +08:00
34789767f0 firmware: fix compilation warning 2021-11-22 18:23:28 +08:00
bd95d9cf3d coredevice/zotino: port to NAC3 2021-11-19 19:13:50 +08:00
64877c0588 fix Python 3.9 compatibility 2021-11-19 18:18:24 +08:00
aa5f667ad8 ad9912: increase slack (no kernel invariants in NAC3 yet?) 2021-11-19 12:47:52 +08:00
cc1080e055 ad9912: fix frequency_to_ftw 2021-11-19 12:42:08 +08:00
b49f813b17 artiq_flash: ignore checking non-RTM artifacts if unused 2021-11-18 16:59:32 +08:00
f4acf04405 coredevice: fix run method 2021-11-16 18:32:14 +08:00
Peter Drmota
20e079a381
AD9910 driver feature extension and SUServo IIR readability (#1500)
* coredevice.ad9910: Add set_cfr2 function and extend arguments of set_cfr1 and set_sync

* SUServo: Wrap CPLD and DDS devices in a list

* SUServo: Refactor [nfc]

Co-authored-by: drmota <peter.drmota@physics.ox.ac.uk>
Co-authored-by: David Nadlinger <code@klickverbot.at>
2021-11-15 12:09:16 +08:00
222968d68b coredevice: reinstate AugAssign methods 2021-11-13 12:42:13 +08:00
38e554fe98 artiq_run: fix ELF handling 2021-11-12 19:57:48 +08:00
75dad8090f Merge branch 'master' into nac3 2021-11-12 19:46:37 +08:00
95eb218112 import_cache: read files only once 2021-11-11 20:42:49 +08:00
1ea3cf48d6 fix core.run invokation 2021-11-11 20:35:45 +08:00
5a3bf4894f reinstate import_cache hack (#416) 2021-11-11 20:35:06 +08:00
c7cca11ad1 update NAC3 2021-11-11 16:32:37 +08:00
a8129093df artiq_run: port to NAC3 (WIP) 2021-11-10 21:31:03 +08:00
df87cc88d6 coredevice/ad9912: port to NAC3 2021-11-10 21:27:06 +08:00
93f24c9f94 coredevice/urukul: port to NAC3 2021-11-10 19:01:44 +08:00
31955d0c7a coredevice/spi2: port to NAC3 2021-11-10 17:23:44 +08:00
b7313ddc32 coredevice/rtio: fix tuple annotation 2021-11-10 15:32:07 +08:00
262cd62544 examples/blink_forever: port to NAC3 2021-11-10 13:59:59 +08:00
2f031285a4 coredevice/ttl: port to NAC3 2021-11-10 13:58:54 +08:00
deb8a77464 coredevice/rtio: port to NAC3 2021-11-10 13:57:03 +08:00
8f596ed04f coredevice: fix typing problems 2021-11-10 12:37:05 +08:00
c8ebd80fe2 NAC3 integration WIP 2021-11-10 12:18:20 +08:00
db3e5e83e6 bump misoc 2021-11-08 16:59:08 +08:00
09945ecc4d gateware: fix drtio/dma tests 2021-11-08 16:59:08 +08:00
02119282b8 build_soc: build VexRiscv_G if not kasli v1.x 2021-11-08 16:59:08 +08:00
750b0ce46d ddb_temp: select appropriate compiler target 2021-11-08 16:59:08 +08:00
531670d6c5 dyld: check ABI 2021-11-08 16:59:08 +08:00
0f660735bf ll_gen: adjust csr address by detecting target class 2021-11-08 16:59:08 +08:00
0755757601 compiler/tb: use FPU 2021-11-08 16:59:08 +08:00
0d708cd61a compiler/target: split RISCV target into float/non-float 2021-11-08 16:59:08 +08:00
03b803e764 firmware: adjust csr separation 2021-11-08 16:59:08 +08:00
b3e315e24a rust: find json file using CARGO_TRIPLE 2021-11-08 16:59:08 +08:00
0898e101e2 board_misoc: reuse riscv dir for comm & kernel 2021-11-08 16:59:08 +08:00