diff options
| author | bors <bors@rust-lang.org> | 2019-04-30 19:52:13 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-04-30 19:52:13 +0000 |
| commit | 7c71bc3208031b1307573de45a3b3e18fa45787a (patch) | |
| tree | 1f1e41b0a19c54a794d95435c77f352ca18ae1e4 /src/tools/compiletest | |
| parent | 5b7baa53c91d7c33b925fc8aec553e3521548a07 (diff) | |
| parent | 7c4cc01f7900f66be8bc939ddb4fb15636f598f1 (diff) | |
| download | rust-7c71bc3208031b1307573de45a3b3e18fa45787a.tar.gz rust-7c71bc3208031b1307573de45a3b3e18fa45787a.zip | |
Auto merge of #60262 - michaelwoerister:pgo-preinlining-pass, r=alexcrichton
PGO: Add a run-make test that makes sure that PGO profiling data is used by the compiler during optimizations. From the tests comment section: ``` # This test makes sure that PGO profiling data leads to cold functions being # marked as `cold` and hot functions with `inlinehint`. # The test program contains an `if` were actual execution only ever takes the # `else` branch. Accordingly, we expect the function that is never called to # be marked as cold. ``` r? @alexcrichton
Diffstat (limited to 'src/tools/compiletest')
| -rw-r--r-- | src/tools/compiletest/src/common.rs | 3 | ||||
| -rw-r--r-- | src/tools/compiletest/src/main.rs | 4 | ||||
| -rw-r--r-- | src/tools/compiletest/src/runtest.rs | 8 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index 089cbc7b78a..4699dee1716 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -144,6 +144,9 @@ pub struct Config { /// The LLVM `FileCheck` binary path. pub llvm_filecheck: Option<PathBuf>, + /// Path to LLVM's bin directory. + pub llvm_bin_dir: Option<PathBuf>, + /// The valgrind path. pub valgrind_path: Option<String>, diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs index 431fd7969be..dc5d1b9a853 100644 --- a/src/tools/compiletest/src/main.rs +++ b/src/tools/compiletest/src/main.rs @@ -221,6 +221,7 @@ pub fn parse_config(args: Vec<String>) -> Config { "LIST", ) .reqopt("", "llvm-cxxflags", "C++ flags for LLVM", "FLAGS") + .optopt("", "llvm-bin-dir", "Path to LLVM's `bin` directory", "PATH") .optopt("", "nodejs", "the name of nodejs", "PATH") .optopt( "", @@ -306,7 +307,8 @@ pub fn parse_config(args: Vec<String>) -> Config { valgrind_path: matches.opt_str("valgrind-path"), force_valgrind: matches.opt_present("force-valgrind"), run_clang_based_tests_with: matches.opt_str("run-clang-based-tests-with"), - llvm_filecheck: matches.opt_str("llvm-filecheck").map(|s| PathBuf::from(&s)), + llvm_filecheck: matches.opt_str("llvm-filecheck").map(PathBuf::from), + llvm_bin_dir: matches.opt_str("llvm-bin-dir").map(PathBuf::from), src_base, build_base: opt_path(matches, "build-base"), stage_id: matches.opt_str("stage-id").unwrap(), diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 9db16b69e5f..42f9cdb7886 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -2691,6 +2691,14 @@ impl<'test> TestCx<'test> { cmd.env("CLANG", clang); } + if let Some(ref filecheck) = self.config.llvm_filecheck { + cmd.env("LLVM_FILECHECK", filecheck); + } + + if let Some(ref llvm_bin_dir) = self.config.llvm_bin_dir { + cmd.env("LLVM_BIN_DIR", llvm_bin_dir); + } + // We don't want RUSTFLAGS set from the outside to interfere with // compiler flags set in the test cases: cmd.env_remove("RUSTFLAGS"); |
