Skip to content

Commit d523b83

Browse files
Fix deprecation warnings for trunk LLVM (#5803)
(1) Both the 'deprecated' and new, non-deprecated variants existed back to at least LLVM10, and the deprecated variant was commented as deprecated at that point as well; the change in LLVM13 is that they are now annotated with LLVM_ATTRIBUTE_DEPRECATED so we get compiler warnings (and thus errors). (2) The fixes are simply replicating what the old, deprecated methods did internally.
1 parent c3882a5 commit d523b83

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/CodeGen_Internal.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,20 @@ void unpack_closure(const Closure &closure,
9191
int idx = 0;
9292
for (const auto &v : closure.vars) {
9393
Value *ptr = builder->CreateConstInBoundsGEP2_32(type, src, 0, idx++);
94-
LoadInst *load = builder->CreateLoad(ptr);
94+
LoadInst *load = builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr);
9595
dst.push(v.first, load);
9696
load->setName(v.first);
9797
}
9898
for (const auto &b : closure.buffers) {
9999
{
100100
Value *ptr = builder->CreateConstInBoundsGEP2_32(type, src, 0, idx++);
101-
LoadInst *load = builder->CreateLoad(ptr);
101+
LoadInst *load = builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr);
102102
dst.push(b.first, load);
103103
load->setName(b.first);
104104
}
105105
{
106106
Value *ptr = builder->CreateConstInBoundsGEP2_32(type, src, 0, idx++);
107-
LoadInst *load = builder->CreateLoad(ptr);
107+
LoadInst *load = builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr);
108108
dst.push(b.first + ".buffer", load);
109109
load->setName(b.first + ".buffer");
110110
}

src/CodeGen_LLVM.cpp

+10-10
Original file line numberDiff line numberDiff line change
@@ -905,14 +905,14 @@ llvm::Function *CodeGen_LLVM::add_argv_wrapper(llvm::Function *fn,
905905
for (llvm::Function::arg_iterator i = fn->arg_begin(); i != fn->arg_end(); i++) {
906906
// Get the address of the nth argument
907907
llvm::Value *ptr = builder->CreateConstGEP1_32(arg_array, wrapper_args.size());
908-
ptr = builder->CreateLoad(ptr);
908+
ptr = builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr);
909909
if (i->getType() == halide_buffer_t_type->getPointerTo()) {
910910
// Cast the argument to a halide_buffer_t *
911911
wrapper_args.push_back(builder->CreatePointerCast(ptr, halide_buffer_t_type->getPointerTo()));
912912
} else {
913913
// Cast to the appropriate type and load
914914
ptr = builder->CreatePointerCast(ptr, i->getType()->getPointerTo());
915-
wrapper_args.push_back(builder->CreateLoad(ptr));
915+
wrapper_args.push_back(builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr));
916916
}
917917
}
918918
debug(4) << "Creating call from wrapper to actual function\n";
@@ -923,7 +923,7 @@ llvm::Function *CodeGen_LLVM::add_argv_wrapper(llvm::Function *fn,
923923
if (result_in_argv) {
924924
llvm::Value *result_in_argv_ptr = builder->CreateConstGEP1_32(arg_array, wrapper_args.size());
925925
if (fn->getReturnType() != void_t) {
926-
result_in_argv_ptr = builder->CreateLoad(result_in_argv_ptr);
926+
result_in_argv_ptr = builder->CreateLoad(result_in_argv_ptr->getType()->getPointerElementType(), result_in_argv_ptr);
927927
// Cast to the appropriate type and store
928928
result_in_argv_ptr = builder->CreatePointerCast(result_in_argv_ptr, fn->getReturnType()->getPointerTo());
929929
builder->CreateStore(result, result_in_argv_ptr);
@@ -1901,7 +1901,7 @@ void CodeGen_LLVM::visit(const Load *op) {
19011901
if (op->type.is_scalar()) {
19021902
// Scalar loads
19031903
Value *ptr = codegen_buffer_pointer(op->name, op->type, op->index);
1904-
LoadInst *load = builder->CreateAlignedLoad(ptr, llvm::Align(op->type.bytes()));
1904+
LoadInst *load = builder->CreateAlignedLoad(ptr->getType()->getPointerElementType(), ptr, llvm::Align(op->type.bytes()));
19051905
add_tbaa_metadata(load, op->name, op->index);
19061906
value = load;
19071907
} else {
@@ -1996,7 +1996,7 @@ void CodeGen_LLVM::visit(const Load *op) {
19961996
value = UndefValue::get(llvm_type_of(op->type));
19971997
for (int i = 0; i < ramp->lanes; i++) {
19981998
Value *lane = ConstantInt::get(i32_t, i);
1999-
LoadInst *val = builder->CreateLoad(ptr);
1999+
LoadInst *val = builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr);
20002000
add_tbaa_metadata(val, op->name, op->index);
20012001
value = builder->CreateInsertElement(value, val, lane);
20022002
ptr = builder->CreateInBoundsGEP(ptr, stride);
@@ -2011,7 +2011,7 @@ void CodeGen_LLVM::visit(const Load *op) {
20112011
for (int i = 0; i < op->type.lanes(); i++) {
20122012
Expr idx = extract_lane(op->index, i);
20132013
Value *ptr = codegen_buffer_pointer(op->name, op->type.element_of(), idx);
2014-
LoadInst *val = builder->CreateLoad(ptr);
2014+
LoadInst *val = builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr);
20152015
add_tbaa_metadata(val, op->name, op->index);
20162016
vec = builder->CreateInsertElement(vec, val, ConstantInt::get(i32_t, i));
20172017
}
@@ -2023,7 +2023,7 @@ void CodeGen_LLVM::visit(const Load *op) {
20232023
for (int i = 0; i < op->type.lanes(); i++) {
20242024
Value *idx = builder->CreateExtractElement(index, ConstantInt::get(i32_t, i));
20252025
Value *ptr = codegen_buffer_pointer(op->name, op->type.element_of(), idx);
2026-
LoadInst *val = builder->CreateLoad(ptr);
2026+
LoadInst *val = builder->CreateLoad(ptr->getType()->getPointerElementType(), ptr);
20272027
add_tbaa_metadata(val, op->name, op->index);
20282028
vec = builder->CreateInsertElement(vec, val, ConstantInt::get(i32_t, i));
20292029
}
@@ -2315,7 +2315,7 @@ llvm::Value *CodeGen_LLVM::codegen_dense_vector_load(const Type &type, const std
23152315
load_inst = builder->CreateMaskedLoad(vec_ptr, align_bytes, slice_mask);
23162316
#endif
23172317
} else {
2318-
load_inst = builder->CreateAlignedLoad(vec_ptr, llvm::Align(align_bytes));
2318+
load_inst = builder->CreateAlignedLoad(vec_ptr->getType()->getPointerElementType(), vec_ptr, llvm::Align(align_bytes));
23192319
}
23202320
add_tbaa_metadata(load_inst, name, slice_index);
23212321
slices.push_back(load_inst);
@@ -2469,7 +2469,7 @@ void CodeGen_LLVM::codegen_atomic_store(const Store *op) {
24692469
Value *idx = builder->CreateExtractElement(vec_index, ConstantInt::get(i32_t, lane_id));
24702470
ptr = codegen_buffer_pointer(op->name, value_type.element_of(), idx);
24712471
}
2472-
LoadInst *orig = builder->CreateAlignedLoad(ptr, llvm::Align(value_type.bytes()));
2472+
LoadInst *orig = builder->CreateAlignedLoad(ptr->getType()->getPointerElementType(), ptr, llvm::Align(value_type.bytes()));
24732473
orig->setOrdering(AtomicOrdering::Monotonic);
24742474
add_tbaa_metadata(orig, op->name, op->index);
24752475
// Explicit fall through from the current block to the cas loop body.
@@ -3068,7 +3068,7 @@ void CodeGen_LLVM::visit(const Call *op) {
30683068
GlobalValue::PrivateLinkage,
30693069
ConstantPointerNull::get(base_fn->getType()),
30703070
global_name);
3071-
LoadInst *loaded_value = builder->CreateLoad(global);
3071+
LoadInst *loaded_value = builder->CreateLoad(global->getType()->getPointerElementType(), global);
30723072

30733073
BasicBlock *global_inited_bb = BasicBlock::Create(*context, "global_inited_bb", function);
30743074
BasicBlock *global_not_inited_bb = BasicBlock::Create(*context, "global_not_inited_bb", function);

0 commit comments

Comments
 (0)