diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2025-06-03 10:00:56 +0000 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2025-06-03 10:00:56 +0000 |
| commit | 2e8401ae5f293070f57b964252db7b38d3f2fc2a (patch) | |
| tree | efbcef5ccd349ee00d3957a4972ac2a958aab6bc /compiler/rustc_codegen_llvm/src/builder.rs | |
| parent | 00a88b903d3728517dff8f0044160d18a0322ab4 (diff) | |
| download | rust-2e8401ae5f293070f57b964252db7b38d3f2fc2a.tar.gz rust-2e8401ae5f293070f57b964252db7b38d3f2fc2a.zip | |
Remove type_test from IntrinsicCallBuilderMethods
It is only used within cg_llvm.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/builder.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/builder.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_llvm/src/builder.rs b/compiler/rustc_codegen_llvm/src/builder.rs index 167678c2ff1..ec006b59192 100644 --- a/compiler/rustc_codegen_llvm/src/builder.rs +++ b/compiler/rustc_codegen_llvm/src/builder.rs @@ -1815,8 +1815,11 @@ impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx> { let typeid_metadata = self.cx.typeid_metadata(typeid).unwrap(); let dbg_loc = self.get_dbg_loc(); - // Test whether the function pointer is associated with the type identifier. - let cond = self.type_test(llfn, typeid_metadata); + // Test whether the function pointer is associated with the type identifier using the + // llvm.type.test intrinsic. The LowerTypeTests link-time optimization pass replaces + // calls to this intrinsic with code to test type membership. + let typeid = self.get_metadata_value(typeid_metadata); + let cond = self.call_intrinsic("llvm.type.test", &[llfn, typeid]); let bb_pass = self.append_sibling_block("type_test.pass"); let bb_fail = self.append_sibling_block("type_test.fail"); self.cond_br(cond, bb_pass, bb_fail); |
