Skip to content

Add a RUSTC_TIME env var to time rust crates during bootstrap - #58508

Merged
bors merged 1 commit into
rust-lang:masterfrom
Zoxc:time-crate
Jun 17, 2019
Merged

Add a RUSTC_TIME env var to time rust crates during bootstrap#58508
bors merged 1 commit into
rust-lang:masterfrom
Zoxc:time-crate

Conversation

@Zoxc

@ZoxcZoxc commented Feb 16, 2019

Copy link
Copy Markdown
Contributor

Blocked on rust-lang/cargo#6674

r? @michaelwoerister

Example for rustc with #58507:

 time: 0.460; rss: 94MB	parsing
time: 0.000; rss: 94MB	attributes injection
time: 0.000; rss: 94MB	recursion limit
time: 0.000; rss: 94MB	crate injection
time: 0.000; rss: 94MB	plugin loading
time: 0.000; rss: 94MB	plugin registration
time: 0.044; rss: 94MB	pre ast expansion lint checks
time: 1.999; rss: 316MB	expand crate
time: 0.000; rss: 316MB	check unused macros
time: 2.000; rss: 316MB	expansion
time: 0.000; rss: 316MB	maybe building test harness
time: 0.053; rss: 316MB	AST validation
time: 0.000; rss: 316MB	maybe creating a macro crate
time: 1.515; rss: 397MB	name resolution
time: 0.122; rss: 397MB	complete gated feature checking
time: 0.655; rss: 546MB	lowering ast -> hir
time: 0.136; rss: 550MB	early lint checks
time: 0.117; rss: 540MB	validate hir map
time: 0.606; rss: 540MB	indexing hir
time: 0.000; rss: 480MB	load query result cache
time: 0.000; rss: 478MB	dep graph tcx init
time: 0.000; rss: 478MB	looking for entry point
time: 0.001; rss: 478MB	looking for plugin registrar
time: 0.001; rss: 478MB	looking for derive registrar
time: 0.049; rss: 478MB	loop checking
time: 0.064; rss: 479MB	attribute checking
time: 0.166; rss: 484MB	stability checking
time: 0.699; rss: 566MB	type collecting
time: 0.006; rss: 566MB	outlives testing
time: 0.018; rss: 568MB	impl wf inference
time: 0.002; rss: 583MB	unsafety checking
time: 0.005; rss: 583MB	orphan checking
time: 0.227; rss: 583MB	coherence checking
time: 0.006; rss: 583MB	variance testing
time: 1.546; rss: 657MB	wf checking
time: 0.389; rss: 665MB	item-types checking
time: 13.999; rss: 837MB	item-bodies checking
time: 1.692; rss: 883MB	rvalue promotion
time: 0.067; rss: 883MB	intrinsic checking
time: 0.624; rss: 887MB	match checking
time: 0.246; rss: 889MB	liveness checking
time: 2.629; rss: 889MB	misc checking
time: 0.000; rss: 889MB	borrow checking
time: 16.754; rss: 1242MB	MIR borrow checking
time: 0.050; rss: 1242MB	dumping chalk-like clauses
time: 0.010; rss: 1242MB	MIR effect checking
time: 0.001; rss: 1242MB	layout testing
time: 0.829; rss: 1244MB	privacy checking
time: 0.183; rss: 1247MB	death checking
time: 0.100; rss: 1248MB	unused lib feature checking
time: 0.405; rss: 1250MB	lint checking
time: 1.518; rss: 1250MB	misc checking
time: 0.000; rss: 1250MB	resolving dependency formats
time: 2.928; rss: 1332MB	write metadata
time: 0.014; rss: 1332MB	collecting roots
time: 7.621; rss: 1488MB	collecting mono items
time: 7.635; rss: 1488MB	monomorphization collection
time: 0.557; rss: 1567MB	codegen unit partitioning
time: 27.971; rss: 2656MB	codegen to LLVM IR
time: 0.056; rss: 2656MB	assert dep graph
time: 0.000; rss: 2656MB	serialize dep graph
time: 195.414; rss: 2656MB	codegen
time: 0.000; rss: 329MB	serialize work products
time: 1.664; rss: 331MB	running linker
time: 1.965; rss: 331MB	linking
[RUSTC-TIMING] rustc test:false 950.103

It doesn't really look like the times add up here.

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 16, 2019
@nagisa

Copy link
Copy Markdown
Member

Why is this an environment variable rather than a flag to rustbuild?

Comment threadsrc/bootstrap/bin/rustc.rs Outdated
Comment threadsrc/bootstrap/bin/rustc.rs Outdated
@CentrilCentril added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 23, 2019
@Centril

Copy link
Copy Markdown
Contributor

Ping from triage, @Zoxc, thoughts on comments thus far?

@Zoxc

Zoxc commented Mar 2, 2019

Copy link
Copy Markdown
ContributorAuthor

Why is this an environment variable rather than a flag to rustbuild?

Mostly because adding a flag is strictly more work and rustbuild already accepts environment variables as input.

@Dylan-DPC-zz

Copy link
Copy Markdown

ping from triage @Zoxc any updates on this? is this still blocked on Cargo?

@TimNN

Copy link
Copy Markdown
Contributor

Ping from triage @Zoxc: The cargo PR hasn't been updated in quite a while, do you have an rough estimate when this PR will be ready?

@ZoxcZoxc added S-blocked Status: Blocked on something else such as an RFC or other implementation work. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 20, 2019
@Zoxc

Zoxc commented Mar 20, 2019

Copy link
Copy Markdown
ContributorAuthor

The cargo PR will have to get merged, then we'll have to wait for it to land on beta. Probably will take a while.

@bors

bors commented Jun 6, 2019

Copy link
Copy Markdown
Collaborator

