[llvm] Extend MemoryEffects to Support Target-Specific Memory Locations (PR #148650)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 15 10:28:00 PDT 2025
================
@@ -374,7 +375,21 @@ void CodeGenIntrinsic::setProperty(const Record *R) {
ME &= MemoryEffects::argMemOnly();
else if (R->getName() == "IntrInaccessibleMemOnly")
ME &= MemoryEffects::inaccessibleMemOnly();
- else if (R->getName() == "IntrInaccessibleMemOrArgMemOnly")
+ else if (R->isSubClassOf("IntrRead")) {
+ MemoryEffects ReadMask = MemoryEffects::writeOnly();
+ for (const Record *RLoc : R->getValueAsListOfDefs("Loc"))
+ ReadMask = ReadMask.getWithModRef(getValueAsIRMemLocation(RLoc),
+ ModRefInfo::ModRef);
+ ME &= ReadMask;
+
+ } else if (R->isSubClassOf("IntrWrite")) {
+ MemoryEffects WriteMask = MemoryEffects::readOnly();
+ for (const Record *RLoc : R->getValueAsListOfDefs("Loc"))
----------------
CarolineConcatto wrote:
It was for Record, but I can change
https://github.com/llvm/llvm-project/pull/148650
More information about the llvm-commits
mailing list