MetadataType type cast
This commit is contained in:
@@ -682,16 +682,15 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
|
||||
llvm::LLVMValueAsMetadata(self.cx.const_uint_big(llty, range.start)),
|
||||
llvm::LLVMValueAsMetadata(self.cx.const_uint_big(llty, range.end.wrapping_add(1))),
|
||||
];
|
||||
|
||||
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, md.as_ptr(), md.len());
|
||||
self.set_metadata(load, llvm::MD_range as c_uint, md);
|
||||
self.set_metadata(load, llvm::MD_range, md);
|
||||
}
|
||||
}
|
||||
|
||||
fn nonnull_metadata(&mut self, load: &'ll Value) {
|
||||
unsafe {
|
||||
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
|
||||
self.set_metadata(load, llvm::MD_nonnull as c_uint, md);
|
||||
self.set_metadata(load, llvm::MD_nonnull, md);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -741,7 +740,7 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
|
||||
// [1]: https://llvm.org/docs/LangRef.html#store-instruction
|
||||
let one = llvm::LLVMValueAsMetadata(self.cx.const_i32(1));
|
||||
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, &one, 1);
|
||||
self.set_metadata(store, llvm::MD_nontemporal as c_uint, md);
|
||||
self.set_metadata(store, llvm::MD_nontemporal, md);
|
||||
}
|
||||
}
|
||||
store
|
||||
@@ -1206,7 +1205,7 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
|
||||
fn set_invariant_load(&mut self, load: &'ll Value) {
|
||||
unsafe {
|
||||
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
|
||||
self.set_metadata(load, llvm::MD_invariant_load as c_uint, md);
|
||||
self.set_metadata(load, llvm::MD_invariant_load, md);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1337,21 +1336,21 @@ impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx> {
|
||||
unsafe {
|
||||
let md = [llvm::LLVMValueAsMetadata(self.cx.const_u64(align.bytes()))];
|
||||
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, md.as_ptr(), md.len());
|
||||
self.set_metadata(load, llvm::MD_align as c_uint, md);
|
||||
self.set_metadata(load, llvm::MD_align, md);
|
||||
}
|
||||
}
|
||||
|
||||
fn noundef_metadata(&mut self, load: &'ll Value) {
|
||||
unsafe {
|
||||
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
|
||||
self.set_metadata(load, llvm::MD_noundef as c_uint, md);
|
||||
self.set_metadata(load, llvm::MD_noundef, md);
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn set_unpredictable(&mut self, inst: &'ll Value) {
|
||||
unsafe {
|
||||
let md = llvm::LLVMMDNodeInContext2(self.cx.llcx, ptr::null(), 0);
|
||||
self.set_metadata(inst, llvm::MD_unpredictable as c_uint, md);
|
||||
self.set_metadata(inst, llvm::MD_unpredictable, md);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user