llvm-project
a44ce1b9 - [mlir][debug] Convert DbgIntrOp to DebugRecords directly. (#154926)

Commit
33 days ago
[mlir][debug] Convert DbgIntrOp to DebugRecords directly. (#154926) Currently the `DbgDeclareOP/DbgValueOP/DbgLabelOp` are first converted to llvm debug intrinsics which are later translated to debug records by a call of `convertToNewDbgValues`. This is not only inefficient but also makes the code that works on intermediate IR unnecessarily complicated. The debug intrinsics are also being phased out. This PR converts these Ops directly to debug records. The conversion is relatively simple but there is a bit of code repetition due to how the APIs in the `DIBuilders` are named. There are few `cast<>` which I would like to do without but could not see a good way around them. Any suggestions welcome here. Also noticed that `DISubprogramAttr` is inherited from `DIScopeAttr` while in llvm, the `DISubprogram` inherits from `DILocalScope`. I am going to fix this separately and then we could use `FusedLocWith<LLVM::DILocalScopeAttr>` and cast to `DILocalScope` will be much safer. As the output remains the same, the existing tests cover this change. I also ran the `GDB` tests with flang and there was no regression. --------- Co-authored-by: Tobias Gysi <tobias.gysi@nextsilicon.com>
Author
Parents
Loading