forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#70156 - michaelwoerister:incr-cgus, r=nikom…
…atsakis Make the rustc respect the `-C codegen-units` flag in incremental mode. This PR implements (the as of yet unapproved) major change proposal at rust-lang/compiler-team#245. See the description there for background and rationale. The changes are pretty straightforward and should be easy to rebase if the proposal gets accepted at some point. r? @nikomatsakis cc @pnkfelix
- Loading branch information
Showing
5 changed files
with
122 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
src/test/codegen-units/partitioning/incremental-merging.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// ignore-tidy-linelength | ||
// We specify -C incremental here because we want to test the partitioning for | ||
// incremental compilation | ||
// compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/incremental-merging | ||
// compile-flags:-Ccodegen-units=3 | ||
|
||
#![crate_type = "rlib"] | ||
|
||
// This test makes sure that merging of CGUs works together with incremental | ||
// compilation but at the same time does not modify names of CGUs that were not | ||
// affected by merging. | ||
// | ||
// We expect CGUs `aaa` and `bbb` to be merged (because they are the smallest), | ||
// while `ccc` and `ddd` are supposed to stay untouched. | ||
|
||
pub mod aaa { | ||
//~ MONO_ITEM fn incremental_merging::aaa[0]::foo[0] @@ incremental_merging-aaa--incremental_merging-bbb[External] | ||
pub fn foo(a: u64) -> u64 { | ||
a + 1 | ||
} | ||
} | ||
|
||
pub mod bbb { | ||
//~ MONO_ITEM fn incremental_merging::bbb[0]::foo[0] @@ incremental_merging-aaa--incremental_merging-bbb[External] | ||
pub fn foo(a: u64, b: u64) -> u64 { | ||
a + b + 1 | ||
} | ||
} | ||
|
||
pub mod ccc { | ||
//~ MONO_ITEM fn incremental_merging::ccc[0]::foo[0] @@ incremental_merging-ccc[External] | ||
pub fn foo(a: u64, b: u64, c: u64) -> u64 { | ||
a + b + c + 1 | ||
} | ||
} | ||
|
||
pub mod ddd { | ||
//~ MONO_ITEM fn incremental_merging::ddd[0]::foo[0] @@ incremental_merging-ddd[External] | ||
pub fn foo(a: u64, b: u64, c: u64, d: u64) -> u64 { | ||
a + b + c + d + 1 | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters