Commit Graph

3409 Commits

Author SHA1 Message Date
whitequark df8018f0be compiler: emit verbose assembly via ARTIQ_DUMP_ASM. 2016-04-01 09:34:51 +00:00
whitequark d9dd7df3b2 compiler: add analysis passes from TargetMachine.
This doesn't have any effect right now, but is the right thing to do.
2016-04-01 09:34:36 +00:00
whitequark 10108e6d64 compiler: mark loaded pointers as !dereferenceable.
Also, lower the bound for test_pulse_rate_dds, since we generate
better code for it now.
2016-03-31 12:04:38 +00:00
whitequark 2c04979727 compiler: update for LLVM 3.7. 2016-03-31 11:23:47 +00:00
whitequark b8bd344e54 compiler: use correct data layout. 2016-03-31 11:22:29 +00:00
Robert Jördens c6516f3c83 doc: conda channel -> label 2016-03-31 10:29:07 +02:00
Robert Jördens d561681cc1 doc: add note about xcb (closes #361) 2016-03-31 10:28:57 +02:00
Sebastien Bourdeauducq d2d43b53e1 RELEASE_NOTES: 1.0rc2 2016-03-31 16:05:41 +08:00
Sebastien Bourdeauducq 0173031487 test/PulseRateDDS: run more iterations 2016-03-31 16:04:55 +08:00
Sebastien Bourdeauducq 05317a9259 manual: QC2 FMC voltage 2016-03-31 10:47:16 +08:00
Sebastien Bourdeauducq 3c9e4074d5 runtime: fix ddstest help (#365) 2016-03-31 10:27:18 +08:00
Sebastien Bourdeauducq 29a76bb02d influxdb: simplify and document pattern matching. Closes #166 2016-03-31 00:28:28 +08:00
Sebastien Bourdeauducq deb9a60ca3 gui: setParent(None) before deleteLater() to remove dock appears unnecessary and causes memory corruption on Windows. Closes #362 2016-03-30 11:40:00 +08:00
Sebastien Bourdeauducq 059aa2f83e gui: do 60114447 properly 2016-03-30 01:47:50 +08:00
Sebastien Bourdeauducq 010c68f0a1 Merge branch 'master' of github.com:m-labs/artiq 2016-03-30 01:45:16 +08:00
Sebastien Bourdeauducq 6011444789 gui: log error and bail out on artiq_gui.pyon write failure (#360) 2016-03-30 01:45:00 +08:00
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
whitequark 586022023b llvm_ir_generator: mark loads as non-null where applicable. 2016-03-29 13:34:37 +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 f6b391bb4e compiler: fix ARTIQ_DUMP_ELF. 2016-03-29 13:03:49 +00:00
whitequark a9489246a4 llvm_ir_generator: don't mark non-constant attribute loads as invariant.
Oops.
2016-03-29 13:03:49 +00:00
Sebastien Bourdeauducq dc2c19f08f gui/schedule: support terminating all experiments in a pipeline. Closes #262 2016-03-29 17:34:38 +08:00
Sebastien Bourdeauducq b59283f85e gui/applets: use a better default size, make minimum size proportional to font 2016-03-29 17:10:37 +08:00
Sebastien Bourdeauducq b6232aea86 gui: better default layout 2016-03-29 16:59:43 +08:00
Sebastien Bourdeauducq 84d50c4caf environment,worker_db: mutate datasets from experiments via dedicated method instead of Notifier. Closes #345 2016-03-29 16:26:14 +08:00
Sebastien Bourdeauducq a545598d4c style 2016-03-29 16:19:03 +08:00
Sebastien Bourdeauducq 1a513634ff doc/tutorial: add missing type annotation in LED example. Closes #356 2016-03-29 14:53:52 +08:00
Sebastien Bourdeauducq 3c09577ed0 device/thorlabs_tcube: fix port read 2016-03-29 14:39:55 +08:00
Sebastien Bourdeauducq 50888865e7 doc/dds: fix init timing margin 2016-03-29 12:01:32 +08:00
Sebastien Bourdeauducq ce57794e7f doc: fix comment about when and how DDS init should be done. Closes #353 2016-03-29 11:10:53 +08:00
whitequark 3ed852e077 Commit missing parts of 1d8b0d46. 2016-03-28 21:44:31 +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 6f5332f892 compiler: allow flagging syscalls, providing information to optimizer.
This also fixes a crash in test_cache introduced in 1d8b0d46.
2016-03-28 19:56:56 +00:00
Robert Jördens 049bd11bd6 scanwidget: handle min, max, suffix (closes #352) 2016-03-28 16:59:49 +02:00
whitequark 1d8b0d46bc 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-03-28 02:52:15 +00:00
whitequark 418f0a5234 compiler: mark loads of kernel constant attributes as load invariant.
Also, enable LICM, since it can take advantage of this.
2016-03-28 00:44:32 +00:00
whitequark 507ad96db3 coredevice: add some kernel_constant_attributes specifications. 2016-03-28 00:06:00 +00:00
whitequark ca7463a054 compiler: do not write back kernel constant attributes.
Fixes #322.
2016-03-28 00:05:57 +00:00
whitequark f4e6b18690 compiler: implement kernel constant attributes.
Part of #322.
2016-03-27 16:10:07 +00:00
whitequark 42609d057e test_pulse_rate_dds: tighten upper bound to 400us. 2016-03-27 14:27:32 +00:00
whitequark f81930ffd6 compiler: run IPSCCP.
This doesn't do much, only frees some registers.
2016-03-27 02:00:05 +00:00
whitequark 7213984330 compiler: raise inliner threshold to the equivalent of -O3. 2016-03-27 01:08:13 +00:00
whitequark e75ad3d1aa compiler: extract runtime checks into separate cold functions.
This reduces register pressure as well as function size, which
favorably affects the inliner.
2016-03-27 01:02:15 +00:00
whitequark 2a210d74fb test_pulse_rate: tighten upper bound to 1500ns. 2016-03-26 22:45:24 +00:00
whitequark 20ad7629ac llvm_ir_generator: generate code more amenable to LLVM's GlobalOpt.
This exposes almost all embedded methods to inlining, with massive
gains.
2016-03-26 21:35:48 +00:00
whitequark 186a564ba8 compiler: make quoted functions independent of outer environment. 2016-03-26 20:46:45 +00:00
whitequark f5c720c3ee compiler: tune the LLVM optimizer pipeline (fixes #315). 2016-03-26 13:20:23 +00:00
whitequark 3ee9834197 compiler: significantly increase readability of LLVM and ARTIQ IRs. 2016-03-26 12:21:02 +00:00
whitequark 8d0566661a compiler: quote functions directly instead of going through a local. 2016-03-25 22:35:55 +00:00