David Mak
d322c91697
core: Change bitshift operators to accept int32/uint32 for RHS operand
2023-11-09 12:16:20 +08:00
David Mak
3231eb0d78
core: Add compile-time error and runtime assertion for negative shifts
2023-11-09 12:16:20 +08:00
Sebastien Bourdeauducq
1ca4de99b9
update ARTIQ version used for PGO profiling
2023-11-08 17:29:29 +08:00
Sebastien Bourdeauducq
bf4b1aae47
update dependencies
2023-11-08 17:23:49 +08:00
David Mak
08a5050f9a
core: Implement non-trivial builtin functions using IRRT
2023-11-06 12:57:23 +08:00
David Mak
c2ab6b58ff
artiq: Implement `with legacy_parallel` block
2023-11-04 13:42:44 +08:00
David Mak
0a84f7ac31
Add CodeGenerator::gen_block and refactor to use it
2023-11-04 13:42:44 +08:00
David Mak
fd787ca3f5
core: Remove trunc
...
The behavior of trunc is already implemented by casts and is therefore
redundant.
2023-11-04 13:35:53 +08:00
David Mak
4dbe07a0c0
core: Revert breaking changes to round-family functions
...
These functions should return ints as the math.* functions do instead of
following the convention of numpy.* functions.
2023-11-04 13:35:53 +08:00
David Mak
2e055e8ab1
core: Replace rint implementation with LLVM intrinsic
2023-11-04 13:35:53 +08:00
David Mak
9d737743c1
standalone: Add regression test for numeric primitive operations
2023-11-03 16:24:26 +08:00
David Mak
c6b9aefe00
core: Fix int32-to-uint64 conversion
...
This conversion should be sign-extended.
2023-11-03 16:24:26 +08:00
David Mak
8ad09748d0
core: Fix conversion from float to unsigned types
...
These conversions also need to wraparound.
2023-11-03 16:24:26 +08:00
David Mak
7a5a2db842
core: Fix handling of float-to-int32 casts
...
Out-of-bound conversions should be wrapped around.
2023-11-03 16:24:26 +08:00
David Mak
447eb9c387
standalone: Fix output format string for output_uint*
2023-11-03 16:24:26 +08:00
David Mak
92d6f0a5d3
core: Implement bitwise not for unsigned ints and fix implementation
2023-11-03 16:24:26 +08:00
David Mak
7e4dab15ae
standalone: Add math tests for non-number arguments
2023-11-01 18:03:29 +08:00
David Mak
ff1fed112c
core: Rework gamma/gammaln to match SciPy behavior
...
Matches behavior for infinities and NaNs.
2023-11-01 18:03:29 +08:00
David Mak
36a6a7b8cd
core: Replace TopLevelDef comments with documentation
2023-11-01 18:03:29 +08:00
David Mak
2b635a0b97
core: Implement numpy and scipy functions
2023-11-01 18:03:29 +08:00
David Mak
60ad100fbb
core: Implement and expose {isinf,isnan}
2023-11-01 18:03:29 +08:00
David Mak
316f0824d8
flake: Add scipy
2023-11-01 18:03:29 +08:00
David Mak
7cf7634985
core: Add create_fn_by_* functions
...
Used for abstracting the creation of function from different sources.
2023-11-01 18:03:29 +08:00
David Mak
068f0d9faf
core: Do not cast floor/ceil result to int
...
NumPy explicitly states that the return type of the floor/ceil is float.
2023-11-01 18:03:29 +08:00
David Mak
95810d4229
core: Remove {ceil64,floor64,round,round64}
...
These are not present in NumPy or Artiq.
2023-11-01 18:03:29 +08:00
David Mak
630897b779
standalone: Do not output sign if float is NaN
...
Matches behavior in Python.
2023-11-01 18:03:29 +08:00
Sebastien Bourdeauducq
e546535df0
flake: update nixpkgs
2023-11-01 15:53:47 +08:00
David Mak
352f70b885
artiq: Update host exception list to match possibly thrown types
2023-11-01 13:28:48 +08:00
David Mak
e95586f61e
core: Fix IR generation of `for` loop containing break/continue
...
Fix cases where the body BB would have two terminators because of a
preceding continue/break statement already emitting a terminator.
2023-11-01 13:21:27 +08:00
David Mak
bb27e3d400
standalone: Fix indentation of demo.c
2023-11-01 13:20:26 +08:00
David Mak
bb5147521f
standalone: Fix indentation of test files
2023-11-01 13:20:26 +08:00
David Mak
9518d3fe14
artiq: Fix timeline not resetting upon exiting sequential block
2023-10-30 14:04:53 +08:00
David Mak
cbd333ab10
artiq: Extract `parallel` block timeline utilities
2023-10-30 14:04:53 +08:00
David Mak
65d6104d00
artiq: Improve IR value naming and add documentation
2023-10-30 14:04:53 +08:00
David Mak
8373a6cb0f
artiq: Use gen_block when generating "with sequential"
2023-10-30 14:04:53 +08:00
David Mak
f75ae78677
cargo: Update dependencies
2023-10-30 14:04:53 +08:00
Sebastien Bourdeauducq
ea2ab0ef7c
update nixpkgs, python 3.11
2023-10-25 21:09:22 +08:00
David Mak
e49b760e34
ld: Support multiple CFIs with different encoding in .eh_frame
...
We now parse each CFI to read its encoding as opposed to assuming that
all CFIs within the same EH_Frame uses the same encoding. FDEs are now
iterated in a per-CFI manner.
2023-10-20 18:15:03 +08:00
David Mak
aa92778363
ld: Fix remapping of FDEs with multiple CFIs
2023-10-20 18:14:27 +08:00
David Mak
e1487ed335
cargo: Update dependencies
2023-10-20 18:11:45 +08:00
David Mak
73500c9081
core: Remove lazy_static from dependencies
2023-10-16 15:55:10 +08:00
David Mak
9ca34c714e
flake: Enable thread-safe mode for LLVM
...
This is required as we use the LLVM APIs from multiple threads.
2023-10-16 15:55:10 +08:00
David Mak
7fc2a30c14
Force single-threaded compilation if LLVM is not thread-safe
2023-10-16 15:55:10 +08:00
David Mak
950f431483
standalone: Update help text for `--emit-llvm`
2023-10-16 15:52:51 +08:00
David Mak
a50c690428
standalone: Fix run_demo script
...
- Link main and module*.bc together if using multiple threads
- Fix temporary files not being deleted
2023-10-16 15:52:48 +08:00
David Mak
48eb64403f
standalone: Treat -T0 as using all available threads
2023-10-13 14:57:16 +08:00
David Mak
2c44b58bb8
standalone: Require use of `-T` for specifying thread count
2023-10-13 14:36:34 +08:00
David Mak
50230e61f3
core: Simplify loop condition check for list comprehension
2023-10-06 12:24:03 +08:00
David Mak
0205161e35
core: Simplify list creation for comprehension
2023-10-06 12:22:38 +08:00
David Mak
a2fce49b26
core: Allocate exceptions at the beginning of function
...
Only one instance of exception is necessary, as exceptions will always
be initialized before being thrown.
2023-10-06 12:13:20 +08:00