diff --git a/artiq/firmware/Cargo.toml b/artiq/firmware/Cargo.toml index 4aa1be734..705210ae1 100644 --- a/artiq/firmware/Cargo.toml +++ b/artiq/firmware/Cargo.toml @@ -2,4 +2,5 @@ members = ["runtime", "ksupport", "satman"] [profile.dev] -debug = 1 # either 0 or 2 cause an LLVM ICE +incremental = false # incompatible with LTO +debug = 2 diff --git a/artiq/firmware/ksupport/lib.rs b/artiq/firmware/ksupport/lib.rs index d7ea126ae..945514a6f 100644 --- a/artiq/firmware/ksupport/lib.rs +++ b/artiq/firmware/ksupport/lib.rs @@ -229,15 +229,12 @@ const DMA_BUFFER_SIZE: usize = 64 * 1024; struct DmaRecorder { active: bool, - #[allow(dead_code)] - padding: [u8; 3], //https://github.com/rust-lang/rust/issues/41315 data_len: usize, buffer: [u8; DMA_BUFFER_SIZE], } static mut DMA_RECORDER: DmaRecorder = DmaRecorder { active: false, - padding: [0; 3], data_len: 0, buffer: [0; DMA_BUFFER_SIZE], }; diff --git a/artiq/firmware/runtime/analyzer.rs b/artiq/firmware/runtime/analyzer.rs index 1e2909a37..44ca2ed71 100644 --- a/artiq/firmware/runtime/analyzer.rs +++ b/artiq/firmware/runtime/analyzer.rs @@ -5,18 +5,13 @@ use analyzer_proto::*; const BUFFER_SIZE: usize = 512 * 1024; -// hack until https://github.com/rust-lang/rust/issues/33626 is fixed -#[repr(simd)] -struct Align64(u64, u64, u64, u64, u64, u64, u64, u64); - +#[repr(align(64))] struct Buffer { - data: [u8; BUFFER_SIZE], - __alignment: [Align64; 0] + data: [u8; BUFFER_SIZE] } static mut BUFFER: Buffer = Buffer { - data: [0; BUFFER_SIZE], - __alignment: [] + data: [0; BUFFER_SIZE] }; fn arm() { @@ -68,9 +63,6 @@ fn worker(stream: &mut TcpStream) -> io::Result<()> { } pub fn thread(io: Io) { - // verify that the hack above works - assert!(::core::mem::align_of::() == 64); - let listener = TcpListener::new(&io, 65535); listener.listen(1382).expect("analyzer: cannot listen"); diff --git a/artiq/firmware/runtime/lib.rs b/artiq/firmware/runtime/lib.rs index 8581224b7..ce6f9ee24 100644 --- a/artiq/firmware/runtime/lib.rs +++ b/artiq/firmware/runtime/lib.rs @@ -1,5 +1,5 @@ #![no_std] -#![feature(compiler_builtins_lib, alloc, repr_simd, lang_items, const_fn, global_allocator)] +#![feature(compiler_builtins_lib, lang_items, alloc, global_allocator)] extern crate compiler_builtins; extern crate alloc; diff --git a/conda/artiq-dev/meta.yaml b/conda/artiq-dev/meta.yaml index 8c343decd..4ed09f11b 100644 --- a/conda/artiq-dev/meta.yaml +++ b/conda/artiq-dev/meta.yaml @@ -18,9 +18,9 @@ requirements: - misoc 0.11 py35_0+git3388e6ba - jesd204b 0.3 - binutils-or1k-linux >=2.27 - - llvm-or1k 4.0.1 - - llvmlite-artiq 0.20.0 - - rust-core-or1k 1.23.0 19 + - llvm-or1k 6.0.0 + - llvmlite-artiq 0.23.0.dev py35_2 + - rust-core-or1k 1.25.0 20 - openocd 0.10.0 1 - lit - outputcheck diff --git a/conda/artiq/meta.yaml b/conda/artiq/meta.yaml index ce77a0b78..f629af85a 100644 --- a/conda/artiq/meta.yaml +++ b/conda/artiq/meta.yaml @@ -26,7 +26,7 @@ requirements: - setuptools 33.1.1 run: - python >=3.5.3,<3.6 - - llvmlite-artiq 0.20.0 + - llvmlite-artiq 0.23.0.dev py35_2 - binutils-or1k-linux >=2.27 - pythonparser >=1.1 - openocd 0.10.0 1