A leading-edge control system for quantum information experiments
Go to file
whitequark 8a908a7656 llvm_ir_generator: do not use 'coldcc' calling convention.
First, this calling convention doesn't actually exist in OR1K
and trying to use it in Asserts build causes an UNREACHABLE.

Second, I tried to introduce it and it does not appear to produce
any measurable benefit: not only OR1K has a ton of CSRs but also
it is quite hard, if not realistically impossible, to produce
the kind of register pressure that would be relieved by sparing
a few more CSRs for our exception raising function calls, since
temporaries don't have to be preserved before a noreturn call
and spilling over ten registers across an exceptional edge
is not something that the code we care about would do.

Third, it produces measurable drawbacks: it inflates code size
of check:* functions by adding spills. Of course, this could be
alleviated by making __artiq_raise coldcc as well, but what's
the point anyway?
2016-03-29 15:19:46 +00:00
artiq llvm_ir_generator: do not use 'coldcc' calling convention. 2016-03-29 15:19:46 +00:00
conda depend on asyncserial 2016-03-22 21:56:09 +08:00
doc doc/tutorial: add missing type annotation in LED example. Closes #356 2016-03-29 14:53:52 +08:00
examples environment,worker_db: mutate datasets from experiments via dedicated method instead of Notifier. Closes #345 2016-03-29 16:26:14 +08:00
misc doc: binutils patch is not needed any more. 2016-02-15 18:25:15 +00:00
.gitattributes use versioneer 2015-11-09 11:33:38 +08:00
.gitignore master: cache last RID. Closes #234 2016-02-15 18:20:50 +01:00
.gitmodules savannah keeps breaking, use our lwip mirror 2016-02-22 22:51:26 +08:00
CONTRIBUTING.rst CONTRIBUTING: bug reporting information 2016-02-20 11:25:21 +01:00
LICENSE update copyright/license 2015-09-05 15:50:34 -06:00
MANIFEST.in MANIFEST.in: update 2016-02-21 08:48:14 +08:00
README.rst use https for m-labs.hk 2016-02-10 17:20:29 +01:00
RELEASE_NOTES.rst environment,worker_db: mutate datasets from experiments via dedicated method instead of Notifier. Closes #345 2016-03-29 16:26:14 +08:00
RELEASING.rst RELEASEING: cleanup, add note about main conda label 2016-02-18 16:50:52 +01:00
setup.cfg versioneer: remote tag_prefix = v 2016-01-18 21:28:09 -07:00
setup.py depend on asyncserial 2016-03-22 21:56:09 +08:00
versioneer.py update versioneer 2015-11-09 12:19:01 +08:00

.. image:: doc/logo/artiq.png

ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a
next-generation control system for quantum information experiments. It is
developed in partnership with the Ion Storage Group at NIST, and its
applicability reaches beyond ion trapping.

The system features a high-level programming language that helps describing
complex experiments, which is compiled and executed on dedicated hardware with
nanosecond timing resolution and sub-microsecond latency.

Technologies employed include Python, Migen, MiSoC/mor1kx, LLVM and llvmlite.

Website:
https://m-labs.hk/artiq

Copyright (C) 2014-2016 M-Labs Limited. Licensed under GNU GPL version 3.