Lines Matching defs:MemoryKind

100 enum class MemoryKind {
101 /// MemoryKind::Array: Models a one or multi-dimensional array
117 /// MemoryKind::Value: Models an llvm::Value
119 /// Memory objects of type MemoryKind::Value are used to model the data flow
156 /// MemoryKind::PHI: Models PHI nodes within the SCoP
158 /// Besides the MemoryKind::Value memory object used to model the normal
160 /// memory object of type MemoryKind::PHI to describe the forwarding of values
193 /// MemoryKind::ExitPHI: Models PHI nodes in the SCoP's exit block
196 /// used. The modeling used is identical to MemoryKind::PHI, with the
232 ArrayRef<const SCEV *> DimensionSizes, MemoryKind Kind,
281 if (Kind == MemoryKind::PHI || Kind == MemoryKind::ExitPHI ||
282 Kind == MemoryKind::Value)
322 MemoryKind getKind() const { return Kind; }
325 bool isValueKind() const { return Kind == MemoryKind::Value; }
337 bool isPHIKind() const { return Kind == MemoryKind::PHI; }
339 /// Is this array info modeling an MemoryKind::ExitPHI?
340 bool isExitPHIKind() const { return Kind == MemoryKind::ExitPHI; }
343 bool isArrayKind() const { return Kind == MemoryKind::Array; }
421 MemoryKind Kind;
487 /// @see MemoryKind
488 MemoryKind Kind;
536 /// The #BaseAddr of a memory access of kind MemoryKind::Array is the base
538 /// The #BaseAddr of a memory access of kind MemoryKind::PHI or
539 /// MemoryKind::ExitPHI is the PHI node itself.
540 /// The #BaseAddr of a memory access of kind MemoryKind::Value is the
556 /// For memory accesses of kind MemoryKind::Array the access instruction is
559 /// For memory accesses of kind MemoryKind::PHI or MemoryKind::ExitPHI the
564 /// For memory accesses of kind MemoryKind::Value the access instruction of a
576 /// - For array memory accesses (MemoryKind::Array) it is the loaded result
579 /// - For accesses of kind MemoryKind::Value it is the access instruction
581 /// - For accesses of kind MemoryKind::PHI or MemoryKind::ExitPHI it is the
713 Value *AccessValue, MemoryKind Kind);
932 MemoryKind getOriginalKind() const {
939 MemoryKind getLatestKind() const {
945 return getOriginalKind() == MemoryKind::Array;
951 return getLatestKind() == MemoryKind::Array;
960 /// Scalar accesses are accesses to MemoryKind::Value, MemoryKind::PHI or
961 /// MemoryKind::ExitPHI.
963 return getOriginalKind() != MemoryKind::Array;
969 return getLatestKind() != MemoryKind::Array;
977 return getOriginalKind() == MemoryKind::Value;
982 return getLatestKind() == MemoryKind::Value;
990 return getOriginalKind() == MemoryKind::PHI;
995 bool isLatestPHIKind() const { return getLatestKind() == MemoryKind::PHI; }
1003 return getOriginalKind() == MemoryKind::ExitPHI;
1010 return getLatestKind() == MemoryKind::ExitPHI;
1218 /// their MemoryKind::Value READ MemoryAccesses.
1222 /// elsewhere, mapped to their MemoryKind::Value WRITE MemoryAccesses.
1394 /// @return A list of array accesses (MemoryKind::Array) accessed by @p Inst.
1475 /// This can be a MemoryKind::Value if defined in another statement or a
1476 /// MemoryKind::PHI if the value is a PHINode in this statement.
1598 /// @return The already existing or newly created MemoryKind::Value READ
1723 std::map<std::pair<AssertingVH<const Value>, MemoryKind>,
1860 /// List of all uses (i.e. read MemoryAccesses) for a MemoryKind::Value
1864 /// List of all incoming values (write MemoryAccess) of a MemoryKind::PHI or
1865 /// MemoryKind::ExitPHI scalar.
2323 /// a MemoryKind::PHI WRITE to. For this purpose, it is not strictly required
2391 MemoryKind Kind,
2410 ScopArrayInfo *getScopArrayInfoOrNull(Value *BasePtr, MemoryKind Kind);
2419 ScopArrayInfo *getScopArrayInfo(Value *BasePtr, MemoryKind Kind);
2425 void invalidateScopArrayInfo(Value *BasePtr, MemoryKind Kind) {