☔ The latest upstream changes (presumably #61494) made this pull request unmergeable. Please resolve the merge conflicts.

@Mark-Simulacrum

Copy link
Copy Markdown
Member

Unblocking and marking as waiting-on-author as the relevant PR has been closed (with a comment that implies that maybe this is ready to move forward?)

@Mark-SimulacrumMark-Simulacrum added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-blocked Status: Blocked on something else such as an RFC or other implementation work. labels Jun 8, 2019
@Zoxc

Zoxc commented Jun 12, 2019

Copy link
Copy Markdown
ContributorAuthor

Rebased and unblocked.

r? @oli-obk

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me with sanity assertion


// Get the name of the crate we're compiling, if any.
let maybe_crate_name = args.windows(2)
.find(|a| &*a[0] == "--crate-name")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add an assert for checking whether the args contain --crate-name=something, since that will get silently ignored here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather not add more noise to this file.

@Mark-Simulacrum

Copy link
Copy Markdown
Member

FWIW I think that we shouldn't do this, but I won't block this PR based on my concerns, which largely center around -Ztime-passes being essentially deprecated, though not entirely useless, in favor of -Zself-profile. But I get why you'd want this so I won't stop you, especially because the impact on rustbuild is minimal.

@oli-obk

Copy link
Copy Markdown
Contributor

We can remove the changes of this PR once time-passes is removed

@bors r+

@bors

bors commented Jun 17, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit a0c7984 has been approved by oli-obk

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 17, 2019
bors added a commit that referenced this pull request Jun 17, 2019
Add a RUSTC_TIME env var to time rust crates during bootstrap
Blocked on rust-lang/cargo#6674
r? @michaelwoerister
Example for rustc with #58507:
```
time: 0.460; rss: 94MB	parsing
time: 0.000; rss: 94MB	attributes injection
time: 0.000; rss: 94MB	recursion limit
time: 0.000; rss: 94MB	crate injection
time: 0.000; rss: 94MB	plugin loading
time: 0.000; rss: 94MB	plugin registration
time: 0.044; rss: 94MB	pre ast expansion lint checks
time: 1.999; rss: 316MB	expand crate
time: 0.000; rss: 316MB	check unused macros
time: 2.000; rss: 316MB	expansion
time: 0.000; rss: 316MB	maybe building test harness
time: 0.053; rss: 316MB	AST validation
time: 0.000; rss: 316MB	maybe creating a macro crate
time: 1.515; rss: 397MB	name resolution
time: 0.122; rss: 397MB	complete gated feature checking
time: 0.655; rss: 546MB	lowering ast -> hir
time: 0.136; rss: 550MB	early lint checks
time: 0.117; rss: 540MB	validate hir map
time: 0.606; rss: 540MB	indexing hir
time: 0.000; rss: 480MB	load query result cache
time: 0.000; rss: 478MB	dep graph tcx init
time: 0.000; rss: 478MB	looking for entry point
time: 0.001; rss: 478MB	looking for plugin registrar
time: 0.001; rss: 478MB	looking for derive registrar
time: 0.049; rss: 478MB	loop checking
time: 0.064; rss: 479MB	attribute checking
time: 0.166; rss: 484MB	stability checking
time: 0.699; rss: 566MB	type collecting
time: 0.006; rss: 566MB	outlives testing
time: 0.018; rss: 568MB	impl wf inference
time: 0.002; rss: 583MB	unsafety checking
time: 0.005; rss: 583MB	orphan checking
time: 0.227; rss: 583MB	coherence checking
time: 0.006; rss: 583MB	variance testing
time: 1.546; rss: 657MB	wf checking
time: 0.389; rss: 665MB	item-types checking
time: 13.999; rss: 837MB	item-bodies checking
time: 1.692; rss: 883MB	rvalue promotion
time: 0.067; rss: 883MB	intrinsic checking
time: 0.624; rss: 887MB	match checking
time: 0.246; rss: 889MB	liveness checking
time: 2.629; rss: 889MB	misc checking
time: 0.000; rss: 889MB	borrow checking
time: 16.754; rss: 1242MB	MIR borrow checking
time: 0.050; rss: 1242MB	dumping chalk-like clauses
time: 0.010; rss: 1242MB	MIR effect checking
time: 0.001; rss: 1242MB	layout testing
time: 0.829; rss: 1244MB	privacy checking
time: 0.183; rss: 1247MB	death checking
time: 0.100; rss: 1248MB	unused lib feature checking
time: 0.405; rss: 1250MB	lint checking
time: 1.518; rss: 1250MB	misc checking
time: 0.000; rss: 1250MB	resolving dependency formats
time: 2.928; rss: 1332MB	write metadata
time: 0.014; rss: 1332MB	collecting roots
time: 7.621; rss: 1488MB	collecting mono items
time: 7.635; rss: 1488MB	monomorphization collection
time: 0.557; rss: 1567MB	codegen unit partitioning
time: 27.971; rss: 2656MB	codegen to LLVM IR
time: 0.056; rss: 2656MB	assert dep graph
time: 0.000; rss: 2656MB	serialize dep graph
time: 195.414; rss: 2656MB	codegen
time: 0.000; rss: 329MB	serialize work products
time: 1.664; rss: 331MB	running linker
time: 1.965; rss: 331MB	linking
[RUSTC-TIMING] rustc test:false 950.103
```
It doesn't really look like the times add up here.
@bors

bors commented Jun 17, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a0c7984 with merge 289b78a...

@bors

bors commented Jun 17, 2019

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-travis, status-appveyor
Approved by: oli-obk
Pushing 289b78a to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Jun 17, 2019
@bors
bors merged commit a0c7984 into rust-lang:masterJun 17, 2019
@rust-highfive

Copy link
Copy Markdown
Contributor

📣 Toolstate changed by #58508!

Tested on commit 289b78a.
Direct link to PR: #58508

🎉 rls on windows: test-fail → test-pass (cc @Xanewok, @rust-lang/infra).

rust-highfive added a commit to rust-lang-nursery/rust-toolstate that referenced this pull request Jun 17, 2019
Tested on commit rust-lang/rust@289b78a.
Direct link to PR: <rust-lang/rust#58508>
🎉 rls on windows: test-fail → test-pass (cc @Xanewok, @rust-lang/infra).
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants

@Zoxc@nagisa@Centril@Dylan-DPC-zz@TimNN@bors@Mark-Simulacrum@oli-obk@rust-highfive@michaelwoerister