Skip to content

Commit

Permalink
Auto merge of #131429 - Zalathar:needs-profiler-runtime, r=jieyouxu
Browse files Browse the repository at this point in the history
Rename directive `needs-profiler-support` to `needs-profiler-runtime`

The rest of the compiler mostly refers to this as `profiler_runtime`, so having a directive named `needs-profiler-support` was causing a lot of confusion.

r? jieyouxu
  • Loading branch information
bors committed Oct 9, 2024
2 parents 4203c68 + 7a0e8bd commit a1eceec
Show file tree
Hide file tree
Showing 19 changed files with 35 additions and 37 deletions.
2 changes: 1 addition & 1 deletion src/bootstrap/src/core/build_steps/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2082,7 +2082,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the
}

if builder.config.profiler_enabled(target) {
cmd.arg("--profiler-support");
cmd.arg("--profiler-runtime");
}

cmd.env("RUST_TEST_TMPDIR", builder.tempdir());
Expand Down
2 changes: 1 addition & 1 deletion src/tools/compiletest/src/command-list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
"needs-git-hash",
"needs-llvm-components",
"needs-llvm-zstd",
"needs-profiler-support",
"needs-profiler-runtime",
"needs-relocation-model-pic",
"needs-run-enabled",
"needs-rust-lld",
Expand Down
4 changes: 2 additions & 2 deletions src/tools/compiletest/src/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -385,8 +385,8 @@ pub struct Config {
pub git_merge_commit_email: String,

/// True if the profiler runtime is enabled for this target.
/// Used by the "needs-profiler-support" header in test files.
pub profiler_support: bool,
/// Used by the "needs-profiler-runtime" directive in test files.
pub profiler_runtime: bool,
}

impl Config {
Expand Down
2 changes: 1 addition & 1 deletion src/tools/compiletest/src/header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -851,7 +851,7 @@ fn iter_header(
// FIXME(jieyouxu): I feel like there's a better way to do this, leaving for later.
if mode == Mode::CoverageRun {
let extra_directives: &[&str] = &[
"needs-profiler-support",
"needs-profiler-runtime",
// FIXME(pietroalbini): this test currently does not work on cross-compiled targets
// because remote-test is not capable of sending back the *.profraw files generated by
// the LLVM instrumentation.
Expand Down
8 changes: 3 additions & 5 deletions src/tools/compiletest/src/header/needs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ pub(super) fn handle_needs(
ignore_reason: "ignored on targets without unwinding support",
},
Need {
name: "needs-profiler-support",
condition: cache.profiler_support,
ignore_reason: "ignored when profiler support is disabled",
name: "needs-profiler-runtime",
condition: config.profiler_runtime,
ignore_reason: "ignored when the profiler runtime is not available",
},
Need {
name: "needs-force-clang-based-tests",
Expand Down Expand Up @@ -220,7 +220,6 @@ pub(super) struct CachedNeedsConditions {
sanitizer_memtag: bool,
sanitizer_shadow_call_stack: bool,
sanitizer_safestack: bool,
profiler_support: bool,
xray: bool,
rust_lld: bool,
dlltool: bool,
Expand All @@ -247,7 +246,6 @@ impl CachedNeedsConditions {
sanitizer_memtag: sanitizers.contains(&Sanitizer::Memtag),
sanitizer_shadow_call_stack: sanitizers.contains(&Sanitizer::ShadowCallStack),
sanitizer_safestack: sanitizers.contains(&Sanitizer::Safestack),
profiler_support: config.profiler_support,
xray: config.target_cfg().xray,

// For tests using the `needs-rust-lld` directive (e.g. for `-Clink-self-contained=+linker`),
Expand Down
26 changes: 13 additions & 13 deletions src/tools/compiletest/src/header/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ struct ConfigBuilder {
llvm_version: Option<String>,
git_hash: bool,
system_llvm: bool,
profiler_support: bool,
profiler_runtime: bool,
}

impl ConfigBuilder {
Expand Down Expand Up @@ -113,8 +113,8 @@ impl ConfigBuilder {
self
}

fn profiler_support(&mut self, s: bool) -> &mut Self {
self.profiler_support = s;
fn profiler_runtime(&mut self, is_available: bool) -> &mut Self {
self.profiler_runtime = is_available;
self
}

Expand Down Expand Up @@ -162,8 +162,8 @@ impl ConfigBuilder {
if self.system_llvm {
args.push("--system-llvm".to_owned());
}
if self.profiler_support {
args.push("--profiler-support".to_owned());
if self.profiler_runtime {
args.push("--profiler-runtime".to_owned());
}

args.push("--rustc-path".to_string());
Expand Down Expand Up @@ -368,12 +368,12 @@ fn sanitizers() {
}

#[test]
fn profiler_support() {
let config: Config = cfg().profiler_support(false).build();
assert!(check_ignore(&config, "//@ needs-profiler-support"));
fn profiler_runtime() {
let config: Config = cfg().profiler_runtime(false).build();
assert!(check_ignore(&config, "//@ needs-profiler-runtime"));

let config: Config = cfg().profiler_support(true).build();
assert!(!check_ignore(&config, "//@ needs-profiler-support"));
let config: Config = cfg().profiler_runtime(true).build();
assert!(!check_ignore(&config, "//@ needs-profiler-runtime"));
}

#[test]
Expand Down Expand Up @@ -573,12 +573,12 @@ fn families() {

#[test]
fn ignore_coverage() {
// Indicate profiler support so that "coverage-run" tests aren't skipped.
let config = cfg().mode("coverage-map").profiler_support(true).build();
// Indicate profiler runtime availability so that "coverage-run" tests aren't skipped.
let config = cfg().mode("coverage-map").profiler_runtime(true).build();
assert!(check_ignore(&config, "//@ ignore-coverage-map"));
assert!(!check_ignore(&config, "//@ ignore-coverage-run"));

let config = cfg().mode("coverage-run").profiler_support(true).build();
let config = cfg().mode("coverage-run").profiler_runtime(true).build();
assert!(!check_ignore(&config, "//@ ignore-coverage-map"));
assert!(check_ignore(&config, "//@ ignore-coverage-run"));
}
Expand Down
4 changes: 2 additions & 2 deletions src/tools/compiletest/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ pub fn parse_config(args: Vec<String>) -> Config {
.optflag("", "force-rerun", "rerun tests even if the inputs are unchanged")
.optflag("", "only-modified", "only run tests that result been modified")
.optflag("", "nocapture", "")
.optflag("", "profiler-support", "is the profiler runtime enabled for this target")
.optflag("", "profiler-runtime", "is the profiler runtime enabled for this target")
.optflag("h", "help", "show this message")
.reqopt("", "channel", "current Rust channel", "CHANNEL")
.optflag(
Expand Down Expand Up @@ -355,7 +355,7 @@ pub fn parse_config(args: Vec<String>) -> Config {
nightly_branch: matches.opt_str("nightly-branch").unwrap(),
git_merge_commit_email: matches.opt_str("git-merge-commit-email").unwrap(),

profiler_support: matches.opt_present("profiler-support"),
profiler_runtime: matches.opt_present("profiler-runtime"),
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/tools/compiletest/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ fn main() {
eprintln!("warning: `tidy` is not installed; diffs will not be generated");
}

if !config.profiler_support && config.mode == Mode::CoverageRun {
if !config.profiler_runtime && config.mode == Mode::CoverageRun {
let actioned = if config.bless { "blessed" } else { "checked" };
eprintln!(
r#"
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/cross-lang-lto-pgo-smoketest-clang/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
// RUSTBUILD_FORCE_CLANG_BASED_TESTS and only runs tests which contain "clang" in their
// name.

//@ needs-profiler-support
//@ needs-profiler-runtime
// FIXME(Oneirical): Except that due to the reliance on llvm-profdata, this test
// never runs, because `x86_64-gnu-debug` does not have the `profiler_builtins` crate.

Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/optimization-remarks-dir-pgo/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// the output remark files.
// See https://github.com/rust-lang/rust/pull/114439

//@ needs-profiler-support
//@ needs-profiler-runtime
//@ ignore-cross-compile

use run_make_support::{
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-branch-weights/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
// If the test passes, the expected function call count was added to the use-phase LLVM-IR.
// See https://github.com/rust-lang/rust/pull/66631

//@ needs-profiler-support
//@ needs-profiler-runtime
//@ ignore-cross-compile

use std::path::Path;
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-gen-lto/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// should be generated.
// See https://github.com/rust-lang/rust/pull/48346

//@ needs-profiler-support
//@ needs-profiler-runtime
// Reason: this exercises LTO profiling
//@ ignore-cross-compile
// Reason: the compiled binary is executed
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-gen/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// optimizes code. This test checks that these files are generated.
// See https://github.com/rust-lang/rust/pull/48346

//@ needs-profiler-support
//@ needs-profiler-runtime
//@ ignore-cross-compile

use run_make_support::{cwd, has_extension, has_prefix, run, rustc, shallow_find_files};
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-indirect-call-promotion/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// whether it can make a direct call instead of the indirect call.
// See https://github.com/rust-lang/rust/pull/66631

//@ needs-profiler-support
//@ needs-profiler-runtime
// Reason: llvm_profdata is used
//@ ignore-cross-compile
// Reason: the compiled binary is executed
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/pgo-use/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// be marked as cold.
// See https://github.com/rust-lang/rust/pull/60262

//@ needs-profiler-support
//@ needs-profiler-runtime
//@ ignore-cross-compile

use run_make_support::{
Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/profile/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// See https://github.com/rust-lang/rust/pull/42433

//@ ignore-cross-compile
//@ needs-profiler-support
//@ needs-profiler-runtime

use run_make_support::{path, run, rustc};

Expand Down
2 changes: 1 addition & 1 deletion tests/run-make/track-pgo-dep-info/rmake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

//@ ignore-cross-compile
// Reason: the binary is executed
//@ needs-profiler-support
//@ needs-profiler-runtime

use run_make_support::{llvm_profdata, rfs, run, rustc};

Expand Down
2 changes: 1 addition & 1 deletion tests/ui/coverage-attr/bad-attr-ice.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#![cfg_attr(feat, feature(coverage_attribute))]
//@ revisions: feat nofeat
//@ compile-flags: -Cinstrument-coverage
//@ needs-profiler-support
//@ needs-profiler-runtime

// Malformed `#[coverage(..)]` attributes should not cause an ICE when built
// with `-Cinstrument-coverage`.
Expand Down
2 changes: 1 addition & 1 deletion tests/ui/issues/issue-85461.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//@ compile-flags: -Cinstrument-coverage -Ccodegen-units=4 --crate-type dylib -Copt-level=0
//@ build-pass
//@ needs-profiler-support
//@ needs-profiler-runtime
//@ needs-dynamic-linking

// Regression test for #85461 where MSVC sometimes fails to link instrument-coverage binaries
Expand Down

0 comments on commit a1eceec

Please sign in to comment.