Commit Graph

3029 Commits

Author SHA1 Message Date
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
whitequark 39d23793a4 transforms.llvm_ir_generator: extract class function attributes.
This should give LLVM more visibility.
2016-03-25 19:01:39 +00:00
whitequark 39599d4508 compiler: get rid of the GetConstructor opcode. 2016-03-25 19:01:39 +00:00
Robert Jördens 8a9c1d3043 RELEASE_NOTES: pipistrello speed change 2016-03-25 13:24:49 +01:00
Sebastien Bourdeauducq 4c622194c2 doc: update flterm instructions. Closes #346 2016-03-25 20:10:53 +08:00
Sebastien Bourdeauducq 8b00045c20 Merge branch 'master' of github.com:m-labs/artiq 2016-03-25 20:01:18 +08:00
Sebastien Bourdeauducq 3f333a58af gui/log: split lines correctly 2016-03-25 20:01:02 +08:00
Sebastien Bourdeauducq 5c6e2d7a3a gui/log: send Qt model notifications correctly 2016-03-25 20:00:52 +08:00
Robert Jördens 5b536d7c67 i2c: fix variable name (closes #347) 2016-03-25 12:51:55 +01:00
Sebastien Bourdeauducq 67ab8dbfa5 protocols/pc_rpc: short_exc_info 2016-03-25 19:43:34 +08:00
Sebastien Bourdeauducq ca4e6e03fa master/worker: use only first line in short_exc_info 2016-03-25 19:43:12 +08:00
Sebastien Bourdeauducq bebd89c959 gui: redesign table/trees to avoid slow and buggy qt/pyqt autosize. Closes #182. Closes #187. 2016-03-25 18:33:22 +08:00
Sebastien Bourdeauducq b190581102 Revert "runtime/i2c: more conservative timings"
This reverts commit 799c2c77c4.
2016-03-25 14:55:40 +08:00
Sebastien Bourdeauducq e9ca125976 protocols/remote_exec: fix call 2016-03-25 14:55:29 +08:00
Robert Jördens 590bedbd1e examples: add fit_image 2016-03-23 20:05:52 +01:00
Sebastien Bourdeauducq 3c624c777a examples: add remote_exec_controller 2016-03-24 00:50:27 +08:00
Sebastien Bourdeauducq e6809397a3 protocols: add remote_exec 2016-03-24 00:49:02 +08:00
Sebastien Bourdeauducq 0d7d584f08 master/worker_db: add controller_aux_target device_db entry type 2016-03-24 00:48:12 +08:00
Sebastien Bourdeauducq befbab5571 gui: add image applet 2016-03-23 17:04:22 +08:00
Sebastien Bourdeauducq 168113ce55 protocols/pc_rpc: support dynamic target creation 2016-03-23 15:13:56 +08:00
Sebastien Bourdeauducq 120db8ba08 protocols/pipe_ipc: raise line length limit 2016-03-23 15:12:29 +08:00
Sebastien Bourdeauducq 799c2c77c4 runtime/i2c: more conservative timings 2016-03-23 12:54:19 +08:00
Sebastien Bourdeauducq 2bb4ad189a test: fix controller simulations 2016-03-22 22:29:41 +08:00
Sebastien Bourdeauducq abac5284a9 Merge branch 'master' of github.com:m-labs/artiq 2016-03-22 21:56:26 +08:00
Sebastien Bourdeauducq d9e9b66494 depend on asyncserial 2016-03-22 21:56:09 +08:00
Sebastien Bourdeauducq b5441fd107 devices/novatech409b: convert to asyncserial 2016-03-22 21:55:58 +08:00
Sebastien Bourdeauducq 7657b67ea6 devices/thorlabs_tcube: cleanup, convert to asyncserial 2016-03-22 21:55:37 +08:00
Sebastien Bourdeauducq 2cbe47e26f protocols/pc_rpc: document coroutine methods, support locking 2016-03-22 21:55:06 +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
Robert Jördens 22cd12f721 doc: correctly place the openocd section, link it, add explanation 2016-03-20 20:19:12 +01:00
Joe Britton d069380f6b Fix typo. And in build of openocd on Ubuntu the aclocal dependency is provided by automake.
adduser requires root

conda installation requires user to build OpenOCD by hand.
2016-03-20 20:18:32 +01:00