Skip to content

Commit

Permalink
Rollup merge of rust-lang#126941 - GuillaumeGomez:migrate-run-make-ll…
Browse files Browse the repository at this point in the history
…vm-ident, r=Kobzol

Migrate `run-make/llvm-ident` to `rmake.rs`

Part of rust-lang#121876.

r? ``@Kobzol``
  • Loading branch information
matthiaskrgr authored Jun 26, 2024
2 parents 4abb0e7 + 221dd30 commit 6f9b0af
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 20 deletions.
7 changes: 7 additions & 0 deletions src/tools/run-make-support/src/llvm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,13 @@ impl LlvmFilecheck {
self.cmd.arg(path.as_ref());
self
}

/// `--input-file` option.
pub fn input_file<P: AsRef<Path>>(&mut self, input_file: P) -> &mut Self {
self.cmd.arg("--input-file");
self.cmd.arg(input_file.as_ref());
self
}
}

impl LlvmObjdump {
Expand Down
1 change: 0 additions & 1 deletion src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ run-make/link-cfg/Makefile
run-make/link-framework/Makefile
run-make/link-path-order/Makefile
run-make/linkage-attr-on-static/Makefile
run-make/llvm-ident/Makefile
run-make/long-linker-command-lines-cmd-exe/Makefile
run-make/long-linker-command-lines/Makefile
run-make/longjmp-across-rust/Makefile
Expand Down
19 changes: 0 additions & 19 deletions tests/run-make/llvm-ident/Makefile

This file was deleted.

40 changes: 40 additions & 0 deletions tests/run-make/llvm-ident/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//@ only-linux

use run_make_support::llvm::llvm_bin_dir;
use run_make_support::{cmd, env_var, llvm_filecheck, read_dir, rustc, source_root};

use std::ffi::OsStr;

fn main() {
// `-Ccodegen-units=16 -Copt-level=2` is used here to trigger thin LTO
// across codegen units to test deduplication of the named metadata
// (see `LLVMRustPrepareThinLTOImport` for details).
rustc()
.emit("link,obj")
.arg("-Csave-temps")
.codegen_units(16)
.opt_level("2")
.target(&env_var("TARGET"))
.arg("-")
.stdin("fn main(){}")
.run();

// `llvm-dis` is used here since `--emit=llvm-ir` does not emit LLVM IR
// for temporary outputs.
let mut files = Vec::new();
read_dir(".", |path| {
if path.is_file() && path.extension().is_some_and(|ext| ext == OsStr::new("bc")) {
files.push(path.to_path_buf());
}
});
cmd(llvm_bin_dir().join("llvm-dis")).args(&files).run();

// Check LLVM IR files (including temporary outputs) have `!llvm.ident`
// named metadata, reusing the related codegen test.
let llvm_ident_path = source_root().join("tests/codegen/llvm-ident.rs");
read_dir(".", |path| {
if path.is_file() && path.extension().is_some_and(|ext| ext == OsStr::new("ll")) {
llvm_filecheck().input_file(path).arg(&llvm_ident_path).run();
}
});
}

0 comments on commit 6f9b0af

Please sign in to comment.