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