Skip to content

Commit b9baf63

Browse files
committed
Merge typeid_metadata and create_metadata
1 parent e574fef commit b9baf63

File tree

4 files changed

+17
-18
lines changed

4 files changed

+17
-18
lines changed

compiler/rustc_codegen_llvm/src/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1720,7 +1720,7 @@ impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx> {
17201720
} else {
17211721
cfi::typeid_for_fnabi(self.tcx, fn_abi, options)
17221722
};
1723-
let typeid_metadata = self.cx.typeid_metadata(typeid).unwrap();
1723+
let typeid_metadata = self.cx.create_metadata(typeid);
17241724
let dbg_loc = self.get_dbg_loc();
17251725

17261726
// Test whether the function pointer is associated with the type identifier using the

compiler/rustc_codegen_llvm/src/builder/autodiff.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ fn match_args_from_caller_to_enzyme<'ll>(
7676
outer_pos = 1;
7777
}
7878

79-
let enzyme_const = cx.create_metadata("enzyme_const".to_string()).unwrap();
80-
let enzyme_out = cx.create_metadata("enzyme_out".to_string()).unwrap();
81-
let enzyme_dup = cx.create_metadata("enzyme_dup".to_string()).unwrap();
82-
let enzyme_dupv = cx.create_metadata("enzyme_dupv".to_string()).unwrap();
83-
let enzyme_dupnoneed = cx.create_metadata("enzyme_dupnoneed".to_string()).unwrap();
84-
let enzyme_dupnoneedv = cx.create_metadata("enzyme_dupnoneedv".to_string()).unwrap();
79+
let enzyme_const = cx.create_metadata("enzyme_const".to_string());
80+
let enzyme_out = cx.create_metadata("enzyme_out".to_string());
81+
let enzyme_dup = cx.create_metadata("enzyme_dup".to_string());
82+
let enzyme_dupv = cx.create_metadata("enzyme_dupv".to_string());
83+
let enzyme_dupnoneed = cx.create_metadata("enzyme_dupnoneed".to_string());
84+
let enzyme_dupnoneedv = cx.create_metadata("enzyme_dupnoneedv".to_string());
8585

8686
while activity_pos < inputs.len() {
8787
let diff_activity = inputs[activity_pos as usize];
@@ -378,12 +378,12 @@ fn generate_enzyme_call<'ll>(
378378
let mut args = Vec::with_capacity(num_args as usize + 1);
379379
args.push(fn_to_diff);
380380

381-
let enzyme_primal_ret = cx.create_metadata("enzyme_primal_return".to_string()).unwrap();
381+
let enzyme_primal_ret = cx.create_metadata("enzyme_primal_return".to_string());
382382
if matches!(attrs.ret_activity, DiffActivity::Dual | DiffActivity::Active) {
383383
args.push(cx.get_metadata_value(enzyme_primal_ret));
384384
}
385385
if attrs.width > 1 {
386-
let enzyme_width = cx.create_metadata("enzyme_width".to_string()).unwrap();
386+
let enzyme_width = cx.create_metadata("enzyme_width".to_string());
387387
args.push(cx.get_metadata_value(enzyme_width));
388388
args.push(cx.get_const_int(cx.type_i64(), attrs.width as u64));
389389
}

compiler/rustc_codegen_llvm/src/context.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,7 @@ pub(crate) unsafe fn create_module<'ll>(
473473
#[allow(clippy::option_env_unwrap)]
474474
let rustc_producer =
475475
format!("rustc version {}", option_env!("CFG_VERSION").expect("CFG_VERSION"));
476+
476477
let name_metadata = unsafe {
477478
llvm::LLVMMDStringInContext2(
478479
llcx,
@@ -698,10 +699,10 @@ impl<'ll, CX: Borrow<SCx<'ll>>> GenericCx<'ll, CX> {
698699
}
699700
}
700701

701-
pub(crate) fn create_metadata(&self, name: String) -> Option<&'ll Metadata> {
702-
Some(unsafe {
702+
pub(crate) fn create_metadata(&self, name: String) -> &'ll Metadata {
703+
unsafe {
703704
llvm::LLVMMDStringInContext2(self.llcx(), name.as_ptr() as *const c_char, name.len())
704-
})
705+
}
705706
}
706707

707708
pub(crate) fn get_functions(&self) -> Vec<&'ll Value> {

compiler/rustc_codegen_llvm/src/type_.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::borrow::Borrow;
22
use std::hash::{Hash, Hasher};
33
use std::{fmt, ptr};
44

5-
use libc::{c_char, c_uint};
5+
use libc::c_uint;
66
use rustc_abi::{AddressSpace, Align, Integer, Reg, Size};
77
use rustc_codegen_ssa::common::TypeKind;
88
use rustc_codegen_ssa::traits::*;
@@ -299,7 +299,7 @@ impl<'ll, 'tcx> LayoutTypeCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
299299

300300
impl<'ll, 'tcx> TypeMembershipCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
301301
fn add_type_metadata(&self, function: &'ll Value, typeid: String) {
302-
let typeid_metadata = self.typeid_metadata(typeid).unwrap();
302+
let typeid_metadata = self.create_metadata(typeid);
303303
unsafe {
304304
let v = [llvm::LLVMValueAsMetadata(self.const_usize(0)), typeid_metadata];
305305
llvm::LLVMRustGlobalAddMetadata(
@@ -311,7 +311,7 @@ impl<'ll, 'tcx> TypeMembershipCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
311311
}
312312

313313
fn set_type_metadata(&self, function: &'ll Value, typeid: String) {
314-
let typeid_metadata = self.typeid_metadata(typeid).unwrap();
314+
let typeid_metadata = self.create_metadata(typeid);
315315
unsafe {
316316
let v = [llvm::LLVMValueAsMetadata(self.const_usize(0)), typeid_metadata];
317317
llvm::LLVMGlobalSetMetadata(
@@ -323,9 +323,7 @@ impl<'ll, 'tcx> TypeMembershipCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
323323
}
324324

325325
fn typeid_metadata(&self, typeid: String) -> Option<&'ll Metadata> {
326-
Some(unsafe {
327-
llvm::LLVMMDStringInContext2(self.llcx, typeid.as_ptr() as *const c_char, typeid.len())
328-
})
326+
Some(self.create_metadata(typeid))
329327
}
330328

331329
fn add_kcfi_type_metadata(&self, function: &'ll Value, kcfi_typeid: u32) {

0 commit comments

Comments
 (0)