Open
Description
Hi. I tried this code:
const COUNT : usize = 40000;
fn main () {
let mut vol_buffer = [ 0u64; COUNT ];
let mut input = unsafe { std::ptr::read_volatile(&mut vol_buffer) };
input[0] = 42;
eprintln!("{:?}", input[0]);
}
Expected results:
Relatively quick compilation of a program that prints 42.
Actual results:
rustc took 45 seconds on my really rather fast laptop (and also uses a great deal of memory). The compiled binary works as epected.
Changing the value of COUNT shows the following (with an earlier rustc, but the newly-updated one is about as slow):
10000 1.74s
20000 5.9s
30000 20s
40000 46s
I haven't waited for completion of any larger values. In my original version I had COUNT = a million; I killed rustc after some minutes and about 2G of RAM use.
Meta
rustc --version --verbose
:
binary: rustc
commit-hash: 346aec9b02f3c74f3fce97fd6bda24709d220e49
commit-date: 2020-07-11
host: x86_64-unknown-linux-gnu
release: 1.46.0-nightly
LLVM version: 10.0
Metadata
Metadata
Assignees
Labels
Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Category: An issue proposing an enhancement or a PR with one.Issue: Problems and improvements with respect to compile times.Relevant to the compiler team, which will review and decide on the PR/issue.