================
@@ -119,24 +135,41 @@ template <typename LocationEnum> class MemoryEffectsBase {
setModRef(Loc, MR);
}
+ /// Create MemoryEffectsBase that can access any location with the given
+ /// ModRefInfo, excluding floating-point locations.
+ /// The boolean argument value is not used, it only allows to distinguish
+ /// between constructors.
+ MemoryEffectsBase(ModRefInfo MR, bool) {
+ for (Location Loc : mem_locations())
+ setModRef(Loc, MR);
+ }
+
/// Create MemoryEffectsBase that can read and write any memory.
static MemoryEffectsBase unknown() {
return MemoryEffectsBase(ModRefInfo::ModRef);
}
+ /// Create MemoryEffectsBase that can read and write any memory except
+ /// floating-point registers.
+ static MemoryEffectsBase unknown_mem() {
+ return MemoryEffectsBase(ModRefInfo::ModRef, false);
+ }
+
/// Create MemoryEffectsBase that cannot read or write any memory.
static MemoryEffectsBase none() {
return MemoryEffectsBase(ModRefInfo::NoModRef);
}
- /// Create MemoryEffectsBase that can read any memory.
+ /// Create MemoryEffectsBase that can read any memory excluding
floating-point
+ /// registers.
static MemoryEffectsBase readOnly() {
- return MemoryEffectsBase(ModRefInfo::Ref);
+ return MemoryEffectsBase(ModRefInfo::Ref, false);
}
- /// Create MemoryEffectsBase that can write any memory.
+ /// Create MemoryEffectsBase that can write any memory excluding
+ /// floating-point registers.
static MemoryEffectsBase writeOnly() {
- return MemoryEffectsBase(ModRefInfo::Mod);
+ return MemoryEffectsBase(ModRefInfo::Mod, false);
----------------
krzysz00 wrote:
Similarly
https://github.com/llvm/llvm-project/pull/221754
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits