Skip to content

Infinite loop and enormous memory consumption when building release #50323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
khuey opened this issue Apr 29, 2018 · 6 comments
Closed

Infinite loop and enormous memory consumption when building release #50323

khuey opened this issue Apr 29, 2018 · 6 comments
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. C-enhancement Category: An issue proposing an enhancement or a PR with one. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@khuey
Copy link
Contributor

khuey commented Apr 29, 2018

Check out https://github.com/khuey/cpp_demangle/tree/experimental.

cargo build works fine.
cargo build --release seems to go into an iloop and burn through memory (I gave it 10 minutes of CPU and 16GB of memory before I killed it).

The previous commit works fine, so something in khuey/cpp_demangle@df43ff0 is triggering it.

I see this on both stable and latest nightly.

rustc -V --verbose
rustc 1.25.0 (84203cac6 2018-03-25)
binary: rustc
commit-hash: 84203cac67e65ca8640b8392348411098c856985
commit-date: 2018-03-25
host: x86_64-unknown-linux-gnu
release: 1.25.0
LLVM version: 6.0
rustc -V --verbose
rustc 1.27.0-nightly (66363b288 2018-04-28)
binary: rustc
commit-hash: 66363b288141ed2af4b95fb4205a56dce6248363
commit-date: 2018-04-28
host: x86_64-unknown-linux-gnu
release: 1.27.0-nightly
LLVM version: 6.0
@ExpHP
Copy link
Contributor

ExpHP commented Apr 30, 2018

Possibly related to #49402

@fitzgen
Copy link
Member

fitzgen commented Apr 30, 2018

Looks like this is all in LLVM:

screen shot 2018-04-30 at 9 18 06 am

@fitzgen
Copy link
Member

fitzgen commented Apr 30, 2018

Output of RUSTFLAGS="-Z time-passes" cargo build --release until it hangs:

$ RUSTFLAGS="-Z time-passes" cargo build --release
   Compiling glob v0.2.11
   Compiling unicode-width v0.1.4
   Compiling libc v0.2.33
   Compiling strsim v0.7.0
   Compiling ansi_term v0.11.0
   Compiling vec_map v0.8.0
   Compiling bitflags v1.0.2
  time: 0.005	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
  time: 0.005	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
  time: 0.006	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
  time: 0.009	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
  time: 0.008	parsing
  time: 0.010	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	recursion limit
  time: 0.000	plugin registration
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
  time: 0.012	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
    time: 0.019	expand crate
    time: 0.023	expand crate
    time: 0.031	expand crate
    time: 0.030	expand crate
    time: 0.028	expand crate
    time: 0.000	check unused macros
    time: 0.000	check unused macros
    time: 0.000	check unused macros
    time: 0.000	check unused macros
    time: 0.000	check unused macros
  time: 0.032	expansion
  time: 0.036	expansion
  time: 0.030	expansion
  time: 0.032	expansion
  time: 0.000	maybe building test harness
  time: 0.000	maybe building test harness
  time: 0.037	expansion
  time: 0.000	maybe building test harness
  time: 0.000	maybe building test harness
  time: 0.000	maybe building test harness
  time: 0.000	maybe creating a macro crate
  time: 0.000	maybe creating a macro crate
  time: 0.000	maybe creating a macro crate
  time: 0.000	maybe creating a macro crate
  time: 0.000	maybe creating a macro crate
  time: 0.000	creating allocators
  time: 0.000	AST validation
  time: 0.000	creating allocators
  time: 0.001	creating allocators
  time: 0.001	creating allocators
  time: 0.001	creating allocators
  time: 0.000	AST validation
  time: 0.000	AST validation
  time: 0.002	name resolution
    time: 0.036	expand crate
    time: 0.000	check unused macros
  time: 0.094	expansion
  time: 0.000	maybe building test harness
  time: 0.000	maybe creating a macro crate
  time: 0.001	AST validation
  time: 0.001	name resolution
  time: 0.001	AST validation
  time: 0.001	complete gated feature checking
  time: 0.001	name resolution
  time: 0.001	creating allocators
  time: 0.001	complete gated feature checking
  time: 0.001	AST validation
  time: 0.002	lowering ast -> hir
  time: 0.001	lowering ast -> hir
  time: 0.000	early lint checks
  time: 0.003	complete gated feature checking
  time: 0.001	early lint checks
  time: 0.001	lowering ast -> hir
  time: 0.000	early lint checks
  time: 0.001	indexing hir
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.000	loop checking
  time: 0.000	attribute checking
  time: 0.001	indexing hir
  time: 0.002	indexing hir
  time: 0.006	name resolution
  time: 0.007	name resolution
  time: 0.001	stability checking
  time: 0.008	name resolution
    time: 0.148	expand crate
    time: 0.000	check unused macros
  time: 0.170	expansion
  time: 0.000	maybe building test harness
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.000	loop checking
  time: 0.001	maybe creating a macro crate
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.000	attribute checking
  time: 0.000	loop checking
  time: 0.000	stability checking
  time: 0.000	type collecting
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
  time: 0.000	coherence checking
  time: 0.000	variance testing
  time: 0.000	attribute checking
  time: 0.000	wf checking
  time: 0.000	item-types checking
  time: 0.000	item-bodies checking
  time: 0.000	rvalue promotion
  time: 0.004	type collecting
  time: 0.001	stability checking
  time: 0.003	creating allocators
  time: 0.007	complete gated feature checking
  time: 0.005	complete gated feature checking
  time: 0.005	complete gated feature checking
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
  time: 0.000	privacy checking
  time: 0.000	intrinsic checking
  time: 0.000	match checking
  time: 0.000	liveness checking
  time: 0.000	borrow checking
  time: 0.000	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
  time: 0.000	death checking
  time: 0.000	unused lib feature checking
  time: 0.002	AST validation
  time: 0.004	type collecting
  time: 0.002	lint checking
  time: 0.000	outlives testing
  time: 0.000	resolving dependency formats
  time: 0.000	impl wf inference
  time: 0.000	coherence checking
  time: 0.000	variance testing
  time: 0.005	lowering ast -> hir
  time: 0.001	early lint checks
  time: 0.003	wf checking
    time: 0.004	write metadata
    time: 0.000	translation item collection
  time: 0.009	lowering ast -> hir
  time: 0.008	lowering ast -> hir
  time: 0.002	indexing hir
  time: 0.009	name resolution
  time: 0.032	coherence checking
  time: 0.009	item-types checking
  time: 0.000	variance testing
    time: 0.000	codegen unit partitioning
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.000	loop checking
  time: 0.003	early lint checks
  time: 0.001	attribute checking
  time: 0.004	early lint checks
  time: 0.004	wf checking
  time: 0.002	stability checking
  time: 0.005	complete gated feature checking
  time: 0.002	item-types checking
    time: 0.001	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.069	translation
    time: 0.000	llvm function passes [bitflags0]
    time: 0.000	llvm module passes [bitflags0]
  time: 0.005	indexing hir
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.0  time: 0.006	indexing hir
00	looking for plugin registrar
  time: 0.006	type collecting
    time: 0.000	LTO passes
  time: 0.009	lowering ast -> hir
  time: 0.022	item-bodies checking
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.000	loop checking
    time: 0.001	codegen passes [bitflags0-8420e741fe7b4ea5c3c472400c2278e8.rs]
  time: 0.033	LLVM passes
  time: 0.000	serialize work products
  time: 0.000	attribute checking
  time: 0.002	early lint checks
  time: 0.000	loop checking
  time: 0.003	rvalue promotion
  time: 0.000	attribute checking
  time: 0.001	privacy checking
  time: 0.000	intrinsic checking
  time: 0.000	match checking
  time: 0.000	liveness checking
  time: 0.001	stability checking
  time: 0.004	linking
  time: 0.006	type collecting
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
  time: 0.010	indexing hir
  time: 0.000	load query result cache
  time: 0.019	stability checking
  time: 0.048	coherence checking
  time: 0.017	borrow checking
  time: 0.054	coherence checking
  time: 0.081	item-bodies checking
  time: 0.000	looking for entry point
  time: 0.000	MIR borrow checking
  time: 0.000	variance testing
  time: 0.000	variance testing
  time: 0.000	dumping chalk-like clauses
  time: 0.000	looking for plugin registrar
  time: 0.000	MIR effect checking
  time: 0.000	death checking
  time: 0.000	unused lib feature checking
  time: 0.001	loop checking
  time: 0.002	attribute checking
  time: 0.006	rvalue promotion
  time: 0.003	stability checking
  time: 0.001	privacy checking
  time: 0.000	intrinsic checking
  time: 0.008	type collecting
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
  time: 0.001	match checking
  time: 0.001	liveness checking
  time: 0.013	wf checking
  time: 0.013	lint checking
  time: 0.000	resolving dependency formats
  time: 0.001	item-types checking
  time: 0.017	wf checking
    time: 0.009	write metadata
  time: 0.017	type collecting
  time: 0.007	item-types checking
  time: 0.044	coherence checking
  time: 0.021	borrow checking
  time: 0.000	variance testing
  time: 0.000	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
    time: 0.000	translation item collection
    time: 0.000	codegen unit partitioning
  time: 0.000	death checking
  time: 0.000	unused lib feature checking
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
    time: 0.000	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.059	translation
  time: 0.002	lint checking
  time: 0.000	resolving dependency formats
    time: 0.000	llvm function passes [unicode_width0]
    time: 0.001	write metadata
    time: 0.000	llvm module passes [unicode_width0]
    time: 0.000	LTO passes
    time: 0.001	codegen passes [unicode_width0-1b3ca03cd0a4a064ce2ae2b97507cd1.rs]
  time: 0.006	LLVM passes
  time: 0.000	serialize work products
  time: 0.010	wf checking
  time: 0.079	item-bodies checking
  time: 0.037	coherence checking
  time: 0.045	item-bodies checking
  time: 0.002	linking
    time: 0.063	translation item collection
  time: 0.000	variance testing
  time: 0.004	item-types checking
   Compiling textwrap v0.9.0
  time: 0.010	rvalue promotion
  time: 0.011	rvalue promotion
    time: 0.005	codegen unit partitioning
  time: 0.005	privacy checking
  time: 0.000	intrinsic checking
  time: 0.001	match checking
  time: 0.000	liveness checking
  time: 0.005	privacy checking
  time: 0.000	intrinsic checking
  time: 0.002	match checking
  time: 0.001	liveness checking
  time: 0.042	wf checking
  time: 0.038	borrow checking
  time: 0.000	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
  time: 0.000	death checking
  time: 0.000	unused lib feature checking
  time: 0.008	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
  time: 0.015	lint checking
  time: 0.000	resolving dependency formats
    time: 0.017	write metadata
    time: 0.000	translation item collection
    time: 0.000	codegen unit partitioning
    time: 0.000	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.020	translation
    time: 0.028	llvm function passes [strsim0]
    time: 0.036	expand crate
    time: 0.000	check unused macros
  time: 0.036	expansion
  time: 0.000	maybe building test harness
  time: 0.000	maybe creating a macro crate
  time: 0.001	creating allocators
    time: 0.000	llvm function passes [vec_map0]
    time: 0.000	llvm module passes [vec_map0]
  time: 0.000	AST validation
    time: 0.000	LTO passes
  time: 0.079	borrow checking
    time: 0.001	codegen passes [vec_map0-bc87066aacb77692a3e4c6fa60706cf9.rs]
  time: 0.000	MIR borrow checking
  time: 0.007	LLVM passes
  time: 0.000	dumping chalk-like clauses
  time: 0.004	name resolution
  time: 0.000	MIR effect checking
  time: 0.000	serialize work products
  time: 0.001	death checking
  time: 0.005	complete gated feature checking
    time: 0.014	llvm function passes [strsim3]
  time: 0.071	item-types checking
  time: 0.000	unused lib feature checking
  time: 0.131	item-bodies checking
  time: 0.002	linking
  time: 0.004	lowering ast -> hir
  time: 0.001	early lint checks
  time: 0.002	indexing hir
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.000	loop checking
  time: 0.000	attribute checking
  time: 0.001	stability checking
  time: 0.009	lint checking
  time: 0.000	resolving dependency formats
  time: 0.005	type collecting
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
  time: 0.019	rvalue promotion
  time: 0.006	privacy checking
    time: 0.022	write metadata
  time: 0.000	intrinsic checking
  time: 0.003	match checking
  time: 0.001	liveness checking
    time: 0.016	llvm function passes [strsim2]
  time: 0.047	item-bodies checking
    time: 0.022	translation item collection
  time: 0.043	coherence checking
  time: 0.000	variance testing
    time: 0.008	llvm function passes [strsim4]
  time: 0.010	rvalue promotion
    time: 0.001	codegen unit partitioning
  time: 0.006	wf checking
  time: 0.002	item-types checking
  time: 0.022	privacy checking
  time: 0.001	intrinsic checking
  time: 0.003	match checking
  time: 0.001	liveness checking
  time: 0.088	borrow checking
  time: 0.000	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
  time: 0.001	death checking
  time: 0.000	unused lib feature checking
  time: 0.010	lint checking
  time: 0.000	resolving dependency formats
    time: 0.015	write metadata
    time: 0.155	llvm module passes [strsim3]
    time: 0.016	llvm function passes [ansi_term8]
  time: 0.088	item-bodies checking
  time: 0.078	borrow checking
    time: 0.016	llvm function passes [strsim1]
  time: 0.001	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
    time: 0.141	llvm module passes [strsim2]
  time: 0.001	MIR effect checking
  time: 0.004	death checking
  time: 0.000	unused lib feature checking
    time: 0.007	llvm function passes [strsim7]
  time: 0.024	rvalue promotion
  time: 0.002	privacy checking
  time: 0.000	intrinsic checking
  time: 0.001	match checking
  time: 0.000	liveness checking
    time: 0.138	llvm module passes [strsim4]
    time: 0.020	llvm module passes [strsim7]
    time: 0.004	llvm function passes [strsim13]
    time: 0.269	llvm module passes [strsim0]
    time: 0.003	llvm function passes [strsim5]
  time: 0.043	borrow checking
  time: 0.000	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
  time: 0.000	death checking
  time: 0.000	unused lib feature checking
    time: 0.002	llvm function passes [strsim6]
  time: 0.005	lint checking
  time: 0.000	resolving dependency formats
    time: 0.009	llvm module passes [strsim6]
    time: 0.017	llvm module passes [strsim5]
    time: 0.007	write metadata
    time: 0.205	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.457	translation
    time: 0.006	llvm function passes [strsim8]
    time: 0.004	llvm function passes [strsim9]
    time: 0.087	llvm module passes [strsim1]
    time: 0.113	llvm module passes [ansi_term8]
    time: 0.004	llvm function passes [strsim10]
    time: 0.013	llvm module passes [strsim9]
    time: 0.127	translation item collection
    time: 0.005	llvm function passes [ansi_term3]
    time: 0.021	llvm module passes [strsim8]
    time: 0.063	llvm module passes [strsim13]
    time: 0.009	llvm module passes [strsim10]
    time: 0.002	llvm function passes [strsim11]
    time: 0.002	llvm function passes [strsim14]
    time: 0.002	llvm function passes [strsim15]
    time: 0.004	llvm module passes [strsim11]
  time: 0.107	lint checking
  time: 0.000	resolving dependency formats
    time: 0.001	llvm function passes [strsim12]
    time: 0.007	llvm module passes [strsim14]
    time: 0.008	llvm module passes [strsim15]
    time: 0.004	llvm module passes [strsim12]
    time: 0.005	llvm function passes [ansi_term10]
    time: 0.008	llvm function passes [ansi_term4]
    time: 0.008	codegen unit partitioning
    time: 0.003	llvm function passes [ansi_term9]
    time: 0.008	llvm module passes [ansi_term10]
    time: 0.001	llvm function passes [ansi_term11]
    time: 0.007	llvm module passes [ansi_term9]
    time: 0.091	translation item collection
    time: 0.058	write metadata
    time: 0.002	llvm module passes [ansi_term11]
    time: 0.046	llvm module passes [ansi_term3]
    time: 0.036	llvm module passes [ansi_term4]
    time: 0.001	llvm function passes [ansi_term5]
    time: 0.003	translation item collection
    time: 0.001	llvm function passes [ansi_term2]
    time: 0.001	llvm function passes [ansi_term12]
    time: 0.001	codegen unit partitioning
    time: 0.002	llvm module passes [ansi_term5]
    time: 0.002	llvm module passes [ansi_term12]
    time: 0.003	llvm module passes [ansi_term2]
    time: 0.073	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.349	translation
    time: 0.001	llvm function passes [ansi_term1]
    time: 0.001	llvm function passes [ansi_term7]
    time: 0.001	llvm module passes [ansi_term1]
    time: 0.001	llvm function passes [ansi_term0]
    time: 0.001	llvm module passes [ansi_term7]
    time: 0.001	llvm module passes [ansi_term0]
    time: 0.003	codegen unit partitioning
    time: 0.035	LTO passes
    time: 0.017	translate to LLVM IR
    time: 0.001	llvm function passes [ansi_term6]
    time: 0.007	llvm function passes [libc3]
    time: 0.003	llvm function passes [libc2]
    time: 0.001	llvm module passes [ansi_term6]
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.130	translation
    time: 0.010	llvm module passes [libc2]
    time: 0.002	llvm function passes [libc1]
    time: 0.022	llvm module passes [libc3]
    time: 0.009	llvm module passes [libc1]
    time: 0.001	llvm function passes [libc0]
    time: 0.002	llvm module passes [libc0]
    time: 0.015	LTO passes
    time: 0.062	codegen passes [strsim2-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.028	codegen passes [libc3-940b5f195a61e9a8d38460bb1b3238a.rs]
    time: 0.010	LTO passes
    time: 0.093	LTO passes
    time: 0.077	llvm function passes [glob0]
    time: 0.013	codegen passes [libc2-940b5f195a61e9a8d38460bb1b3238a.rs]
    time: 0.006	LTO passes
    time: 0.089	LTO passes
    time: 0.009	codegen passes [libc1-940b5f195a61e9a8d38460bb1b3238a.rs]
    time: 0.002	LTO passes
    time: 0.003	codegen passes [libc0-940b5f195a61e9a8d38460bb1b3238a.rs]
  time: 0.201	LLVM passes
  time: 0.000	serialize work products
  time: 0.011	linking
    time: 0.089	LTO passes
    time: 0.026	llvm function passes [glob2]
    time: 0.238	LTO passes
    time: 0.085	codegen passes [strsim3-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.034	llvm function passes [textwrap0]
    time: 0.040	codegen passes [strsim4-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.088	codegen passes [ansi_term8-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.012	llvm function passes [textwrap1]
    time: 0.010	LTO passes
    time: 0.011	codegen passes [strsim6-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.047	LTO passes
    time: 0.033	LTO passes
    time: 0.017	LTO passes
    time: 0.062	llvm module passes [textwrap1]
    time: 0.017	codegen passes [ansi_term3-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.029	codegen passes [strsim1-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.018	codegen passes [strsim13-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.012	LTO passes
    time: 0.015	llvm function passes [textwrap14]
    time: 0.008	LTO passes
    time: 0.024	LTO passes
    time: 0.014	codegen passes [strsim5-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.009	codegen passes [strsim8-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.005	LTO passes
    time: 0.009	LTO passes
    time: 0.021	codegen passes [ansi_term4-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.006	codegen passes [strsim10-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.004	LTO passes
    time: 0.012	codegen passes [strsim7-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.005	codegen passes [strsim9-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.006	LTO passes
    time: 0.015	LTO passes
    time: 0.002	LTO passes
    time: 0.006	codegen passes [strsim11-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.003	codegen passes [strsim12-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.012	codegen passes [ansi_term10-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.011	LTO passes
    time: 0.007	LTO passes
    time: 0.010	LTO passes
    time: 0.007	codegen passes [strsim15-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.211	llvm module passes [glob2]
    time: 0.004	codegen passes [strsim14-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.002	LTO passes
    time: 0.010	codegen passes [ansi_term9-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.004	codegen passes [ansi_term11-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.002	LTO passes
    time: 0.004	codegen passes [ansi_term5-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.004	LTO passes
    time: 0.003	codegen passes [ansi_term2-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.020	llvm function passes [glob1]
    time: 0.013	llvm function passes [glob3]
    time: 0.001	LTO passes
    time: 0.114	llvm module passes [textwrap14]
    time: 0.002	codegen passes [ansi_term1-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.226	codegen passes [strsim0-dc18c8a110791d8eacf7c20ed2346bba.rs]
    time: 0.002	LTO passes
    time: 0.002	codegen passes [ansi_term12-531b01d1a0614b39f74fe93016e81854.rs]
  time: 0.931	LLVM passes
  time: 0.000	serialize work products
    time: 0.001	LTO passes
    time: 0.012	llvm function passes [textwrap5]
    time: 0.001	LTO passes
    time: 0.002	codegen passes [ansi_term0-531b01d1a0614b39f74fe93016e81854.rs]
    time: 0.002	codegen passes [ansi_term7-531b01d1a0614b39f74fe93016e81854.rs]
  time: 0.014	linking
    time: 0.001	LTO passes
    time: 0.002	codegen passes [ansi_term6-531b01d1a0614b39f74fe93016e81854.rs]
   Compiling atty v0.2.3
  time: 0.762	LLVM passes
  time: 0.000	serialize work products
    time: 0.008	llvm function passes [textwrap2]
  time: 0.016	linking
  time: 0.005	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
    time: 0.093	llvm module passes [glob3]
    time: 0.008	llvm function passes [glob4]
    time: 0.008	llvm function passes [glob6]
    time: 0.122	llvm module passes [glob1]
    time: 0.031	expand crate
    time: 0.000	check unused macros
  time: 0.031	expansion
    time: 0.053	llvm module passes [textwrap2]
  time: 0.000	maybe building test harness
  time: 0.000	maybe creating a macro crate
  time: 0.000	creating allocators
  time: 0.000	AST validation
  time: 0.005	name resolution
  time: 0.000	complete gated feature checking
  time: 0.000	lowering ast -> hir
  time: 0.000	early lint checks
  time: 0.000	indexing hir
  time: 0.000	load query result cache
  time: 0.000	looking for entry p    time: 0.003	llvm function passes [textwrap4]
    time: 0.005	llvm function passes [glob15]
oint
  time: 0.000	looking for plugin registrar
  time: 0.000	loop checking
  time: 0.000	attribute checking
  time: 0.000	stability checking
  time: 0.002	type collecting
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
    time: 0.034	llvm module passes [glob4]
    time: 0.116	llvm module passes [textwrap5]
    time: 0.012	llvm module passes [textwrap4]
    time: 0.005	llvm function passes [glob9]
    time: 0.005	llvm function passes [textwrap13]
    time: 0.038	llvm module passes [glob6]
    time: 0.005	llvm function passes [textwrap6]
    time: 0.030	llvm module passes [glob15]
    time: 0.005	llvm function passes [glob5]
    time: 0.379	llvm module passes [textwrap0]
    time: 0.002	llvm function passes [textwrap10]
    time: 0.019	llvm module passes [textwrap6]
    time: 0.007	llvm module passes [textwrap10]
    time: 0.005	llvm function passes [glob7]
    time: 0.038	llvm module passes [textwrap13]
    time: 0.004	llvm function passes [textwrap3]
    time: 0.001	llvm function passes [textwrap9]
    time: 0.002	llvm module passes [textwrap9]
    time: 0.039	llvm module passes [glob9]
  time: 0.052	coherence checking
    time: 0.228	translate to LLVM IR
    time: 0.011	llvm module passes [glob7]
  time: 0.000	variance testing
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.809	translation
    time: 0.027	llvm module passes [glob5]
    time: 0.307	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.923	translation
  time: 0.001	wf checking
  time: 0.000	item-types checking
    time: 0.002	llvm function passes [textwrap8]
    time: 0.011	llvm module passes [textwrap3]
    time: 0.004	llvm function passes [glob13]
    time: 0.003	llvm function passes [glob8]
    time: 0.004	llvm module passes [textwrap8]
    time: 0.002	llvm function passes [textwrap15]
    time: 0.003	llvm function passes [textwrap7]
  time: 0.012	item-bodies    time: 0.003	llvm function passes [glob14]
    time: 0.002	llvm function passes [textwrap11]
 checking
    time: 0.013	llvm module passes [glob8]
    time: 0.009	llvm module passes [textwrap15]
    time: 0.015	llvm module passes [glob13]
    time: 0.005	llvm module passes [textwrap7]
  time: 0.002	rvalue promotion
  time: 0.000	privacy checking
  time: 0.000	intrinsic checking
  time: 0.000	match checking
  time: 0.000	liveness checking
    time: 0.001	llvm function passes [textwrap12]
    time: 0.002	llvm function passes [glob10]
    time: 0.003	llvm function passes [glob11]
    time: 0.002	llvm module passes [textwrap12]
  time: 0.003	borrow checking
  time: 0.000	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
  time: 0.000	death checking
  time: 0.000	unused lib feature checking
    time: 0.006	llvm module passes [textwrap11]
  time: 0.001	lint checking
  time: 0.000	resolving dependency formats
    time: 0.001	write metadata
    time: 0.009	llvm module passes [glob14]
    time: 0.019	translation item collection
    time: 0.002	llvm function passes [glob12]
    time: 0.019	LTO passes
    time: 0.006	llvm module passes [glob10]
    time: 0.010	llvm module passes [glob11]
    time: 0.657	llvm module passes [glob0]
    time: 0.000	codegen unit partitioning
    time: 0.008	llvm module passes [glob12]
    time: 0.023	LTO passes
    time: 0.027	codegen passes [textwrap1-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.021	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.092	translation
    time: 0.025	LTO passes
    time: 0.002	llvm function passes [atty0]
    time: 0.005	llvm module passes [atty0]
    time: 0.005	LTO passes
    time: 0.032	LTO passes
    time: 0.006	codegen passes [textwrap7-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.018	codegen passes [textwrap13-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.003	LTO passes
    time: 0.022	codegen passes [textwrap14-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.007	codegen passes [atty0-420f40453d37c2388cd2794639fff6d7.rs]
    time: 0.009	LTO passes
    time: 0.007	LTO passes
    time: 0.049	LTO passes
    time: 0.018	codegen passes [textwrap2-6d44f157bc1d1b91366175305c8fcc2.rs]
  time: 0.048	LLVM passes
    time: 0.004	LTO passes
    time: 0.002	LTO passes
    time: 0.002	codegen passes [textwrap8-6d44f157bc1d1b91366175305c8fcc2.rs]
  time: 0.000	serialize work products
    time: 0.008	codegen passes [textwrap6-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.009	codegen passes [textwrap3-6d44f157bc1d1b91366175305c8fcc2.rs]
  time: 0.004	linking
    time: 0.010	codegen passes [textwrap4-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.002	LTO passes
    time: 0.003	codegen passes [textwrap9-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.009	LTO passes
    time: 0.007	LTO passes
    time: 0.005	codegen passes [textwrap10-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.029	codegen passes [textwrap5-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.002	LTO passes
    time: 0.005	LTO passes
    time: 0.017	LTO passes
    time: 0.005	codegen passes [textwrap11-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.002	codegen passes [textwrap12-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.152	LTO passes
    time: 0.004	codegen passes [textwrap15-6d44f157bc1d1b91366175305c8fcc2.rs]
    time: 0.059	LTO passes
    time: 0.031	LTO passes
    time: 0.036	codegen passes [glob9-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.011	LTO passes
    time: 0.021	LTO passes
    time: 0.027	codegen passes [glob5-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.094	LTO passes
    time: 0.012	codegen passes [glob14-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.008	LTO passes
    time: 0.049	codegen passes [glob1-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.013	LTO passes
    time: 0.029	codegen passes [glob4-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.009	codegen passes [glob15-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.006	LTO passes
    time: 0.006	LTO passes
    time: 0.019	codegen passes [glob6-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.008	codegen passes [glob10-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.020	LTO passes
    time: 0.088	LTO passes
    time: 0.008	codegen passes [glob8-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.006	LTO passes
    time: 0.010	codegen passes [glob7-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.007	LTO passes
    time: 0.006	codegen passes [glob11-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.007	LTO passes
    time: 0.006	codegen passes [glob13-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.003	codegen passes [glob12-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.079	codegen passes [glob2-414ad8a7ede9c29c1f10c9e441e8617f.rs]
    time: 0.146	codegen passes [textwrap0-6d44f157bc1d1b91366175305c8fcc2.rs]
  time: 0.903	LLVM passes
  time: 0.000	serialize work products
    time: 0.051	codegen passes [glob3-414ad8a7ede9c29c1f10c9e441e8617f.rs]
  time: 0.008	linking
   Compiling clap v2.31.2
    time: 0.315	LTO passes
  time: 0.110	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
    time: 0.137	expand crate
    time: 0.000	check unused macros
  time: 0.137	expansion
  time: 0.000	maybe building test harness
  time: 0.002	maybe creating a macro crate
  time: 0.010	creating allocators
  time: 0.006	AST validation
    time: 0.205	codegen passes [glob0-414ad8a7ede9c29c1f10c9e441e8617f.rs]
  time: 1.417	LLVM passes
  time: 0.000	serialize work products
  time: 0.061	name resolution
  time: 0.015	linking
   Compiling cpp_demangle v0.2.7 (file:///Users/fitzgen/src/cpp_demangle)
  time: 0.001	parsing
  time: 0.000	recursion limit
  time: 0.000	crate injection
  time: 0.000	plugin loading
  time: 0.000	plugin registration
  time: 0.054	complete gated feature checking
    time: 0.026	expand crate
    time: 0.000	check unused macros
  time: 0.026	expansion
  time: 0.000	maybe building test harness
  time: 0.000	maybe creating a macro crate
  time: 0.000	creating allocators
  time: 0.000	AST validation
  time: 0.003	name resolution
  time: 0.000	complete gated feature checking
  time: 0.002	lowering ast -> hir
  time: 0.000	early lint checks
  time: 0.001	indexing hir
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.000	loop checking
  time: 0.000	attribute checking
  time: 0.000	stability checking
  time: 0.001	type collecting
  time: 0.000	outlives testing
  time: 0.000	impl wf inference
  time: 0.000	coherence checking
  time: 0.000	variance testing
  time: 0.002	wf checking
  time: 0.000	item-types checking
  time: 0.046	lowering ast -> hir
  time: 0.011	early lint checks
  time: 0.038	indexing hir
  time: 0.000	load query result cache
  time: 0.000	looking for entry point
  time: 0.000	looking for plugin registrar
  time: 0.006	loop checking
  time: 0.002	attribute checking
  time: 0.095	item-bodies checking
  time: 0.004	rvalue promotion
  time: 0.001	privacy checking
  time: 0.000	intrinsic checking
  time: 0.000	match checking
  time: 0.000	liveness checking
  time: 0.023	stability checking
  time: 0.029	borrow checking
  time: 0.000	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
  time: 0.000	death checking
  time: 0.000	unused lib feature checking
  time: 0.001	lint checking
  time: 0.000	resolving dependency formats
    time: 0.000	write metadata
  time: 0.025	type collecting
  time: 0.000	outlives testing
  time: 0.001	impl wf inference
  time: 0.044	coherence checking
  time: 0.000	variance testing
    time: 0.092	translation item collection
    time: 0.003	codegen unit partitioning
    time: 0.000	write allocator module
  time: 0.073	wf checking
  time: 0.016	item-types checking
    time: 0.017	llvm function passes [build_script_build2]
    time: 0.010	llvm function passes [build_script_build15]
    time: 0.010	llvm function passes [build_script_build1]
    time: 0.021	llvm function passes [build_script_build0]
    time: 0.007	llvm function passes [build_script_build4]
    time: 0.010	llvm function passes [build_script_build3]
    time: 0.126	llvm module passes [build_script_build1]
    time: 0.059	llvm module passes [build_script_build3]
    time: 0.007	llvm function passes [build_script_build9]
    time: 0.084	llvm module passes [build_script_build4]
    time: 0.008	llvm function passes [build_script_build5]
    time: 0.006	llvm function passes [build_script_build8]
    time: 0.005	llvm function passes [build_script_build14]
    time: 0.174	llvm module passes [build_script_build15]
    time: 0.004	llvm function passes [build_script_build6]
    time: 0.028	llvm module passes [build_script_build14]
    time: 0.045	llvm module passes [build_script_build8]
    time: 0.238	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 0.372	translation
    time: 0.003	llvm function passes [build_script_build13]
    time: 0.006	llvm function passes [build_script_build11]
    time: 0.007	llvm module passes [build_script_build13]
    time: 0.028	llvm module passes [build_script_build6]
    time: 0.067	llvm module passes [build_script_build5]
    time: 0.004	llvm function passes [build_script_build12]
    time: 0.003	llvm function passes [build_script_build7]
    time: 0.003	llvm function passes [build_script_build10]
    time: 0.005	llvm module passes [build_script_build10]
    time: 0.013	llvm module passes [build_script_build12]
    time: 0.026	llvm module passes [build_script_build11]
    time: 0.088	llvm module passes [build_script_build9]
    time: 0.014	llvm module passes [build_script_build7]
    time: 0.310	llvm module passes [build_script_build0]
  time: 1.327	item-bodies checking
  time: 0.152	rvalue promotion
  time: 0.045	privacy checking
  time: 0.002	intrinsic checking
  time: 0.014	match checking
  time: 0.011	liveness checking
  time: 0.849	borrow checking
  time: 0.001	MIR borrow checking
  time: 0.000	dumping chalk-like clauses
  time: 0.000	MIR effect checking
  time: 0.013	death checking
  time: 0.000	unused lib feature checking
  time: 0.088	lint checking
  time: 0.000	resolving dependency formats
    time: 0.109	write metadata
    time: 0.523	translation item collection
    time: 0.029	codegen unit partitioning
    time: 0.149	llvm function passes [clap1]
    time: 0.111	llvm function passes [clap0]
    time: 0.129	llvm function passes [clap10]
    time: 0.111	llvm function passes [clap7]
    time: 0.130	llvm function passes [clap11]
    time: 0.108	llvm function passes [clap15]
    time: 1.267	llvm module passes [clap7]
    time: 0.122	llvm function passes [clap9]
    time: 1.009	llvm module passes [clap15]
    time: 1.847	llvm module passes [clap0]
    time: 0.124	llvm function passes [clap5]
    time: 0.105	llvm function passes [clap2]
    time: 1.448	llvm module passes [clap11]
    time: 0.092	llvm function passes [clap12]
    time: 0.068	llvm function passes [clap4]
    time: 2.366	llvm module passes [clap10]
    time: 0.078	llvm function passes [clap8]
    time: 0.614	llvm module passes [clap4]
    time: 2.896	translate to LLVM IR
    time: 0.000	assert dep graph
    time: 0.000	serialize dep graph
  time: 4.268	translation
    time: 0.074	llvm function passes [clap13]
    time: 0.996	llvm module passes [clap12]
    time: 1.228	llvm module passes [clap5]
    time: 0.047	llvm function passes [clap6]
    time: 0.093	llvm function passes [clap3]
    time: 3.459	llvm module passes [clap1]
    time: 0.018	llvm function passes [clap14]
    time: 0.109	llvm module passes [clap14]
    time: 0.859	llvm module passes [clap8]
    time: 0.366	llvm module passes [clap6]
    time: 0.628	llvm module passes [clap13]
    time: 0.451	llvm module passes [clap3]
    time: 1.997	llvm module passes [clap9]
    time: 2.243	llvm module passes [clap2]
    time: 0.887	LTO passes
    time: 0.899	LTO passes
    time: 0.968	LTO passes
    time: 1.028	LTO passes
    time: 1.043	LTO passes
    time: 1.073	LTO passes
    time: 0.753	codegen passes [clap5-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.775	codegen passes [clap15-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.769	codegen passes [clap7-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.814	codegen passes [clap9-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.927	codegen passes [clap0-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.941	codegen passes [clap11-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.577	LTO passes
    time: 2.490	LTO passes
    time: 0.590	LTO passes
    time: 0.542	codegen passes [clap4-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 1.005	LTO passes
    time: 1.057	LTO passes
    time: 0.452	codegen passes [clap13-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.306	LTO passes
    time: 0.216	codegen passes [clap3-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 1.820	LTO passes
    time: 0.101	LTO passes
    time: 0.530	LTO passes
    time: 0.664	codegen passes [clap8-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.128	codegen passes [clap14-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.747	codegen passes [clap12-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 2.345	LTO passes
    time: 0.377	codegen passes [clap6-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 1.667	codegen passes [clap1-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.721	codegen passes [clap10-dba1da3c13add25e76b64c6f99c22cbb.rs]
    time: 0.592	codegen passes [clap2-dba1da3c13add25e76b64c6f99c22cbb.rs]
  time: 10.279	LLVM passes
  time: 0.000	serialize work products
  time: 0.052	linking
C-c

Last line printed is about linking, so maybe this is getting stuck in LTO?

@ExpHP
Copy link
Contributor

ExpHP commented Apr 30, 2018

Here's a self-contained test case that just barely hits the sweet spot where it starts to grow out of hand:

fn main() {
    use ::std::collections::HashSet;
    let set: HashSet<_> = {
        (0..86).into_iter()
            .chain(87..89)
            .chain(92..93)
            .chain(94..105)
//            .chain(107..108)
            .chain(116..118)
            .chain(122..124)
            .chain(128..131)
            .chain(133..134)
//            .chain(141..143)
            .chain(151..152)
            .chain(153..154)
//            .chain(158..168)
//            .chain(169..170)
//            .chain(179..180)
//            .chain(181..182)
//            .chain(185..186)
            .chain(188..189)
            .chain(201..202)
//            .chain(203..204)
            .collect()
    };
    assert!(set.contains(&153));
}

I do observe that "linking" is the last thing printed... but not quite in the same sense as @fitzgen: 😛

    ...
    time: 51.579; rss: 174MB    codegen passes [whee1-faa1bfdce812aee96e5ffecf666ddd72.rs]
  time: 61.759; rss: 154MB      LLVM passes
  time: 0.000; rss: 151MB       serialize work products
    time: 0.250; rss: 150MB     running linker
  time: 0.250; rss: 150MB       linking
    Finished release [optimized] target(s) in 62.30 secs
$
cargo +nightly rustc --release -- -Ztime-passes (62.3s)
$ cargo +nightly rustc --release -- -Ztime-passes
   Compiling whee v0.1.0 (file:///home/lampam/asd/clone/cpp_demangle/whee)
  time: 0.000; rss: 46MB        parsing
  time: 0.000; rss: 46MB        recursion limit
  time: 0.000; rss: 46MB        crate injection
  time: 0.000; rss: 46MB        plugin loading
  time: 0.000; rss: 46MB        plugin registration
    time: 0.020; rss: 71MB      expand crate
    time: 0.000; rss: 71MB      check unused macros
  time: 0.020; rss: 71MB        expansion
  time: 0.000; rss: 71MB        maybe building test harness
  time: 0.000; rss: 71MB        maybe creating a macro crate
  time: 0.000; rss: 71MB        creating allocators
  time: 0.000; rss: 71MB        AST validation
  time: 0.002; rss: 72MB        name resolution
  time: 0.000; rss: 72MB        complete gated feature checking
  time: 0.001; rss: 73MB        lowering ast -> hir
  time: 0.000; rss: 73MB        early lint checks
  time: 0.000; rss: 73MB        indexing hir
  time: 0.000; rss: 73MB        load query result cache
  time: 0.000; rss: 73MB        looking for entry point
  time: 0.000; rss: 73MB        looking for plugin registrar
  time: 0.000; rss: 73MB        loop checking
  time: 0.000; rss: 76MB        attribute checking
  time: 0.000; rss: 76MB        stability checking
  time: 0.000; rss: 76MB        type collecting
  time: 0.000; rss: 76MB        outlives testing
  time: 0.000; rss: 76MB        impl wf inference
  time: 0.000; rss: 76MB        coherence checking
  time: 0.000; rss: 76MB        variance testing
  time: 0.000; rss: 80MB        wf checking
  time: 0.000; rss: 80MB        item-types checking
  time: 0.048; rss: 120MB       item-bodies checking
  time: 0.003; rss: 121MB       rvalue promotion
  time: 0.000; rss: 121MB       privacy checking
  time: 0.000; rss: 121MB       intrinsic checking
  time: 0.000; rss: 122MB       match checking
  time: 0.000; rss: 122MB       liveness checking
  time: 0.005; rss: 123MB       borrow checking
  time: 0.000; rss: 123MB       MIR borrow checking
  time: 0.000; rss: 123MB       dumping chalk-like clauses
  time: 0.000; rss: 123MB       MIR effect checking
  time: 0.000; rss: 123MB       death checking
  time: 0.000; rss: 123MB       unused lib feature checking
  time: 0.000; rss: 123MB       lint checking
  time: 0.000; rss: 123MB       resolving dependency formats
    time: 0.000; rss: 123MB     write metadata
    time: 0.056; rss: 133MB     translation item collection
    time: 0.001; rss: 133MB     codegen unit partitioning
    time: 0.000; rss: 134MB     write allocator module
    time: 0.015; rss: 142MB     llvm function passes [whee1]
    time: 0.003; rss: 146MB     llvm function passes [whee13]
    time: 0.017; rss: 146MB     llvm function passes [whee0]
    time: 0.004; rss: 148MB     llvm function passes [whee4]
    time: 0.022; rss: 149MB     llvm module passes [whee4]
    time: 0.007; rss: 149MB     llvm function passes [whee3]
    time: 0.021; rss: 150MB     llvm module passes [whee3]
    time: 0.092; rss: 150MB     llvm module passes [whee13]
    time: 0.007; rss: 150MB     llvm function passes [whee5]
    time: 0.002; rss: 150MB     llvm function passes [whee2]
    time: 0.011; rss: 150MB     llvm module passes [whee2]
    time: 0.002; rss: 151MB     llvm function passes [whee7]
    time: 0.006; rss: 151MB     llvm module passes [whee7]
    time: 0.002; rss: 152MB     llvm function passes [whee9]
    time: 0.011; rss: 152MB     llvm module passes [whee9]
    time: 0.002; rss: 152MB     llvm function passes [whee11]
    time: 0.056; rss: 152MB     llvm module passes [whee5]
    time: 0.008; rss: 152MB     llvm module passes [whee11]
    time: 0.001; rss: 152MB     llvm function passes [whee10]
    time: 0.002; rss: 153MB     llvm function passes [whee6]
    time: 0.004; rss: 153MB     llvm module passes [whee10]
    time: 0.007; rss: 153MB     llvm module passes [whee6]
    time: 0.002; rss: 154MB     llvm function passes [whee8]
    time: 0.003; rss: 154MB     llvm module passes [whee8]
    time: 0.001; rss: 154MB     llvm function passes [whee12]
    time: 0.090; rss: 154MB     translate to LLVM IR
    time: 0.000; rss: 154MB     assert dep graph
    time: 0.000; rss: 154MB     serialize dep graph
  time: 0.288; rss: 154MB       translation
    time: 0.002; rss: 153MB     llvm module passes [whee12]
    time: 0.001; rss: 151MB     llvm function passes [whee14]
    time: 0.001; rss: 152MB     llvm module passes [whee14]
    time: 0.001; rss: 152MB     llvm function passes [whee15]
    time: 0.002; rss: 152MB     llvm module passes [whee15]
    time: 0.190; rss: 152MB     llvm module passes [whee0]
    time: 6.645; rss: 183MB     llvm module passes [whee1]
    time: 0.021; rss: 159MB     LTO passes
    time: 0.013; rss: 161MB     codegen passes [whee9-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.036; rss: 160MB     LTO passes
    time: 0.003; rss: 161MB     LTO passes
    time: 0.004; rss: 162MB     codegen passes [whee12-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.015; rss: 164MB     codegen passes [whee5-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.011; rss: 164MB     LTO passes
    time: 0.007; rss: 165MB     LTO passes
    time: 0.012; rss: 167MB     codegen passes [whee2-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.007; rss: 167MB     codegen passes [whee4-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.073; rss: 166MB     LTO passes
    time: 0.008; rss: 170MB     LTO passes
    time: 0.020; rss: 168MB     LTO passes
    time: 0.008; rss: 168MB     codegen passes [whee7-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.010; rss: 167MB     codegen passes [whee13-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.006; rss: 167MB     LTO passes
    time: 0.004; rss: 167MB     codegen passes [whee3-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.004; rss: 168MB     LTO passes
    time: 0.004; rss: 171MB     codegen passes [whee10-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.005; rss: 172MB     LTO passes
    time: 0.003; rss: 173MB     LTO passes
    time: 0.006; rss: 173MB     codegen passes [whee6-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.004; rss: 173MB     codegen passes [whee15-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.002; rss: 173MB     LTO passes
    time: 0.003; rss: 174MB     codegen passes [whee8-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.060; rss: 173MB     codegen passes [whee0-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.004; rss: 170MB     LTO passes
    time: 0.001; rss: 170MB     LTO passes
    time: 0.002; rss: 170MB     codegen passes [whee11-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 0.001; rss: 170MB     codegen passes [whee14-faa1bfdce812aee96e5ffecf666ddd72.rs]
    time: 3.249; rss: 180MB     LTO passes
    time: 51.579; rss: 174MB    codegen passes [whee1-faa1bfdce812aee96e5ffecf666ddd72.rs]
  time: 61.759; rss: 154MB      LLVM passes
  time: 0.000; rss: 151MB       serialize work products
    time: 0.250; rss: 150MB     running linker
  time: 0.250; rss: 150MB       linking
    Finished release [optimized] target(s) in 62.30 secs
cargo +nightly rustc --release -- -Ztime-passes -Ccodegen-units=1 (63.2s)
$ cargo +nightly rustc --release -- -Ztime-passes -Ccodegen-units=1
   Compiling whee v0.1.0 (file:///home/lampam/asd/clone/cpp_demangle/whee)
  time: 0.000; rss: 46MB        parsing
  time: 0.000; rss: 46MB        recursion limit
  time: 0.000; rss: 46MB        crate injection
  time: 0.000; rss: 46MB        plugin loading
  time: 0.000; rss: 46MB        plugin registration
    time: 0.017; rss: 71MB      expand crate
    time: 0.000; rss: 71MB      check unused macros
  time: 0.017; rss: 71MB        expansion
  time: 0.000; rss: 71MB        maybe building test harness
  time: 0.000; rss: 71MB        maybe creating a macro crate
  time: 0.000; rss: 71MB        creating allocators
  time: 0.000; rss: 71MB        AST validation
  time: 0.001; rss: 72MB        name resolution
  time: 0.000; rss: 72MB        complete gated feature checking
  time: 0.000; rss: 74MB        lowering ast -> hir
  time: 0.000; rss: 74MB        early lint checks
  time: 0.000; rss: 74MB        indexing hir
  time: 0.000; rss: 74MB        load query result cache
  time: 0.000; rss: 74MB        looking for entry point
  time: 0.000; rss: 74MB        looking for plugin registrar
  time: 0.000; rss: 74MB        loop checking
  time: 0.000; rss: 77MB        attribute checking
  time: 0.000; rss: 77MB        stability checking
  time: 0.000; rss: 77MB        type collecting
  time: 0.000; rss: 77MB        outlives testing
  time: 0.000; rss: 77MB        impl wf inference
  time: 0.000; rss: 77MB        coherence checking
  time: 0.000; rss: 77MB        variance testing
  time: 0.000; rss: 77MB        wf checking
  time: 0.000; rss: 77MB        item-types checking
  time: 0.047; rss: 120MB       item-bodies checking
  time: 0.003; rss: 121MB       rvalue promotion
  time: 0.000; rss: 121MB       privacy checking
  time: 0.000; rss: 121MB       intrinsic checking
  time: 0.000; rss: 122MB       match checking
  time: 0.000; rss: 122MB       liveness checking
  time: 0.005; rss: 124MB       borrow checking
  time: 0.000; rss: 124MB       MIR borrow checking
  time: 0.000; rss: 124MB       dumping chalk-like clauses
  time: 0.000; rss: 124MB       MIR effect checking
  time: 0.000; rss: 124MB       death checking
  time: 0.000; rss: 124MB       unused lib feature checking
  time: 0.000; rss: 124MB       lint checking
  time: 0.000; rss: 124MB       resolving dependency formats
    time: 0.000; rss: 124MB     write metadata
    time: 0.057; rss: 134MB     translation item collection
    time: 0.001; rss: 134MB     codegen unit partitioning
    time: 0.000; rss: 134MB     write allocator module
    time: 0.060; rss: 143MB     translate to LLVM IR
    time: 0.000; rss: 143MB     assert dep graph
    time: 0.000; rss: 143MB     serialize dep graph
  time: 0.124; rss: 143MB       translation
    time: 0.034; rss: 142MB     llvm function passes [whee0]
    time: 6.867; rss: 172MB     llvm module passes [whee0]
    time: 55.740; rss: 165MB    codegen passes [whee0]
  time: 62.665; rss: 144MB      LLVM passes
  time: 0.000; rss: 144MB       serialize work products
    time: 0.245; rss: 144MB     running linker
  time: 0.245; rss: 144MB       linking
    Finished release [optimized] target(s) in 63.23 secs

$ rustc +nightly --version
rustc 1.27.0-nightly (79252ff4e 2018-04-29)

fitzgen added a commit to gimli-rs/cpp_demangle that referenced this issue Apr 30, 2018
@XAMPPRocky XAMPPRocky added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. C-enhancement Category: An issue proposing an enhancement or a PR with one. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Oct 2, 2018
@varkor varkor added the I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. label Dec 20, 2018
@JustAPerson
Copy link
Contributor

Seems to have been resolved. Works fine with a recent nightly to compile @ExpHP's example (in addition, with everything uncommented). Appears to have been fixed a while ago as rustc 2019-09-23 works fine too.

cargo +nightly rustc --release -- -Ztime-passes
warning: unused manifest key: profiles
   Compiling issue50323 v0.1.0 (/tmp/issue50323)
time: 0.000; rss: 50MB	parse_crate
time: 0.000; rss: 50MB	attributes_injection
time: 0.000; rss: 50MB	recursion_limit
time: 0.000; rss: 50MB	plugin_loading
time: 0.000; rss: 50MB	plugin_registration
time: 0.000; rss: 50MB	pre_AST_expansion_lint_checks
time: 0.000; rss: 54MB	crate_injection
time: 0.013; rss: 68MB	expand_crate
time: 0.000; rss: 68MB	check_unused_macros
time: 0.013; rss: 68MB	macro_expand_crate
time: 0.000; rss: 68MB	maybe_building_test_harness
time: 0.000; rss: 68MB	AST_validation
time: 0.000; rss: 68MB	maybe_create_a_macro_crate
time: 0.000; rss: 71MB	complete_gated_feature_checking
time: 0.014; rss: 71MB	configure_and_expand
time: 0.000; rss: 71MB	prepare_outputs
time: 0.000; rss: 74MB	hir_lowering
time: 0.000; rss: 74MB	early_lint_checks
time: 0.000; rss: 77MB	validate_HIR_map
time: 0.000; rss: 77MB	setup_global_ctxt
time: 0.000; rss: 77MB	dep_graph_tcx_init
time: 0.001; rss: 77MB	create_global_ctxt
time: 0.000; rss: 77MB	looking_for_entry_point
time: 0.000; rss: 77MB	looking_for_plugin_registrar
time: 0.000; rss: 77MB	looking_for_derive_registrar
time: 0.000; rss: 80MB	misc_checking_1
time: 0.000; rss: 80MB	type_collecting
time: 0.000; rss: 80MB	impl_wf_inference
time: 0.000; rss: 80MB	unsafety_checking
time: 0.000; rss: 80MB	orphan_checking
time: 0.000; rss: 80MB	coherence_checking
time: 0.000; rss: 84MB	wf_checking
time: 0.000; rss: 84MB	item_types_checking
time: 0.028; rss: 99MB	item_bodies_checking
time: 0.028; rss: 99MB	type_check_crate
time: 0.002; rss: 103MB	match_checking
time: 0.000; rss: 103MB	liveness_and_intrinsic_checking
time: 0.003; rss: 103MB	misc_checking_2
time: 0.018; rss: 108MB	MIR_borrow_checking
time: 0.000; rss: 108MB	dumping_chalk_like_clauses
time: 0.000; rss: 108MB	MIR_effect_checking
time: 0.000; rss: 108MB	layout_testing
time: 0.000; rss: 108MB	death_checking
time: 0.000; rss: 108MB	unused_lib_feature_checking
time: 0.000; rss: 108MB	crate_lints
time: 0.000; rss: 108MB	module_lints
time: 0.000; rss: 108MB	lint_checking
time: 0.000; rss: 108MB	privacy_checking_modules
time: 0.001; rss: 108MB	misc_checking_3
time: 0.000; rss: 108MB	monomorphization_collector_root_collections
time: 0.056; rss: 123MB	monomorphization_collector_graph_walk
time: 0.004; rss: 123MB	partition_and_assert_distinct_symbols
time: 0.000; rss: 124MB	write_allocator_module
time: 0.000; rss: 124MB	find_cgu_reuse
time: 0.008; rss: 132MB	llvm function passes [issue50323.aepfjml6-cgu.0]
time: 0.005; rss: 134MB	llvm function passes [issue50323.aepfjml6-cgu.2]
time: 0.002; rss: 138MB	llvm function passes [issue50323.aepfjml6-cgu.5]
time: 0.002; rss: 138MB	llvm function passes [issue50323.aepfjml6-cgu.12]
time: 0.007; rss: 138MB	llvm function passes [issue50323.aepfjml6-cgu.1]
time: 0.008; rss: 140MB	llvm module passes [issue50323.aepfjml6-cgu.5]
time: 0.003; rss: 141MB	llvm function passes [issue50323.aepfjml6-cgu.3]
time: 0.001; rss: 141MB	llvm function passes [issue50323.aepfjml6-cgu.7]
time: 0.006; rss: 141MB	llvm module passes [issue50323.aepfjml6-cgu.7]
time: 0.005; rss: 142MB	llvm function passes [issue50323.aepfjml6-cgu.4]
time: 0.001; rss: 142MB	llvm function passes [issue50323.aepfjml6-cgu.11]
time: 0.001; rss: 142MB	llvm module passes [issue50323.aepfjml6-cgu.11]
time: 0.001; rss: 143MB	llvm function passes [issue50323.aepfjml6-cgu.6]
time: 0.001; rss: 143MB	llvm function passes [issue50323.aepfjml6-cgu.8]
time: 0.003; rss: 144MB	llvm module passes [issue50323.aepfjml6-cgu.8]
time: 0.014; rss: 144MB	llvm module passes [issue50323.aepfjml6-cgu.4]
time: 0.021; rss: 144MB	llvm module passes [issue50323.aepfjml6-cgu.3]
time: 0.001; rss: 144MB	llvm function passes [issue50323.aepfjml6-cgu.9]
time: 0.000; rss: 144MB	llvm module passes [issue50323.aepfjml6-cgu.9]
time: 0.087; rss: 144MB	codegen_to_LLVM_IR
time: 0.000; rss: 144MB	assert_dep_graph
time: 0.000; rss: 144MB	serialize_dep_graph
time: 0.164; rss: 144MB	codegen_crate
time: 0.008; rss: 126MB	llvm module passes [issue50323.aepfjml6-cgu.6]
time: 0.000; rss: 115MB	llvm function passes [issue50323.aepfjml6-cgu.13]
time: 0.003; rss: 115MB	free_global_ctxt
time: 0.001; rss: 115MB	llvm module passes [issue50323.aepfjml6-cgu.13]
time: 0.000; rss: 115MB	llvm function passes [issue50323.aepfjml6-cgu.14]
time: 0.000; rss: 115MB	llvm function passes [issue50323.aepfjml6-cgu.10]
time: 0.000; rss: 115MB	llvm module passes [issue50323.aepfjml6-cgu.14]
time: 0.000; rss: 115MB	llvm function passes [issue50323.aepfjml6-cgu.15]
time: 0.001; rss: 116MB	llvm module passes [issue50323.aepfjml6-cgu.15]
time: 0.001; rss: 116MB	llvm module passes [issue50323.aepfjml6-cgu.10]
time: 0.049; rss: 116MB	llvm module passes [issue50323.aepfjml6-cgu.12]
time: 0.134; rss: 118MB	llvm module passes [issue50323.aepfjml6-cgu.2]
time: 0.143; rss: 118MB	llvm module passes [issue50323.aepfjml6-cgu.0]
time: 0.213; rss: 118MB	llvm module passes [issue50323.aepfjml6-cgu.1]
time: 0.003; rss: 119MB	LTO_passes
time: 0.007; rss: 120MB	codegen passes [issue50323.aepfjml6-cgu.6]
time: 0.013; rss: 122MB	LTO_passes
time: 0.002; rss: 122MB	LTO_passes
time: 0.016; rss: 123MB	LTO_passes
time: 0.016; rss: 123MB	LTO_passes
time: 0.004; rss: 123MB	codegen passes [issue50323.aepfjml6-cgu.8]
time: 0.007; rss: 123MB	codegen passes [issue50323.aepfjml6-cgu.5]
time: 0.001; rss: 123MB	LTO_passes
time: 0.001; rss: 123MB	LTO_passes
time: 0.002; rss: 123MB	codegen passes [issue50323.aepfjml6-cgu.10]
time: 0.009; rss: 123MB	codegen passes [issue50323.aepfjml6-cgu.12]
time: 0.002; rss: 124MB	codegen passes [issue50323.aepfjml6-cgu.7]
time: 0.001; rss: 124MB	LTO_passes
time: 0.001; rss: 124MB	LTO_passes
time: 0.002; rss: 124MB	codegen passes [issue50323.aepfjml6-cgu.9]
time: 0.002; rss: 124MB	codegen passes [issue50323.aepfjml6-cgu.13]
time: 0.002; rss: 124MB	LTO_passes
time: 0.001; rss: 124MB	LTO_passes
time: 0.002; rss: 124MB	codegen passes [issue50323.aepfjml6-cgu.15]
time: 0.001; rss: 124MB	LTO_passes
time: 0.002; rss: 125MB	codegen passes [issue50323.aepfjml6-cgu.11]
time: 0.001; rss: 125MB	codegen passes [issue50323.aepfjml6-cgu.14]
time: 0.021; rss: 125MB	codegen passes [issue50323.aepfjml6-cgu.4]
time: 0.045; rss: 126MB	LTO_passes
time: 0.029; rss: 127MB	codegen passes [issue50323.aepfjml6-cgu.1]
time: 0.086; rss: 128MB	LTO_passes
time: 0.116; rss: 128MB	LTO_passes
time: 0.133; rss: 128MB	LTO_passes
time: 0.048; rss: 128MB	codegen passes [issue50323.aepfjml6-cgu.2]
time: 0.019; rss: 128MB	codegen passes [issue50323.aepfjml6-cgu.3]
time: 0.041; rss: 129MB	codegen passes [issue50323.aepfjml6-cgu.0]
time: 0.456; rss: 129MB	LLVM_passes
time: 0.000; rss: 130MB	join_worker_thread
time: 0.366; rss: 130MB	finish_ongoing_codegen
time: 0.000; rss: 130MB	serialize_work_products
time: 0.000; rss: 130MB	link_binary_check_files_are_writeable
time: 0.112; rss: 130MB	run_linker
time: 0.000; rss: 130MB	link_binary_remove_temps
time: 0.113; rss: 130MB	link_binary
time: 0.113; rss: 130MB	link_crate
time: 0.000; rss: 130MB	llvm_dump_timing_file
time: 0.479; rss: 130MB	link
time: 0.716; rss: 130MB		total
    Finished release [optimized] target(s) in 0.83s

@jackh726 jackh726 added the E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. label Feb 4, 2021
@khuey
Copy link
Contributor Author

khuey commented Nov 6, 2022

This went away at some point, yeah.

@khuey khuey closed this as completed Nov 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. C-enhancement Category: An issue proposing an enhancement or a PR with one. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

7 participants