Commit Graph

40 Commits

Author SHA1 Message Date
whitequark
7af41bd29c llvm_ir_generator: handle no-op coercions. 2016-11-21 02:25:34 +00:00
David Nadlinger
bfbdba9205 compiler: Emit all-kernel_invariant objects as LLVM constants
This enables constant propagation optimisations, as verified by
the included test case. This is only a first stop-gap measure, though;
we should support optimisation based on kernel invariants on a more
fine-grained level.
2016-11-09 14:50:48 +00:00
David Nadlinger
7dcc987dd7 compiler: Fix break/continue targets in loop else blocks
Previously, they would still target the respective labels in the
just-exited loop.

Signed-off-by: David Nadlinger <code@klickverbot.at>
2016-11-05 02:35:01 +00:00
whitequark
cd68577dbc compiler: add support for async RPCs. 2016-10-30 00:57:31 +00:00
whitequark
feeb089505 compiler: warn about unused kernel_invariant entries.
Fixes #543.
2016-09-14 23:28:55 +00:00
whitequark
1a518ea7eb compiler.embedding: implement string concatenation.
Fixes #526.
2016-08-08 04:05:52 +00:00
whitequark
5a79fcf9ba embedding: reimplement 373578bc properly.
The core of the problem that 373578bc was attempting to solve is
that diagnostics sometimes should be chained; one way of chaining
is the loc.expanded_from feature, which handles macro-like expansion,
but another is providing context.

Before this commit, context was provided using an ad-hoc override
of a diagnostic engine, which did not work in cases where diagnostic
engine was not threaded through the call stack. This commit uses
the newly added pythonparser context feature to elegantly handle
the problem.
2016-07-07 11:49:21 +00:00
whitequark
933ea53c77 compiler: add basic numpy array support (#424). 2016-07-06 09:51:57 +00:00
whitequark
fa71b40c80 compiler: print the builtin type int(width=...) as np.int... 2016-07-06 04:22:51 +00:00
whitequark
6155f65366 compiler: remove now()/at().
Fixes #490.
2016-06-28 04:39:14 +00:00
whitequark
33e8e59cc7 compiler: implement min()/max() as builtins.
Fixes #239.
2016-06-22 01:09:41 +00:00
whitequark
77d47c2fdd transforms.artiq_ir_generator: split out finally→reraise control flow.
This makes it accessible to introspect by local access validator,
making some previously rejected code valid.

Fixes #331.
2016-06-22 00:57:32 +00:00
whitequark
f2ae24da39 compiler: add support for Python modules.
Fixes #408.
2016-06-21 23:35:07 +00:00
whitequark
c0e42bbfc8 compiler.embedding: always do one final inference pass.
Fixes #477.
2016-06-16 14:18:43 +00:00
whitequark
355af3e569 embedding: specialize inherited functions.
Fixes #414.
2016-05-16 15:59:26 +00:00
whitequark
0826ceb8ba Commit missing parts of a5bb4a24. 2016-05-10 02:12:57 +00:00
whitequark
a5bb4a24af compiler: support short form of raise.
Fixes #240.
2016-05-10 01:41:40 +00:00
whitequark
4e5d752951 compiler: fix quoting of methods (fixes #423). 2016-05-09 12:25:57 +00:00
5efa5f5265 style 2016-05-03 16:24:01 +08:00
whitequark
f7d83e9bdf compiler: make kernel_invariant an instance, not class, property.
Fixes #409.
2016-04-29 13:06:11 +00:00
whitequark
1464bae6b7 compiler: don't typecheck RPCs except for return type.
Fixes #260.
2016-04-26 01:12:36 +00:00
whitequark
9cc9e8b276 embedding: s/kernel_constant_attributes/kernel_invariants/g
Requested in #359.
2016-04-06 22:38:31 +00:00
whitequark
330b232672 test: relax lit/embedding/syscall_flags.
We currently have broken debug info. In either case, debug info
is irrelevant to this test.
2016-03-29 13:34:37 +00:00
whitequark
1038f1321f compiler: allow specifying per-function "fast-math" flags.
Fixes #351.
2016-03-28 21:44:08 +00:00
whitequark
f31249ad1c Commit missing parts of 6f5332f8. 2016-03-28 20:28:08 +00:00
whitequark
f4e6b18690 compiler: implement kernel constant attributes.
Part of #322.
2016-03-27 16:10:07 +00:00
whitequark
8d0566661a compiler: quote functions directly instead of going through a local. 2016-03-25 22:35:55 +00:00
whitequark
ac5061c205 validators.escape: track region of arguments.
Fixes #232.
2016-03-18 03:08:14 +00:00
whitequark
7e16da4a77 transforms.llvm_ir_generator: ignore assignments of None (fixes #309). 2016-03-01 12:26:42 +00:00
whitequark
63e0c7c07c Revert wrong parts of 6bd16e44. 2016-02-27 13:15:49 +00:00
whitequark
6bd16e448e Commit missing parts of 919a49b6. 2016-02-25 20:02:31 +00:00
whitequark
18274a09a1 Commit missing parts of 4426730. 2016-02-25 02:05:44 +00:00
whitequark
bc81be1345 Implement dumb 'with parallel' (#265). 2016-02-22 13:51:08 +00:00
whitequark
51a5910002 Rename 'with parallel' to 'with interleave' (#265). 2016-02-22 13:24:43 +00:00
whitequark
b0e7fddc32 lit: unbreak on non-conda. 2016-02-22 13:16:43 +00:00
whitequark
f28b259b5f Commit missing parts of 74a75841. 2016-02-15 19:36:19 +00:00
9ca8b48bf9 assume 'import artiq' works before running tests 2016-02-02 21:52:33 +01:00
whitequark
0acc86b3b3 transforms.iodelay_estimator: make diagnostics much more clear. 2016-01-27 02:10:15 +00:00
whitequark
3573a8750a transforms.inferencer: give a suggestion on "raise Exception". 2016-01-20 03:20:25 +00:00
d7e4783cae lit-test: move to artiq/test 2016-01-18 15:28:24 -07:00