[llvm] ae76729 - Revert "[DebugInfo] Expose Fortran array debug info attributes through DIBuilder."
Mitch Phillips via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 27 21:01:32 PDT 2020
Author: Mitch Phillips
Date: 2020-10-27T20:50:51-07:00
New Revision: ae76729a015478fdfe1477653c36bfe390445f0d
URL: https://github.com/llvm/llvm-project/commit/ae76729a015478fdfe1477653c36bfe390445f0d
DIFF: https://github.com/llvm/llvm-project/commit/ae76729a015478fdfe1477653c36bfe390445f0d.diff
LOG: Revert "[DebugInfo] Expose Fortran array debug info attributes through DIBuilder."
This reverts commit 5b3bf8b453b8cc00efd5269009a1e63c4442a30e.
This caused a regression in the ASan buildbot. See comments at
https://reviews.llvm.org/D89817 for more information.
Added:
Modified:
llvm/include/llvm/IR/DIBuilder.h
llvm/lib/IR/DIBuilder.cpp
llvm/unittests/IR/DebugInfoTest.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/IR/DIBuilder.h b/llvm/include/llvm/IR/DIBuilder.h
index e337b8beca9a..0c788a173859 100644
--- a/llvm/include/llvm/IR/DIBuilder.h
+++ b/llvm/include/llvm/IR/DIBuilder.h
@@ -494,24 +494,8 @@ namespace llvm {
/// \param AlignInBits Alignment.
/// \param Ty Element type.
/// \param Subscripts Subscripts.
- /// \param DataLocation The location of the raw data of a descriptor-based
- /// Fortran array, either a DIExpression* or
- /// a DIVariable*.
- /// \param Associated The associated attribute of a descriptor-based
- /// Fortran array, either a DIExpression* or
- /// a DIVariable*.
- /// \param Allocated The allocated attribute of a descriptor-based
- /// Fortran array, either a DIExpression* or
- /// a DIVariable*.
- /// \param Rank The rank attribute of a descriptor-based
- /// Fortran array, either a DIExpression* or
- /// a DIVariable*.
- DICompositeType *createArrayType(
- uint64_t Size, uint32_t AlignInBits, DIType *Ty, DINodeArray Subscripts,
- PointerUnion<DIExpression *, DIVariable *> DataLocation = nullptr,
- PointerUnion<DIExpression *, DIVariable *> Associated = nullptr,
- PointerUnion<DIExpression *, DIVariable *> Allocated = nullptr,
- PointerUnion<DIExpression *, DIVariable *> Rank = nullptr);
+ DICompositeType *createArrayType(uint64_t Size, uint32_t AlignInBits,
+ DIType *Ty, DINodeArray Subscripts);
/// Create debugging information entry for a vector type.
/// \param Size Array size.
diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp
index 042f069395ad..6717aa637e45 100644
--- a/llvm/lib/IR/DIBuilder.cpp
+++ b/llvm/lib/IR/DIBuilder.cpp
@@ -525,24 +525,12 @@ DICompositeType *DIBuilder::createEnumerationType(
return CTy;
}
-DICompositeType *DIBuilder::createArrayType(
- uint64_t Size, uint32_t AlignInBits, DIType *Ty, DINodeArray Subscripts,
- PointerUnion<DIExpression *, DIVariable *> DL,
- PointerUnion<DIExpression *, DIVariable *> AS,
- PointerUnion<DIExpression *, DIVariable *> AL,
- PointerUnion<DIExpression *, DIVariable *> RK) {
- auto *R = DICompositeType::get(
- VMContext, dwarf::DW_TAG_array_type, "", nullptr, 0,
- nullptr, Ty, Size, AlignInBits, 0, DINode::FlagZero,
- Subscripts, 0, nullptr, nullptr, "", nullptr,
- DL.is<DIExpression *>() ? (Metadata *)DL.get<DIExpression *>()
- : (Metadata *)DL.get<DIVariable *>(),
- AS.is<DIExpression *>() ? (Metadata *)AS.get<DIExpression *>()
- : (Metadata *)AS.get<DIVariable *>(),
- AL.is<DIExpression *>() ? (Metadata *)AL.get<DIExpression *>()
- : (Metadata *)AL.get<DIVariable *>(),
- RK.is<DIExpression *>() ? (Metadata *)RK.get<DIExpression *>()
- : (Metadata *)RK.get<DIVariable *>());
+DICompositeType *DIBuilder::createArrayType(uint64_t Size,
+ uint32_t AlignInBits, DIType *Ty,
+ DINodeArray Subscripts) {
+ auto *R = DICompositeType::get(VMContext, dwarf::DW_TAG_array_type, "",
+ nullptr, 0, nullptr, Ty, Size, AlignInBits, 0,
+ DINode::FlagZero, Subscripts, 0, nullptr);
trackIfUnresolved(R);
return R;
}
diff --git a/llvm/unittests/IR/DebugInfoTest.cpp b/llvm/unittests/IR/DebugInfoTest.cpp
index f49ceee6dd07..900823a1d16e 100644
--- a/llvm/unittests/IR/DebugInfoTest.cpp
+++ b/llvm/unittests/IR/DebugInfoTest.cpp
@@ -7,7 +7,6 @@
//===----------------------------------------------------------------------===//
#include "llvm/IR/DebugInfo.h"
-#include "llvm/IR/DIBuilder.h"
#include "llvm/AsmParser/Parser.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/IntrinsicInst.h"
@@ -186,44 +185,4 @@ TEST(MetadataTest, DeleteInstUsedByDbgValue) {
EXPECT_TRUE(isa<UndefValue>(DVIs[0]->getValue()));
}
-TEST(DIBuilder, CreateFortranArrayTypeWithAttributes) {
- LLVMContext Ctx;
- std::unique_ptr<Module> M(new Module("MyModule", Ctx));
- DIBuilder DIB(*M);
-
- DISubrange *Subrange = DIB.getOrCreateSubrange(1,1);
- SmallVector<Metadata*, 4> Subranges;
- Subranges.push_back(Subrange);
- DINodeArray Subscripts = DIB.getOrCreateArray(Subranges);
-
- auto getDIExpression = [&DIB](int offset) {
- SmallVector<uint64_t, 4> ops;
- ops.push_back(llvm::dwarf::DW_OP_push_object_address);
- DIExpression::appendOffset(ops, offset);
- ops.push_back(llvm::dwarf::DW_OP_deref);
-
- return DIB.createExpression(ops);
- };
-
- DIFile *F = DIB.createFile("main.c", "/");
- DICompileUnit *CU = DIB.createCompileUnit(
- dwarf::DW_LANG_C, DIB.createFile("main.c", "/"), "llvm-c", true, "", 0);
-
- DIVariable *DataLocation =
- DIB.createTempGlobalVariableFwdDecl(CU, "dl", "_dl", F, 1, nullptr, true);
- DIExpression *Associated = getDIExpression(1);
- DIExpression *Allocated = getDIExpression(2);
- DIExpression *Rank = DIB.createConstantValueExpression(3);
-
- DICompositeType *ArrayType = DIB.createArrayType(0, 0, nullptr, Subscripts,
- DataLocation, Associated,
- Allocated, Rank);
-
- EXPECT_TRUE(isa_and_nonnull<DICompositeType>(ArrayType));
- EXPECT_EQ(ArrayType->getRawDataLocation(), DataLocation);
- EXPECT_EQ(ArrayType->getRawAssociated(), Associated);
- EXPECT_EQ(ArrayType->getRawAllocated(), Allocated);
- EXPECT_EQ(ArrayType->getRawRank(), Rank);
-}
-
} // end namespace
More information about the llvm-commits
mailing list