21#include <mlir/Analysis/DataFlowFramework.h>
23#include <llvm/Support/Debug.h>
28#define GEN_PASS_DEF_ENFORCENOMEMBEROVERWRITEPASS
32#define DEBUG_TYPE "llzk-enforce-no-overwrites-pass"
39 using Base = EnforceNoMemberOverwritePassBase<PassImpl>;
42 void runOnOperation()
override {
48 const auto &[overwrites, written] = *result;
51 if (!written.contains(member.getSymName())) {
56 if (!overwrites.empty()) {
::std::vector< MemberDefOp > getMemberDefs()
Get all MemberDefOp in this structure.
llvm::FailureOr< std::pair< llvm::SetVector< Overwrite >, FuzzySet > > analyzeStruct(component::StructDefOp structDef)