Skip to content

Commit 495efa9

Browse files
committed
address review comments
1 parent 39baae1 commit 495efa9

File tree

2 files changed

+23
-36
lines changed

2 files changed

+23
-36
lines changed

flang/lib/Optimizer/Transforms/AddDebugFoundation.cpp

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,24 +93,20 @@ void AddDebugFoundationPass::runOnOperation() {
9393
context, llvm::dwarf::getCallingConvention("DW_CC_normal"),
9494
{bT, bT});
9595
mlir::LLVM::DIFileAttr funcFileAttr = getFileAttr(funcFilePath);
96-
mlir::LLVM::DISubprogramAttr spAttr;
96+
9797
// Only definitions need a distinct identifier and a compilation unit.
98+
mlir::DistinctAttr id;
99+
mlir::LLVM::DICompileUnitAttr compilationUnit;
98100
if (!funcOp.isExternal()) {
99-
auto id = mlir::DistinctAttr::create(mlir::UnitAttr::get(context));
100-
spAttr = mlir::LLVM::DISubprogramAttr::get(
101-
context, id, cuAttr, fileAttr, funcName, funcName, funcFileAttr,
102-
/*line=*/1,
103-
/*scopeline=*/1, mlir::LLVM::DISubprogramFlags::Definition,
104-
subTypeAttr);
105-
} else {
106-
// TODO: Fix the subprogram flags once their modeling has been fixed.
107-
spAttr = mlir::LLVM::DISubprogramAttr::get(
108-
context, mlir::DistinctAttr(), mlir::LLVM::DICompileUnitAttr(),
109-
fileAttr, funcName, funcName, funcFileAttr,
110-
/*line=*/1,
111-
/*scopeline=*/1, mlir::LLVM::DISubprogramFlags::Definition,
112-
subTypeAttr);
101+
id = mlir::DistinctAttr::create(mlir::UnitAttr::get(context));
102+
compilationUnit = cuAttr;
113103
}
104+
mlir::LLVM::DISubprogramAttr spAttr = mlir::LLVM::DISubprogramAttr::get(
105+
context, id, compilationUnit, fileAttr, funcName, funcName,
106+
funcFileAttr,
107+
/*line=*/1,
108+
/*scopeline=*/1, mlir::LLVM::DISubprogramFlags::Definition,
109+
subTypeAttr);
114110
funcOp->setLoc(builder.getFusedLoc({funcOp->getLoc()}, spAttr));
115111
});
116112
}

mlir/lib/Dialect/LLVMIR/Transforms/DIScopeForLLVMFuncOp.cpp

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,28 +66,19 @@ static void addScopeToFunction(LLVM::LLVMFuncOp llvmFunc,
6666
LLVM::DISubroutineTypeAttr::get(context, llvm::dwarf::DW_CC_normal, {});
6767

6868
StringAttr funcNameAttr = llvmFunc.getNameAttr();
69-
mlir::LLVM::DISubprogramAttr subprogramAttr;
7069
// Only definitions need a distinct identifier and a compilation unit.
71-
if (!llvmFunc.isExternal()) {
72-
auto id = DistinctAttr::create(UnitAttr::get(context));
73-
subprogramAttr =
74-
LLVM::DISubprogramAttr::get(context, id, compileUnitAttr, fileAttr,
75-
funcNameAttr, funcNameAttr, fileAttr,
76-
/*line=*/line,
77-
/*scopeline=*/col,
78-
LLVM::DISubprogramFlags::Definition |
79-
LLVM::DISubprogramFlags::Optimized,
80-
subroutineTypeAttr);
81-
} else {
82-
subprogramAttr = LLVM::DISubprogramAttr::get(
83-
context, DistinctAttr(), LLVM::DICompileUnitAttr(), fileAttr,
84-
funcNameAttr, funcNameAttr, fileAttr,
85-
/*line=*/line,
86-
/*scopeline=*/col,
87-
LLVM::DISubprogramFlags::Definition |
88-
LLVM::DISubprogramFlags::Optimized,
89-
subroutineTypeAttr);
90-
}
70+
mlir::DistinctAttr id;
71+
if (!llvmFunc.isExternal())
72+
id = mlir::DistinctAttr::create(mlir::UnitAttr::get(context));
73+
else
74+
compileUnitAttr = {};
75+
mlir::LLVM::DISubprogramAttr subprogramAttr = LLVM::DISubprogramAttr::get(
76+
context, id, compileUnitAttr, fileAttr, funcNameAttr, funcNameAttr,
77+
fileAttr,
78+
/*line=*/line,
79+
/*scopeline=*/col,
80+
LLVM::DISubprogramFlags::Definition | LLVM::DISubprogramFlags::Optimized,
81+
subroutineTypeAttr);
9182
llvmFunc->setLoc(FusedLoc::get(context, {loc}, subprogramAttr));
9283
}
9384

0 commit comments

Comments
 (0)