-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-NLLArea: Non-lexical lifetimes (NLL)Area: Non-lexical lifetimes (NLL)NLL-performantWorking towards the "performance is good" goalWorking towards the "performance is good" goalP-mediumMedium priorityMedium priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
NLL seems to cause a severe regression in compile time for code generated by the gll crate.
- Check out https://github.com/rust-lang-nursery/wg-grammar.git (current hash is e1d072a158a5d1f3d811bbd48bba3608bff1c99f).
cargo build
. For me, takes about 1 minute.- Edit
src/lib.rs
and add#![feature(nll)]
cargo build
. For me, takes 77 minutes.
gll generates a very large parse.rs
file, about 46,000 lines long. (Located in target/debug/build/rust-grammar-*/out/parse.rs
)
From what little debugging I did, I see it spending most of its time in a function called RegionInferenceContext::find_outlives_blame_span
.
Tested: 1.32.0 (stable) and rustc 1.34.0-nightly (f6fac42 2019-02-03).
Please let me know if there's any other information I can provide.
cc @qmx
Metadata
Metadata
Assignees
Labels
A-NLLArea: Non-lexical lifetimes (NLL)Area: Non-lexical lifetimes (NLL)NLL-performantWorking towards the "performance is good" goalWorking towards the "performance is good" goalP-mediumMedium priorityMedium priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.