File indexing completed on 2026-05-10 08:43:58
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef LLVM_IR_DBGVARIABLEFRAGMENTINFO_H
0013 #define LLVM_IR_DBGVARIABLEFRAGMENTINFO_H
0014
0015 #include <cstdint>
0016
0017 namespace llvm {
0018 struct DbgVariableFragmentInfo {
0019 DbgVariableFragmentInfo() = default;
0020 DbgVariableFragmentInfo(uint64_t SizeInBits, uint64_t OffsetInBits)
0021 : SizeInBits(SizeInBits), OffsetInBits(OffsetInBits) {}
0022 uint64_t SizeInBits;
0023 uint64_t OffsetInBits;
0024
0025 uint64_t startInBits() const { return OffsetInBits; }
0026
0027
0028 uint64_t endInBits() const { return OffsetInBits + SizeInBits; }
0029
0030
0031 static DbgVariableFragmentInfo intersect(DbgVariableFragmentInfo A,
0032 DbgVariableFragmentInfo B) {
0033
0034 uint64_t StartInBits =
0035 A.OffsetInBits > B.OffsetInBits ? A.OffsetInBits : B.OffsetInBits;
0036 uint64_t EndInBits =
0037 A.endInBits() < B.endInBits() ? A.endInBits() : B.endInBits();
0038 if (EndInBits <= StartInBits)
0039 return {0, 0};
0040 return DbgVariableFragmentInfo(EndInBits - StartInBits, StartInBits);
0041 }
0042 };
0043 }
0044
0045 #endif