[all-commits] [llvm/llvm-project] 38e8df: [AA][BasicAA] Move more call logic to BasicAA (#13...
Nikita Popov via All-commits
all-commits at lists.llvm.org
Wed Mar 19 07:45:14 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 38e8dff84ba1e2cf0260712d21dd429d74471d08
https://github.com/llvm/llvm-project/commit/38e8dff84ba1e2cf0260712d21dd429d74471d08
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-03-19 (Wed, 19 Mar 2025)
Changed paths:
M llvm/lib/Analysis/AliasAnalysis.cpp
M llvm/lib/Analysis/BasicAliasAnalysis.cpp
M llvm/test/Analysis/BasicAA/call.ll
Log Message:
-----------
[AA][BasicAA] Move more call logic to BasicAA (#131144)
Currently, the handling for calls is split between AA and BasicAA in an
awkward way. BasicAA does argument alias analysis for non-escaping
objects (but without considering MemoryEffects), while AA handles the
generic case using MemoryEffects. However, fundamentally, both of these
are really trying to do the same thing.
The new merged logic first tries to remove the OtherMR component of the
memory effects, which includes accesses to escaped memory. If a
function-local object does not escape, OtherMR can be set to NoModRef.
Then we perform the argument scan in basically the same way as AA
previously did. However, we also need to look at the operand bundles. To
support that, I've adjusted getArgModRefInfo to accept operand bundle
arguments.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list