Auto merge of #131429 - Zalathar:needs-profiler-runtime, r=jieyouxu

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
This commit is contained in:
bors 2024-10-09 12:20:11 +00:00
commit a1eceec00b
19 changed files with 35 additions and 37 deletions

View file

@ -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());

View file

@ -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",

View file

@ -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 {

View file

@ -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.

View file

@ -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",
@ -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,
@ -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`),

View file

@ -69,7 +69,7 @@ struct ConfigBuilder {
llvm_version: Option<String>,
git_hash: bool,
system_llvm: bool,
profiler_support: bool,
profiler_runtime: bool,
}
impl ConfigBuilder {
@ -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
}
@ -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());
@ -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]
@ -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"));
}

View file

@ -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(
@ -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"),
}
}

View file

@ -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#"

View file

@ -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.

View file

@ -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::{

View file

@ -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;

View file

@ -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

View file

@ -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};

View file

@ -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

View file

@ -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::{

View file

@ -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};

View file

@ -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};

View file

@ -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`.

View file

@ -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