MCPcopy Create free account
hub / github.com/Rust-GPU/rust-cuda / static_addr_of_mut

Method static_addr_of_mut

crates/rustc_codegen_nvvm/src/consts.rs:278–296  ·  view source on GitHub ↗
(
        &self,
        cv: &'ll Value,
        align: Align,
        kind: Option<&str>,
    )

Source from the content-addressed store, hash-verified

276 }
277
278 pub(crate) fn static_addr_of_mut(
279 &self,
280 cv: &'ll Value,
281 align: Align,
282 kind: Option<&str>,
283 ) -> &'ll Value {
284 unsafe {
285 // TODO(RDambrosio016): replace this with latest rustc's handling when we use llvm 13
286 let name = self.generate_local_symbol_name(kind.unwrap_or("private"));
287 let gv = self
288 .define_global(&name[..], self.val_ty(cv), AddressSpace::DATA)
289 .unwrap_or_else(|| bug!("symbol `{}` is already defined", name));
290 llvm::LLVMRustSetLinkage(gv, llvm::Linkage::PrivateLinkage);
291 llvm::LLVMSetInitializer(gv, cv);
292 llvm::LLVMSetAlignment(gv, align.bytes() as c_uint);
293 llvm::SetUnnamedAddress(gv, llvm::UnnamedAddr::Global);
294 gv
295 }
296 }
297
298 pub(crate) fn get_static(&self, def_id: DefId) -> &'ll Value {
299 let instance = Instance::mono(self.tcx, def_id);

Callers 2

scalar_to_backendMethod · 0.80
static_addr_ofMethod · 0.80

Calls 5

LLVMRustSetLinkageFunction · 0.85
SetUnnamedAddressFunction · 0.85
define_globalMethod · 0.80
val_tyMethod · 0.80

Tested by

no test coverage detected