Skip to content

Commit 351dd80

Browse files
authored
[Codegen] Update LLVM version requirement for insertDeclare (#18123)
This PR fixes the codegen llvm version requirement. Prior to this PR, we use `dbg_info_->di_builder_->insertDeclare` when LLVM version is at least 19.0, while the new `insertDeclare` interface starts with LLVM 20: * 19.1.0: https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/include/llvm/IR/DIBuilder.h#L95-L98 * 20.1.0: https://github.com/llvm/llvm-project/blob/llvmorg-20.1.0/llvm/include/llvm/IR/DIBuilder.h#L950-L952 As a result, we may run into the following compilation error if the LLVM version happens to be 19: ``` /home/ruihangl/Workspace/tvm/src/target/llvm/codegen_llvm.cc:2251:42: error: no matching function for call to 'llvm::DIBuilder::insertDeclare(llvm::AllocaInst*&, llvm::DILocalVariable*&, llvm::DIExpression*, llvm::DebugLoc, llvm::BasicBlock::iterator)' 2251 | dbg_info_->di_builder_->insertDeclare( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2252 | paramAlloca, param, dbg_info_->di_builder_->createExpression(), llvm::DebugLoc(di_loc), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2253 | llvm::BasicBlock::iterator(store)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/ruihangl/Workspace/tvm/src/target/llvm/codegen_llvm.cc:2293:42: error: no matching function for call to 'llvm::DIBuilder::insertDeclare(llvm::Value*&, llvm::DILocalVariable*&, llvm::DIExpression*, llvm::DebugLoc, llvm::BasicBlock::iterator)' 2293 | dbg_info_->di_builder_->insertDeclare( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2294 | llvm_value, local_var, dbg_info_->di_builder_->createExpression(), llvm::DebugLoc(di_loc), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2295 | llvm::BasicBlock::iterator(insert_before)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` To fixed this, we update the version requirement to LLVM 20.
1 parent 045eb5b commit 351dd80

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/target/llvm/codegen_llvm.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2247,7 +2247,7 @@ void CodeGenLLVM::AddDebugInformation(llvm::Function* f_llvm, const Array<Type>&
22472247

22482248
auto* store = builder.CreateStore(iter_param, paramAlloca);
22492249
auto* di_loc = llvm::DILocation::get(*ctx, 0, 0, di_subprogram_);
2250-
#if TVM_LLVM_VERSION >= 190
2250+
#if TVM_LLVM_VERSION >= 200
22512251
dbg_info_->di_builder_->insertDeclare(
22522252
paramAlloca, param, dbg_info_->di_builder_->createExpression(), llvm::DebugLoc(di_loc),
22532253
llvm::BasicBlock::iterator(store));
@@ -2289,7 +2289,7 @@ void CodeGenLLVM::AddDebugInformation(llvm::Value* llvm_value, const Var& tir_va
22892289
auto* di_loc = llvm::DILocation::get(*llvm_target_->GetContext(), 0, 0, di_subprogram_);
22902290

22912291
if (insert_before) {
2292-
#if TVM_LLVM_VERSION >= 190
2292+
#if TVM_LLVM_VERSION >= 200
22932293
dbg_info_->di_builder_->insertDeclare(
22942294
llvm_value, local_var, dbg_info_->di_builder_->createExpression(), llvm::DebugLoc(di_loc),
22952295
llvm::BasicBlock::iterator(insert_before));

0 commit comments

Comments
 (0)