/// If the specified pointer "may" (or must) alias one of the members in the
/// set return the appropriate AliasResult. Otherwise return NoAlias.
AliasResult aliasesPointer(const Value *Ptr, LocationSize Size,
- const AAMDNodes &AAInfo, AAResults &AA) const;
+ const AAMDNodes &AAInfo, BatchAAResults &AA) const;
bool aliasesUnknownInst(const Instruction *Inst, BatchAAResults &AA) const;
};
///
AliasResult AliasSet::aliasesPointer(const Value *Ptr, LocationSize Size,
const AAMDNodes &AAInfo,
- AliasAnalysis &AA) const {
+ BatchAAResults &AA) const {
if (AliasAny)
return AliasResult::MayAlias;
bool &MustAliasAll) {
AliasSet *FoundSet = nullptr;
MustAliasAll = true;
+ BatchAAResults BatchAA(AA);
for (AliasSet &AS : llvm::make_early_inc_range(*this)) {
if (AS.Forward)
continue;
- AliasResult AR = AS.aliasesPointer(Ptr, Size, AAInfo, AA);
+ AliasResult AR = AS.aliasesPointer(Ptr, Size, AAInfo, BatchAA);
if (AR == AliasResult::NoAlias)
continue;