aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Verifier.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2024-04-22 10:50:36 +0100
committerFlorian Hahn <flo@fhahn.com>2024-04-22 10:50:49 +0100
commitc8e5ad4e123a5fb082355947a896980464689c31 (patch)
treea1ed101b5f859b59e19c9f90a73fee3eced95c5a /llvm/lib/IR/Verifier.cpp
parent821935bb55449f708f822d0e381164ebbc33483c (diff)
downloadllvm-c8e5ad4e123a5fb082355947a896980464689c31.zip
llvm-c8e5ad4e123a5fb082355947a896980464689c31.tar.gz
llvm-c8e5ad4e123a5fb082355947a896980464689c31.tar.bz2
Revert "[TBAA] Add verifier for tbaa.struct metadata (#86709)"
This reverts commit 7dbba39e583a3fd64e7e6b947251c035e483f054. Revert as there are reports this triggers during ThinLTO in some configurations.
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
-rw-r--r--llvm/lib/IR/Verifier.cpp32
1 files changed, 0 insertions, 32 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 0d6db3d..edad3be 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -5123,9 +5123,6 @@ void Verifier::visitInstruction(Instruction &I) {
if (MDNode *TBAA = I.getMetadata(LLVMContext::MD_tbaa))
TBAAVerifyHelper.visitTBAAMetadata(I, TBAA);
- if (MDNode *TBAA = I.getMetadata(LLVMContext::MD_tbaa_struct))
- TBAAVerifyHelper.visitTBAAStructMetadata(I, TBAA);
-
if (MDNode *MD = I.getMetadata(LLVMContext::MD_noalias))
visitAliasScopeListMetadata(MD);
if (MDNode *MD = I.getMetadata(LLVMContext::MD_alias_scope))
@@ -7462,35 +7459,6 @@ bool TBAAVerifier::visitTBAAMetadata(Instruction &I, const MDNode *MD) {
return true;
}
-bool TBAAVerifier::visitTBAAStructMetadata(Instruction &I, const MDNode *MD) {
- CheckTBAA(MD->getNumOperands() % 3 == 0,
- "tbaa.struct operands must occur in groups of three", &I, MD);
-
- // Each group of three operands must consist of two integers and a
- // tbaa node. Moreover, the regions described by the offset and size
- // operands must be non-overlapping.
- std::optional<APInt> NextFree;
- for (unsigned int Idx = 0; Idx < MD->getNumOperands(); Idx += 3) {
- auto *OffsetCI =
- mdconst::dyn_extract_or_null<ConstantInt>(MD->getOperand(Idx));
- CheckTBAA(OffsetCI, "Offset must be a constant integer", &I, MD);
-
- auto *SizeCI =
- mdconst::dyn_extract_or_null<ConstantInt>(MD->getOperand(Idx + 1));
- CheckTBAA(SizeCI, "Size must be a constant integer", &I, MD);
-
- MDNode *TBAA = dyn_cast_or_null<MDNode>(MD->getOperand(Idx + 2));
- CheckTBAA(TBAA, "TBAA tag missing", &I, MD);
- visitTBAAMetadata(I, TBAA);
-
- bool NonOverlapping = !NextFree || NextFree->ule(OffsetCI->getValue());
- CheckTBAA(NonOverlapping, "Overlapping tbaa.struct regions", &I, MD);
-
- NextFree = OffsetCI->getValue() + SizeCI->getValue();
- }
- return true;
-}
-
char VerifierLegacyPass::ID = 0;
INITIALIZE_PASS(VerifierLegacyPass, "verify", "Module Verifier", false, false)