Commit Graph

1547 Commits

Author SHA1 Message Date
ram
bdfcd2dd1f Merge upstream/master into feature/rpc-keywords 2025-02-10 10:58:49 +00:00
ram
450df79d87 Merge upstream/master into feature/rpc-keywords 2025-02-10 10:58:20 +00:00
82a580c5c6 flake: update ARTIQ source used for PGO 2025-02-10 16:53:35 +08:00
715dc71396 nac3artiq: acquire special python identifiers 2025-02-10 16:42:49 +08:00
ram
f63a2c4498 Update based on feedback 2025-02-10 07:21:52 +00:00
ram
1ad9c3672d Implemented passing or kwargs into RPC 2025-02-10 04:58:27 +00:00
ram
316f4c1eb5 Merge latest upstream/master into feature/rpc-keywords 2025-02-10 04:14:46 +00:00
064aa0411f [core] codegen: Add Exception{Type,Value} 2025-02-10 11:29:58 +08:00
57552fb2f6 [core] codegen: Add Option{Type,Value} 2025-02-10 11:29:58 +08:00
35e9c5b38e [core] codegen: Add String{Type,Value} 2025-02-10 11:29:58 +08:00
0a761cb263 [core] Use more TupleType constructors 2025-02-10 11:29:58 +08:00
67f42185de [core] codegen/expr: Add concrete ndims value to error message 2025-02-10 11:29:58 +08:00
69542c38a2 [core] codegen: Rename TupleValue::{store,load} -> {insert,extract}
Better matches the underlying operation.
2025-02-10 11:29:55 +08:00
2df22e29f7 [core] codegen: Simplify TupleType::construct 2025-02-10 11:26:45 +08:00
a078481cd2 [meta] Minor simplification for PrimStore extraction 2025-02-10 11:26:45 +08:00
c37c7e8975 [core] codegen/expr: Simplify gen_*_expr_with_values return value
These functions always return `BasicValueEnum` because they operate on
`BasicValueEnum`s, and they also always return a value.
2025-02-10 11:26:45 +08:00
0d8cb909dd [core] codegen/expr: Fix and use gen_unaryop_expr for boolean not ops
While refactoring, I ran into the issue where `!true == true`, which was
caused by the same upper 7-bit of booleans being undefined issue that
was encountered before. It turns out the implementation in
`gen_unaryop_expr` is also inadequate, as `(~v & (i1) 0x1)`` will still
leave upper 7 bits undefined (for whatever reason).

This commit fixes this issue once and for all by using a combination of
`icmp` + `zext` to ensure that the resulting value must be `0 | 1`, and
refactor to use that whenever we need to invert boolean values.
2025-02-10 11:26:45 +08:00
529fa67855 [core] codegen: Add bool_to_int_type to replace bool_to_{i1,i8}
Unifies the implementation for both functions.
2025-02-10 11:26:45 +08:00
ram
0aa9847a50 Final changes based on feedback and running cargo clippy --tests 2025-02-10 03:00:11 +00:00
f52ba9f151 [core] codegen/irrt: Refactor IRRT to use more create/infer fns 2025-02-10 10:56:24 +08:00
6bcdc3ce00 [core] codegen/extern_fns: Change expansion pattern
Makes more sense to attach the parameter delimiter to the end of each
parameter.
2025-02-10 10:56:22 +08:00
ram
dabd99c637 Merge upstream/master into feature/rpc-keywords 2025-02-09 16:49:31 +00:00
ram
c5aa042287 [WIP] Update based on feedback 2025-02-09 16:42:52 +00:00
c32c68b0b0 flake: update dependencies 2025-02-05 15:42:23 +08:00
ram
c083245c28 Implement passing of kwarg 2025-02-05 07:20:13 +00:00
ram
ec2787aaf6 Implement passing of kwarg 2025-02-05 07:19:27 +00:00
d394b24304 [meta] flake: Add LLVM bintools to artiq-{instrumented,pgo} 2025-02-03 13:10:13 +08:00
68da9b0ecf [core] codegen: Implement StructProxy on existing proxies 2025-02-03 11:51:57 +08:00
eec62c3bbb [core] codegen: Refactor StructField getters and setters 2025-02-03 11:51:57 +08:00
b521bc0c82 [core] codegen: Add Proxy{Type,Value}::as_abi_{type,value}
Needed for PtrToOrBasic{Type,Value}.
2025-02-03 11:51:57 +08:00
96e98947cc [core] codegen: Add StructProxy{Type,Value} 2025-02-03 11:51:57 +08:00
87a637b448 [core] codegen: Refactor Proxy{Type,Value} for StructProxy{Type,Value} 2025-02-03 11:51:57 +08:00
bdeeced122 [core] codegen: Normalize RangeType factory functions
Better matches factory functions of other ProxyTypes.
2025-02-03 11:51:57 +08:00
37df08b803 [meta] Update dependencies 2025-02-03 11:51:57 +08:00
05fd1a5199 [meta] Use lld as linker 2025-02-03 10:56:35 +08:00
f817d3347b [artiq] cleanup module functionality tests 2025-01-20 10:24:08 +08:00
2d275949b8 move tests from artiq to standalone 2025-01-17 13:10:35 +08:00
2783834cb1 nac3artiq/demo: merge EmbeddingMap into min_artiq 2025-01-17 12:45:51 +08:00
879b063968 [artiq] add tests for module support 2025-01-16 12:42:13 +08:00
14e80dfab7 update snapshots 2025-01-16 12:41:30 +08:00
5fdbc34b43 [core] implement codegen for modules 2025-01-16 12:40:56 +08:00
32f24261f2 [artiq] add global variables to modules 2025-01-16 12:40:14 +08:00
ce40a46f8a [core] add module type 2025-01-16 12:40:06 +08:00
f15a64cc1b [artiq] register modules 2025-01-16 11:13:04 +08:00
7fac801936 [artiq] add module primitive type 2025-01-16 11:13:04 +08:00
febfd1241d [core] add module type 2025-01-16 11:13:04 +08:00
4bd5349381 [core] add attributes to class string 2025-01-16 11:13:04 +08:00
c15062ab4c msys2: update 2025-01-15 21:33:58 +08:00
933804e270 update dependencies 2025-01-15 21:18:45 +08:00
1cfaa1a779 [core] toplevel: Implement np_{any,all} 2025-01-15 16:09:32 +08:00