Skip to content

Commit 5266b7c

Browse files
committed
generate more global data
1 parent d0e29d2 commit 5266b7c

File tree

1 file changed

+13
-5
lines changed
  • compiler/rustc_codegen_llvm/src/back

1 file changed

+13
-5
lines changed

compiler/rustc_codegen_llvm/src/back/lto.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -745,11 +745,19 @@ pub(crate) fn run_pass_manager(
745745
let entry_name = format!("kernel_{num}");
746746
let c_entry_name = CString::new(entry_name).unwrap();
747747
let c_val = c_entry_name.as_bytes_with_nul();
748-
//let const_name = cx.const_bytes(c_val);
749-
let len = u64::try_from(c_val.len()).expect("LLVMConstArray2 elements len overflow");
750-
let foo = unsafe { llvm::LLVMConstArray2(ti8, c_val.as_ptr(), len) };
751-
llvm::set_alignment(foo, rustc_abi::Align::ONE);
752-
dbg!(&foo);
748+
let foo = format!(".offloading.entry_name.{num}");
749+
let c_foo = CString::new(foo).unwrap();
750+
751+
let llconst = crate::common::bytes_in_context(cx.llcx, c_val);
752+
let llglobal =
753+
llvm::add_global(cx.llmod, crate::common::val_ty(llconst), &c_foo);
754+
llvm::set_alignment(llglobal, rustc_abi::Align::ONE);
755+
llvm::set_section(llglobal, &c_section_name);
756+
llvm::set_global_constant(llglobal, true);
757+
llvm::set_linkage(llglobal, llvm::Linkage::InternalLinkage);
758+
unsafe {llvm::LLVMSetUnnamedAddress(llglobal, llvm::UnnamedAddr::Global)};
759+
llvm::set_initializer(llglobal, llconst);
760+
//dbg!(&foo);
753761
// @.offloading.entry_name = internal unnamed_addr constant [66 x i8] c"__omp_offloading_86fafab6_c40006a1__Z3fooPSt7complexIdES1_S0_m_l7\00", section ".llvm.rodata.offloading", align 1
754762
// @.offloading.entry.__omp_offloading_86fafab6_c40006a1__Z3fooPSt7complexIdES1_S0_m_l7 = weak constant %struct.__tgt_offload_entry { i64 0, i16 1, i16 1, i32 0, ptr @.__omp_offloading_86fafab6_c40006a1__Z3fooPSt7complexIdES1_S0_m_l7.region_id, ptr @.offloading.entry_name, i64 0, i64 0, ptr null }, section "omp_offloading_entries", align 1
755763

0 commit comments

Comments
 (0)