-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
NLL compile-time performance regression #58178
Copy link
Copy link
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.
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.
Type
Fields
Give feedbackNo fields configured for issues without a type.
NLL seems to cause a severe regression in compile time for code generated by the gll crate.
cargo build. For me, takes about 1 minute.src/lib.rsand add#![feature(nll)]cargo build. For me, takes 77 minutes.gll generates a very large
parse.rsfile, about 46,000 lines long. (Located intarget/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