diff options
author | Nikita Popov <npopov@redhat.com> | 2022-08-01 08:16:54 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2022-08-03 10:05:55 +0200 |
commit | b128e057c191a441e3778ffc872ffca943b2e5b1 (patch) | |
tree | 50e6f33a00bef3ae52b442a0120710bad04ccc5f /llvm/lib/Analysis/BasicAliasAnalysis.cpp | |
parent | 34ae308c73e4d76dbdab25a6206d3fbc5ebafdf5 (diff) | |
download | llvm-b128e057c191a441e3778ffc872ffca943b2e5b1.zip llvm-b128e057c191a441e3778ffc872ffca943b2e5b1.tar.gz llvm-b128e057c191a441e3778ffc872ffca943b2e5b1.tar.bz2 |
[AA] Make ModRefInfo a bitmask enum (NFC)
Mark ModRefInfo as a bitmask enum, which allows using normal
& and | operators on it. This supersedes various functions like
unionModRef() and intersectModRef(). I think this makes the code
cleaner than going through helper functions...
Differential Revision: https://reviews.llvm.org/D130870
Diffstat (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index b534164..96a80fb 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -940,12 +940,12 @@ ModRefInfo BasicAAResult::getModRefInfo(const CallBase *Call, // Operand aliases 'Object', but call doesn't modify it. Strengthen // initial assumption and keep looking in case if there are more aliases. if (Call->onlyReadsMemory(OperandNo)) { - Result = setRef(Result); + Result |= ModRefInfo::Ref; continue; } // Operand aliases 'Object' but call only writes into it. if (Call->onlyWritesMemory(OperandNo)) { - Result = setMod(Result); + Result |= ModRefInfo::Mod; continue; } // This operand aliases 'Object' and call reads and writes into it. @@ -988,9 +988,9 @@ ModRefInfo BasicAAResult::getModRefInfo(const CallBase *Call, // It's also possible for Loc to alias both src and dest, or neither. ModRefInfo rv = ModRefInfo::NoModRef; if (SrcAA != AliasResult::NoAlias || Call->hasReadingOperandBundles()) - rv = setRef(rv); + rv |= ModRefInfo::Ref; if (DestAA != AliasResult::NoAlias || Call->hasClobberingOperandBundles()) - rv = setMod(rv); + rv |= ModRefInfo::Mod; return rv; } |