aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/ModRefTest.cpp
diff options
context:
space:
mode:
authorgoldsteinn <35538541+goldsteinn@users.noreply.github.com>2024-10-01 11:45:32 -0500
committerGitHub <noreply@github.com>2024-10-01 11:45:32 -0500
commitafc0557a04e333b67b96f8fce83b949ddb40fe2a (patch)
tree7d8635ad98cfd4d55e3bfcbed38733afb06d893b /llvm/unittests/Support/ModRefTest.cpp
parent0dab02258addb0c93a7c9b4143cbbf130f36f73f (diff)
downloadllvm-afc0557a04e333b67b96f8fce83b949ddb40fe2a.zip
llvm-afc0557a04e333b67b96f8fce83b949ddb40fe2a.tar.gz
llvm-afc0557a04e333b67b96f8fce83b949ddb40fe2a.tar.bz2
[IR][Attribute] Add support for intersecting AttributeLists; NFC (#109719)
Add support for taking the intersection of two AttributeLists s.t the result list contains attributes that are valid in the context of both inputs. i.e if we have `nonnull align(32) noundef` intersected with `nonnull align(16) dereferenceable(10)`, the result is `nonnull align(16)`. Further it handles attributes that are not-droppable. For example dropping `byval` can change the nature of a callsite/function so its impossible to correct a correct intersection if its dropped from the result. i.e `nonnull byval(i64)` intersected with `nonnull` is invalid. The motivation for the infrastructure is to enable sinking/hoisting callsites with differing attributes.
Diffstat (limited to 'llvm/unittests/Support/ModRefTest.cpp')
0 files changed, 0 insertions, 0 deletions