Skip to content

Conversation

@MasterJH5574
Copy link
Contributor

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:

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.

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.
@MasterJH5574 MasterJH5574 force-pushed the tvm-dev/2025-07-07-llvm-version branch from c328397 to 304ee7a Compare July 7, 2025 20:14
@yongwww yongwww merged commit 351dd80 into apache:main Jul 7, 2025
13 checks passed
ShiboXing pushed a commit to ShiboXing/tvm that referenced this pull request Aug 10, 2025
…#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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants