diff options
author | Kevin McAfee <kmcafee@nvidia.com> | 2024-08-16 11:48:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-16 11:48:57 -0700 |
commit | 3e7ca5f1efabb488663caec371e408d74c634d84 (patch) | |
tree | 604b83fe9a7c007dfeeed6375190dee6457c8720 /llvm/lib/Object/MachOObjectFile.cpp | |
parent | 51ede55ee2acd3383d990c5fc8882d4b021b87b4 (diff) | |
download | llvm-3e7ca5f1efabb488663caec371e408d74c634d84.zip llvm-3e7ca5f1efabb488663caec371e408d74c634d84.tar.gz llvm-3e7ca5f1efabb488663caec371e408d74c634d84.tar.bz2 |
[SDAG] Read-only intrinsics must have WillReturn and !Throws attributes to be treated as loads (#99999)
This change avoids deleting `!willReturn` intrinsics for which the
return value is unused when building the SDAG. Currently, calls to
read-only intrinsics not marked with `IntrWillReturn` cannot be deleted
at the LLVM IR level but may be deleted when building the SDAG.
These calls are unsafe to remove from the IR because the functions are
`!willReturn` and should also be unsafe to remove fromthe SDAG for
the same reason. This change aligns the behavior of the SDAG to that
of LLVM IR. This change also requires that intrinsics not have the
`Throws` attribute to be treated as loads for the same reason.
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions