diff options
author | Johannes Doerfert <johannes@jdoerfert.de> | 2022-03-16 15:53:32 -0500 |
---|---|---|
committer | Johannes Doerfert <johannes@jdoerfert.de> | 2022-04-05 23:07:13 -0500 |
commit | af30de7788e121ec626d412abb5bddebd7701aee (patch) | |
tree | be8e84b712e84e434266f772bddc7d476bd0109a /llvm/lib/Bitcode | |
parent | c42aa1be74cbe457779ae185b9d2c0fe0fa06fd9 (diff) | |
download | llvm-af30de7788e121ec626d412abb5bddebd7701aee.zip llvm-af30de7788e121ec626d412abb5bddebd7701aee.tar.gz llvm-af30de7788e121ec626d412abb5bddebd7701aee.tar.bz2 |
[Attributor] Introduce AAInstanceInfo
The Attributor, as many other parts in LLVM, uses pointer equivalence
for `llvm::Value`s. This only works as long as `llvm::Value`s are
dynamically unique, or, to be exact, we will never end up with the same
`llvm::Value` representing two dynamic instances. We already provided a
helper to check the former, namely `AA::isDynamicallyUnique`, however we
could not check the latter. In this patch we move the logic into a
separate AA which helps with the growing complexity and use cases. We
also extend the interface to answer the second question rather than the
first. So we do not determine dynamically uniqueness but if we might end
up with the `llvm::Value` describing a different dynamic instance. Note
that the latter is very much tied to the Attributor capabilities to look
through memory, recursion, etc. so we need to update the logic as we go.
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions