forked from M-Labs/artiq
1
0
Fork 0
Commit Graph

2333 Commits

Author SHA1 Message Date
Robert Jördens 001f6d6fab test_rtio: scale speed test results to 'event' intervals 2016-04-14 18:19:05 +08:00
Robert Jördens 3d487d98b7 test_rtio: comments and correction
* add comments what is actually being measured in the two rate tests
* remove spurious factor of two
2016-04-14 18:18:54 +08:00
whitequark d6510083b7 Commit missing parts of bb064c67a. 2016-04-14 18:14:47 +08:00
whitequark 904379db7e runtime: add kernel-accessible sqrt.
Fixes #382.
2016-04-14 18:14:47 +08:00
whitequark 2248a2eb9e embedding: s/kernel_constant_attributes/kernel_invariants/g
Requested in #359.
2016-04-14 18:14:44 +08:00
whitequark e6666ce6a9 test_pulse_rate_dds: adjust bounds. 2016-04-14 18:10:41 +08:00
whitequark c6f946a816 llvm_ir_generator: add fast-math flags to fcmp.
This is allowed in 3.8.
2016-04-14 18:10:30 +08:00
whitequark d4f1614a23 llvm_ir_generator: change !{→unconditionally_}dereferenceable.
Since LLVM 3.8, !dereferenceable is weaker, so we introduce
!unconditionally_dereferenceable (http://reviews.llvm.org/D18738)
to regain its functionality.
2016-04-14 18:10:17 +08:00
whitequark 75252ca5a4 llvm_ir_generator: fix DICompileUnit.language. 2016-04-14 18:10:17 +08:00
whitequark 89326fb189 compiler: purge generated functions from backtraces. 2016-04-14 18:09:59 +08:00
whitequark a2f6e81c50 ttl: mark constant attributes for TTL{In,InOut,ClockGen}. 2016-04-14 18:09:59 +08:00
whitequark 702e959033 llvm_ir_generator: add TBAA metadata for @now. 2016-04-14 18:09:59 +08:00
whitequark f958cba4ed llvm_ir_generator: update debug info emission for LLVM 3.8. 2016-04-14 18:09:36 +08:00
whitequark 7c520aa0c4 coredevice: format backtrace RA as +0xN, not 0xN.
The absolute address is somewhere in the 0x4000000 range; the one
that is displayed is an offset from the shared object base.
2016-04-14 18:09:36 +08:00
whitequark f26990aa57 compiler: emit verbose assembly via ARTIQ_DUMP_ASM. 2016-04-14 18:09:02 +08:00
whitequark c89c27e389 compiler: add analysis passes from TargetMachine.
This doesn't have any effect right now, but is the right thing to do.
2016-04-14 18:08:47 +08:00
whitequark 1120c264b1 compiler: mark loaded pointers as !dereferenceable.
Also, lower the bound for test_pulse_rate_dds, since we generate
better code for it now.
2016-04-14 18:08:47 +08:00
whitequark 03b6555d9d compiler: update for LLVM 3.7. 2016-04-14 18:08:28 +08:00
whitequark 932e680f3e compiler: use correct data layout. 2016-04-14 18:07:56 +08:00
whitequark f59fd8faec 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-04-14 18:07:35 +08:00
whitequark e416246e78 llvm_ir_generator: mark loads as non-null where applicable. 2016-04-14 18:07:35 +08:00
whitequark 50ae17649d test: relax lit/embedding/syscall_flags.
We currently have broken debug info. In either case, debug info
is irrelevant to this test.
2016-04-14 18:07:35 +08:00
whitequark f7603dcb6f compiler: fix ARTIQ_DUMP_ELF. 2016-04-14 18:07:17 +08:00
whitequark 812e79b63d llvm_ir_generator: don't mark non-constant attribute loads as invariant.
Oops.
2016-04-14 18:07:13 +08:00
whitequark dcb0ffdd03 Commit missing parts of 1d8b0d46. 2016-04-14 18:07:04 +08:00
whitequark ee7e648cb0 compiler: allow specifying per-function "fast-math" flags.
Fixes #351.
2016-04-14 18:07:04 +08:00
whitequark 5fafcc1341 Commit missing parts of 6f5332f8. 2016-04-14 18:07:04 +08:00
whitequark f7d4a37df9 compiler: allow flagging syscalls, providing information to optimizer.
This also fixes a crash in test_cache introduced in 1d8b0d46.
2016-04-14 18:06:47 +08:00
whitequark c6b21652ba compiler: mark FFI functions as ModRef=Ref using TBAA metadata.
Fascinatingly, the fact that you can mark call instructions with
!tbaa metadata is completely undocumented. Regardless, it is true:
a !tbaa metadata for an "immutable" type will cause
AliasAnalysis::getModRefBehavior to return OnlyReadsMemory for that
call site.

Don't bother marking loads with TBAA yet since we already place
!load.invariant on them (which is as good as the TBAA "immutable"
flag) and after that we're limited by lack of !nonnull anyway.

Also, add TBAA analysis passes in our pipeline to actually engage it.
2016-04-14 18:06:47 +08:00
whitequark 0e0f81b509 compiler: mark loads of kernel constant attributes as load invariant.
Also, enable LICM, since it can take advantage of this.
2016-04-14 18:06:47 +08:00
whitequark 081edb27d7 coredevice: add some kernel_constant_attributes specifications. 2016-04-14 18:06:47 +08:00
whitequark b5fd257a33 compiler: do not write back kernel constant attributes.
Fixes #322.
2016-04-14 18:06:21 +08:00
whitequark 665e59e064 compiler: implement kernel constant attributes.
Part of #322.
2016-04-14 18:06:21 +08:00
whitequark 348e058c6f test_pulse_rate_dds: tighten upper bound to 400us. 2016-04-14 18:06:06 +08:00
whitequark 718d411dd5 compiler: run IPSCCP.
This doesn't do much, only frees some registers.
2016-04-14 18:05:57 +08:00
whitequark 019f528ea6 compiler: raise inliner threshold to the equivalent of -O3. 2016-04-14 18:05:57 +08:00
whitequark 3fa5762c10 compiler: extract runtime checks into separate cold functions.
This reduces register pressure as well as function size, which
favorably affects the inliner.
2016-04-14 18:05:57 +08:00
whitequark fcf2a73f82 test_pulse_rate: tighten upper bound to 1500ns. 2016-04-14 18:05:31 +08:00
whitequark 92f3dc705f llvm_ir_generator: generate code more amenable to LLVM's GlobalOpt.
This exposes almost all embedded methods to inlining, with massive
gains.
2016-04-14 18:05:10 +08:00
whitequark f2c92fffea compiler: make quoted functions independent of outer environment. 2016-04-14 18:04:42 +08:00
whitequark ccb1d54beb compiler: tune the LLVM optimizer pipeline (fixes #315). 2016-04-14 18:04:42 +08:00
whitequark 8fa4281470 compiler: significantly increase readability of LLVM and ARTIQ IRs. 2016-04-14 18:04:42 +08:00
whitequark e534941383 compiler: quote functions directly instead of going through a local. 2016-04-14 18:04:22 +08:00
whitequark f72e050af5 transforms.llvm_ir_generator: extract class function attributes.
This should give LLVM more visibility.
2016-04-14 18:04:22 +08:00
whitequark 00facbbc78 compiler: get rid of the GetConstructor opcode. 2016-04-14 18:04:22 +08:00
Sebastien Bourdeauducq 349ccfb633 gateware/nist_qc2: substitute FMC 2016-04-14 01:04:19 +08:00
dhslichter 08e742ce68 Updated qc2 pinouts for SPI and 2x DDS bus, update docs 2016-04-13 18:39:50 +08:00
Robert Jördens 90876e0143 examples: move pdq2 frame selects away from TTLInOut ttl3 2016-04-12 19:41:16 +08:00
Robert Jördens 6552aa4c28 test: set inputs to input(), should close #383 2016-04-12 18:17:39 +08:00
Sebastien Bourdeauducq 936190033e gui/models: handle Qt calling DictSyncTreeSepModel.index with garbage inputs. Closes #388 2016-04-11 20:12:07 +08:00
Sebastien Bourdeauducq e7d448efd3 dashboard/moninj: use ephemeral UDP port 2016-04-11 18:58:22 +08:00
Sebastien Bourdeauducq a6c17d3e40 dashboard/moninj: fix windows problems 2016-04-11 18:58:13 +08:00
Sebastien Bourdeauducq e4833a33fc dashboard/moninj: use thread instead of asyncio UDP (#39) 2016-04-11 18:57:21 +08:00
Robert Jördens e2def34ede ipython notebook example: datasets subgroup 2016-04-08 12:21:43 +08:00
Robert Jördens f3d8ac301c applets/simple: fix error msg, style 2016-04-08 01:27:22 +08:00
Robert Jördens 787ed65d00 plot_xy: fix errorbar plot 2016-04-08 01:26:42 +08:00
Robert Jördens ca24e00400 plot_xy: un-randomize the fit plot 2016-04-08 01:26:23 +08:00
Robert Jördens 1d3c0166da dashboard: allow more than 99 scan points 2016-04-08 01:26:05 +08:00
Robert Jördens eea7cdcf89 worker_impl: style 2016-04-05 18:03:55 +08:00
Robert Jördens 0b32d9946a worker: trust that h5py encodes strings 2016-04-05 18:03:55 +08:00
Robert Jördens 690eb8c304 worker: trust that h5py maps all types as we want 2016-04-05 18:03:55 +08:00
Robert Jördens 4ba07e01d1 test_h5types: also test ndarrays 2016-04-05 18:03:55 +08:00
Robert Jördens a52b8fa3da test_h5types: use in-memory files 2016-04-05 18:03:55 +08:00
Robert Jördens e1f3968a4a worker, hdf5: move datasets to subgroup 2016-04-05 18:03:04 +08:00
Sebastien Bourdeauducq 4f589a7277 artiq_flash: clear error message when bin directory is absent 2016-04-05 16:09:53 +08:00
Sebastien Bourdeauducq cff01274e9 ship examples with package 2016-04-05 14:36:31 +08:00
Sebastien Bourdeauducq eba90c8782 client: add --async option to scan-repository, recommend usage in git post-receive 2016-04-04 22:18:29 +08:00
Sebastien Bourdeauducq b095c94919 master/worker_impl: use ParentDatasetDB in examine mode. Closes #368 2016-04-02 23:08:14 +08:00
Sebastien Bourdeauducq 2f404bae41 master: always expose full set of worker handlers (#368) 2016-04-02 23:08:14 +08:00
Sebastien Bourdeauducq 08549bc3c5 gui/experiment: fix recompute argument error handling 2016-04-02 23:08:14 +08:00
whitequark 3e6e8c6b51 Revert "test: XFAIL lit/devirtualization/*."
This reverts commit 63121e4faf.
2016-04-02 09:54:35 +00:00
whitequark 63121e4faf test: XFAIL lit/devirtualization/*. 2016-03-31 09:17:34 +00:00
Sebastien Bourdeauducq b761a824ee runtime: fix ddstest help (#365) 2016-03-31 10:27:41 +08:00
Sebastien Bourdeauducq 06e626024b gui: setParent(None) before deleteLater() to remove dock appears unnecessary and causes memory corruption on Windows. Closes #362 2016-03-30 11:39:36 +08:00
Sebastien Bourdeauducq 72da5cc0de gui: do 60114447 properly 2016-03-30 01:48:25 +08:00
Sebastien Bourdeauducq b64cea0a79 gui: log error and bail out on artiq_gui.pyon write failure (#360) 2016-03-30 01:45:37 +08:00
Sebastien Bourdeauducq 7cff4977b4 gui/applets: use a better default size, make minimum size proportional to font 2016-03-29 17:11:04 +08:00
Sebastien Bourdeauducq ddf6ec433e gui: better default layout 2016-03-29 17:11:04 +08:00
Sebastien Bourdeauducq ac0f62628d environment,worker_db: mutate datasets from experiments via dedicated method instead of Notifier. Closes #345 2016-03-29 17:11:04 +08:00
Sebastien Bourdeauducq e6da8f778e doc/dds: fix init timing margin 2016-03-29 12:01:22 +08:00
Sebastien Bourdeauducq 74b71e5f64 doc: fix comment about when and how DDS init should be done. Closes #353 2016-03-29 11:11:13 +08:00
Robert Jördens b04b5c8239 scanwidget: handle min, max, suffix (closes #352) 2016-03-29 00:55:27 +08:00
Sebastien Bourdeauducq 4e0e8341ca gui/log: split lines correctly 2016-03-25 20:05:13 +08:00
Sebastien Bourdeauducq 69a531edf4 gui/log: send Qt model notifications correctly 2016-03-25 20:05:08 +08:00
Sebastien Bourdeauducq 74b3c47614 protocols/pc_rpc: short_exc_info 2016-03-25 20:04:53 +08:00
Sebastien Bourdeauducq 7bdec1b93b master/worker: use only first line in short_exc_info 2016-03-25 20:03:27 +08:00
Sebastien Bourdeauducq 5d5a4433a7 gui: redesign table/trees to avoid slow and buggy qt/pyqt autosize. Closes #182. Closes #187. 2016-03-25 20:03:22 +08:00
Robert Jördens 358d2a6ba3 i2c: fix variable name (closes #347) 2016-03-25 12:52:18 +01:00
Sebastien Bourdeauducq bbef353057 protocols/pipe_ipc: raise line length limit 2016-03-23 15:14:24 +08:00
Robert Jördens 8f54a1e619 pipistrello: sys_clk 83 -> 75 MHz
This should close #341 once migen generates stable output.
2016-03-21 13:47:32 +01:00
Sebastien Bourdeauducq 1c9b8a1d52 test/coredevice/portability/pulses: compute time differences in MU 2016-03-20 15:29:31 +08:00
Sebastien Bourdeauducq ffe4d81f3e runtime/net_server: restore connection close behavior when len<0 2016-03-19 22:46:42 +08:00
Sebastien Bourdeauducq fc558bcd27 analyzer: adapt analyzer_poll to new network code 2016-03-19 22:08:08 +08:00
Sebastien Bourdeauducq 900b0cc629 analyzer: make byte_count 64-bit 2016-03-19 19:40:23 +08:00
Sebastien Bourdeauducq 4d22db1aff coredevice/exceptions/ClockFailure: improve description 2016-03-19 18:01:00 +08:00
Sebastien Bourdeauducq ff697a47ce test/coredevice/cache: fix exception import 2016-03-19 18:00:10 +08:00
Sebastien Bourdeauducq 641831e0e1 dds: improve error reporting 2016-03-19 12:15:19 +08:00
Sebastien Bourdeauducq d0af58d122 coredevice: only import common RTIO exceptions 2016-03-19 12:11:47 +08:00
whitequark 891e3cf1fe Commit missing parts of 501de306. 2016-03-18 22:48:26 +00:00
whitequark 501de30626 Report watchdog expiration and RTIO clock failure as exceptions.
Fixes #316.
2016-03-18 22:29:53 +00:00