Commit Graph

71 Commits

Author SHA1 Message Date
950f431483 standalone: Update help text for --emit-llvm 2023-10-16 15:52:51 +08:00
48eb64403f standalone: Treat -T0 as using all available threads 2023-10-13 14:57:16 +08:00
2c44b58bb8 standalone: Require use of -T for specifying thread count 2023-10-13 14:36:34 +08:00
279376a373 standalone: Emit IRRT IR 2023-09-30 09:31:18 +08:00
2a38d5160e meta: Respect opt flags when performing whole-module optimization 2023-09-28 19:58:54 +08:00
ab2360d7a0 core: Remove emit_llvm from CodeGenLLVMOptions
We instead output an LLVM bitcode file when the option is specified on
the command-line.
2023-09-22 17:16:29 +08:00
f59d45805f standalone: Add command line flags for target properties
For testing codegen for different platforms on the host system.
2023-09-18 11:35:20 +08:00
048fcb0a69 core: Switch to LLVM New Pass Manager 2023-09-18 11:35:15 +08:00
676d07657a core: Add target field to CodeGenLLVMOptions
For specifying the target machine options when optimizing and linking.

This field is currently unused but will be required in a future
commit.
2023-09-18 09:46:24 +08:00
474f9050ce standalone: Expose flags in command-line 2023-09-12 16:20:49 +08:00
3993a5cf3f core: Add LLVM options to WorkerRegistry 2023-09-12 10:57:05 +08:00
e4940247f3 standalone: Implement command-line parser using clap
In preparation for adding more command-line options.
2023-09-12 10:08:34 +08:00
ebd25af38b nac3standalone: allow classes without explicit init ()
Reviewed-on: 
Co-authored-by: z78078 <cc@m-labs.hk>
Co-committed-by: z78078 <cc@m-labs.hk>
2022-07-07 10:36:25 +08:00
a308d24caa nac3standalone: cleanup 2022-04-18 16:02:48 +08:00
1eac111d4c cleanup 2022-04-18 15:55:37 +08:00
44199781dc nac3standalone: add tests for operators 2022-04-18 15:31:56 +08:00
41d62f7325 nac3core/toplevel: fixed typevar substitution bug 2022-03-23 00:25:10 +08:00
3f890f183c nac3standalone/demo: handle imports consistently 2022-03-19 09:14:27 +08:00
234823c51a nac3standalone: added typevar test 2022-03-18 16:52:52 +08:00
f97f93d92c applied rustfmt and clippy auto fix 2022-02-21 18:27:46 +08:00
d9cb506f6a nac3core: refactored for better error messages 2022-02-21 18:24:19 +08:00
14d25b3b9d Fixed broken tests 2022-02-13 17:21:42 +08:00
64b94955fe nac3standalone: reorganize demos, compare against cpython 2022-01-23 10:35:06 +08:00
4760851638 nac3standalone: link modules and load irrt like in nac3artiq 2022-01-09 02:17:58 +08:00
b638d1b4b0 nac3standalone: set up LLVM inliner like in nac3artiq 2022-01-08 21:03:58 +08:00
9cc9a0284a nac3standalone: style 2021-12-28 10:59:17 +08:00
88f0da7bdd add file name to AST node location 2021-12-28 01:28:55 +08:00
fa04768a77 redo "nac3core: fix "
This reverts commit 86005da8e1.
2021-12-27 22:56:26 +08:00
86005da8e1 Revert "nac3core: fix "
This reverts commit 0902d8adf4.
2021-12-26 08:35:27 +08:00
0902d8adf4 nac3core: fix 2021-12-23 15:26:48 +08:00
2008db8097 nac3standalone: remove unused import 2021-12-20 17:39:16 +08:00
91625dd327 update kernel-only attribute annotation
Reviewed-on: 
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-19 11:04:53 +08:00
dfd3548ed2 TypeVar and virtual support in Symbol Resolver ()
Add `TypeVar` and `virtual` support for Symbol Resolver in nac3artiq and nac3standalone

Reviewed-on: 
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-01 22:44:53 +08:00
4b17511b4a Merge branch 'master' into KernelInvariant 2021-11-27 21:29:27 +08:00
4587088835 Constant Default Parameter Support ()
Add support for constant default parameter

Reviewed-on: 
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-11-23 07:32:09 +08:00
c6f75c8bde nac3standalone: fix error message when no entry point is found 2021-11-22 14:52:52 +08:00
aae9925014 nac3standalone: report when entry point run function cannot be found 2021-11-21 06:11:55 +08:00
ba08deada6 nac3core: refactor codegen 2021-11-20 19:50:25 +08:00
bf7e2c295a integrate nac3parser 2021-11-03 17:11:00 +08:00
279f47f633 nac3core/codegen: avoid sending unifiers
Previously, we have to copy types from one unification table to another,
and make the table sendable. This requires cloning (processing) the
whole table 3 times per function call which is not efficient and uses
more memory than required when the unification table is large.

We now use a concrete type table to only copy the type we need. This
reduces the overhead as we only need to process the unification table
for once (when we do the function codegen), and reduces memory usage by
a bit (but not noticeable when the unification table is small, i.e. the
types are simple).
2021-10-17 13:02:18 +08:00
1f5bea2448 nac3core/codegen: refactor according to 2021-10-16 22:17:36 +08:00
c4259d14d1 fixed some clippy warnings 2021-10-16 18:08:13 +08:00
ba93931758 implement timeline functions for RISC-V (WIP) 2021-10-02 19:05:35 +08:00
f0fdfe42cb nac3core: better impl of 2021-09-30 17:07:48 +08:00
d4ed76d76e nac3core: implementing 2021-09-26 22:17:09 +08:00
c4fbfeaca9 nac3standalone: added thread number arg 2021-09-23 20:02:56 +08:00
105d605e6d nac3core: fix clippy warnings 2021-09-22 18:04:06 +08:00
084efe92af nac3core: use string interning 2021-09-22 18:04:06 +08:00
8acb39f31f fix parallel compilation 2021-09-22 15:00:32 +08:00
956cca6ac8 cleanup demos 2021-09-22 14:57:13 +08:00