[Mlir-commits] [mlir] [MLIR] Improve translation of DISubrange. (PR #93689)
Abid Qadeer
llvmlistbot at llvm.org
Thu May 30 04:29:36 PDT 2024
================
@@ -217,21 +217,34 @@ DISubprogramAttr DebugImporter::translateImpl(llvm::DISubprogram *node) {
}
DISubrangeAttr DebugImporter::translateImpl(llvm::DISubrange *node) {
- auto getIntegerAttrOrNull = [&](llvm::DISubrange::BoundType data) {
- if (auto *constInt = llvm::dyn_cast_or_null<llvm::ConstantInt *>(data))
+ auto getAttrOrNull =
+ [&](llvm::DISubrange::BoundType data) -> mlir::Attribute {
+ if (data.isNull())
+ return nullptr;
+
+ if (auto *constInt = llvm::dyn_cast<llvm::ConstantInt *>(data)) {
return IntegerAttr::get(IntegerType::get(context, 64),
constInt->getSExtValue());
- return IntegerAttr();
+ } else if (auto *expr = llvm::dyn_cast<llvm::DIExpression *>(data)) {
+ return translateExpression(expr);
+ } else if (auto *var = llvm::dyn_cast<llvm::DIVariable *>(data)) {
+ if (auto *local = llvm::dyn_cast<llvm::DILocalVariable>(var))
+ return translate(local);
+ else if (auto *global = llvm::dyn_cast<llvm::DIGlobalVariable>(var))
+ return translate(global);
+ llvm_unreachable("Unknown variable type");
+ }
+ llvm_unreachable("Unknown DISubrange::BoundType");
----------------
abidh wrote:
I have changed it to return nullptr. I was trying to guard against any changes in things that `DISubrange` can accept but I think that is quite unlikely.
https://github.com/llvm/llvm-project/pull/93689
More information about the Mlir-commits
mailing list