[Mlir-commits] [mlir] c3f8c34 - [mlir][debug] Inherit DISubprogramAttr from DILocalScopeAttr. (#156081)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Sep 2 06:24:31 PDT 2025
Author: Abid Qadeer
Date: 2025-09-02T14:24:28+01:00
New Revision: c3f8c340d7b6aef7d9bf7facccfe34dc8a353332
URL: https://github.com/llvm/llvm-project/commit/c3f8c340d7b6aef7d9bf7facccfe34dc8a353332
DIFF: https://github.com/llvm/llvm-project/commit/c3f8c340d7b6aef7d9bf7facccfe34dc8a353332.diff
LOG: [mlir][debug] Inherit DISubprogramAttr from DILocalScopeAttr. (#156081)
As mentioned in https://github.com/llvm/llvm-project/pull/154926,
`DISubprogramAttr` is inherited from `DIScopeAttr` while in llvm, the
`DISubprogram` inherits from `DILocalScope`. This change corrects the
hierarchy.
Also does the same change for `DILexicalBlockAttr` and `DILexicalBlockFileAttr`.
Added:
Modified:
mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
index 32670a78a40f9..fc5c5f987ca4d 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
@@ -590,7 +590,7 @@ def LLVM_DIGlobalVariable : LLVM_Attr<"DIGlobalVariable", "di_global_variable",
//===----------------------------------------------------------------------===//
def LLVM_DILexicalBlockAttr : LLVM_Attr<"DILexicalBlock", "di_lexical_block",
- /*traits=*/[], "DIScopeAttr"> {
+ /*traits=*/[], "DILocalScopeAttr"> {
let parameters = (ins
"DIScopeAttr":$scope,
OptionalParameter<"DIFileAttr">:$file,
@@ -616,7 +616,7 @@ def LLVM_DILexicalBlockAttr : LLVM_Attr<"DILexicalBlock", "di_lexical_block",
//===----------------------------------------------------------------------===//
def LLVM_DILexicalBlockFile : LLVM_Attr<"DILexicalBlockFile", "di_lexical_block_file",
- /*traits=*/[], "DIScopeAttr"> {
+ /*traits=*/[], "DILocalScopeAttr"> {
let parameters = (ins
"DIScopeAttr":$scope,
OptionalParameter<"DIFileAttr">:$file,
@@ -674,7 +674,7 @@ def LLVM_DILocalVariableAttr : LLVM_Attr<"DILocalVariable", "di_local_variable",
def LLVM_DISubprogramAttr : LLVM_Attr<"DISubprogram", "di_subprogram",
[LLVM_DIRecursiveTypeAttrInterface],
- "DIScopeAttr"> {
+ "DILocalScopeAttr"> {
let parameters = (ins
// DIRecursiveTypeAttrInterface specific parameters.
OptionalParameter<"DistinctAttr">:$recId,
diff --git a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
index 3b7e6eda0841d..fd8463ad1a8e2 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
@@ -362,7 +362,8 @@ static void convertModuleFlagsOp(ArrayAttr flags, llvm::IRBuilderBase &builder,
static llvm::DILocalScope *
getLocalScopeFromLoc(llvm::IRBuilderBase &builder, Location loc,
LLVM::ModuleTranslation &moduleTranslation) {
- if (auto scopeLoc = loc->findInstanceOf<FusedLocWith<LLVM::DIScopeAttr>>())
+ if (auto scopeLoc =
+ loc->findInstanceOf<FusedLocWith<LLVM::DILocalScopeAttr>>())
if (auto *localScope = llvm::dyn_cast<llvm::DILocalScope>(
moduleTranslation.translateDebugInfo(scopeLoc.getMetadata())))
return localScope;
More information about the Mlir-commits
mailing list