Commit Graph

3226 Commits

Author SHA1 Message Date
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
321ba57e84 manual/installing: --toolchain vivado 2016-04-14 01:25:48 +08:00
582efe5b91 typo 2016-04-14 01:17:47 +08:00
349ccfb633 gateware/nist_qc2: substitute FMC 2016-04-14 01:04:19 +08:00
71b9ba6ab7 manual/faq: list HITL TTL connections 2016-04-14 01:04:19 +08:00
317e6ea38d manual/git: commit needed before starting master, refresh. Closes #387 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
90876e0143 examples: move pdq2 frame selects away from TTLInOut ttl3 2016-04-12 19:41:16 +08:00
6552aa4c28 test: set inputs to input(), should close #383 2016-04-12 18:17:39 +08:00
936190033e gui/models: handle Qt calling DictSyncTreeSepModel.index with garbage inputs. Closes #388 2016-04-11 20:12:07 +08:00
e7d448efd3 dashboard/moninj: use ephemeral UDP port 2016-04-11 18:58:22 +08:00
a6c17d3e40 dashboard/moninj: fix windows problems 2016-04-11 18:58:13 +08:00
e4833a33fc dashboard/moninj: use thread instead of asyncio UDP (#39) 2016-04-11 18:57:21 +08:00
2617b9db82 installing.rst: typo 2016-04-10 21:01:15 +08:00
a82f042337 installing.rst: triple colons 2016-04-10 11:21:32 +08:00
64d1bca6c1 installing.rst: update, clarify 2016-04-10 00:03:36 +08:00
c858d44c73 README: rewrite, summarizing more aspects of ARTIQ 2016-04-10 00:00:20 +08:00
a48f44eb39 introduction.rst: update license 2016-04-10 00:00:12 +08:00
dee574084e README: note about doc/manual/introduction.rst 2016-04-09 23:59:50 +08:00
e2def34ede ipython notebook example: datasets subgroup 2016-04-08 12:21:43 +08:00
f3d8ac301c applets/simple: fix error msg, style 2016-04-08 01:27:22 +08:00
787ed65d00 plot_xy: fix errorbar plot 2016-04-08 01:26:42 +08:00
ca24e00400 plot_xy: un-randomize the fit plot 2016-04-08 01:26:23 +08:00
1d3c0166da dashboard: allow more than 99 scan points 2016-04-08 01:26:05 +08:00
whitequark
5fef95b073 doc: use proper CMAKE_BUILD_TYPE for LLVM.
Fixes #380.
2016-04-06 22:08:10 +00:00
2b516d21ae manual/developing_a_ndsp: update to new bind interface 2016-04-06 19:14:13 +08:00
d6339e49ca RELEASE_NOTES: spelling 2016-04-05 18:10:10 +08:00
eea7cdcf89 worker_impl: style 2016-04-05 18:03:55 +08:00
7dab0433be RELEASE_NOTES: HDF5 encoding 2016-04-05 18:03:55 +08:00
0b32d9946a worker: trust that h5py encodes strings 2016-04-05 18:03:55 +08:00
690eb8c304 worker: trust that h5py maps all types as we want 2016-04-05 18:03:55 +08:00
4ba07e01d1 test_h5types: also test ndarrays 2016-04-05 18:03:55 +08:00
a52b8fa3da test_h5types: use in-memory files 2016-04-05 18:03:55 +08:00
138271e936 RELEASE_NOTES: style 2016-04-05 18:03:46 +08:00