diff options
author | Arnold Schwaighofer <aschwaighofer@apple.com> | 2023-06-29 08:07:11 -0700 |
---|---|---|
committer | Arnold Schwaighofer <aschwaighofer@apple.com> | 2023-06-29 08:33:45 -0700 |
commit | 98eb8abff6ad5c2e2f95fd1189b35a24f2800b32 (patch) | |
tree | 3b129ee5f5dddd975a0138d911213ba6edb6cc6f /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | e12ffe6a93505e590158ddd8cc73a4f201bbf0aa (diff) | |
download | llvm-98eb8abff6ad5c2e2f95fd1189b35a24f2800b32.zip llvm-98eb8abff6ad5c2e2f95fd1189b35a24f2800b32.tar.gz llvm-98eb8abff6ad5c2e2f95fd1189b35a24f2800b32.tar.bz2 |
Add a type_checked_load_relative to support relative function pointer tables
This adds a type_checked_load_relative intrinsic whose semantics it is to
load a relative function pointer.
A relative function pointer is a pointer to a 32bit value that when
added to its address yields the address of the function.
Differential Revision: https://reviews.llvm.org/D143204
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp index 3830edc..fd125ac 100644 --- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp +++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp @@ -198,6 +198,7 @@ static void addIntrinsicToSummary( break; } + case Intrinsic::type_checked_load_relative: case Intrinsic::type_checked_load: { auto *TypeMDVal = cast<MetadataAsValue>(CI->getArgOperand(2)); auto *TypeId = dyn_cast<MDString>(TypeMDVal->getMetadata()); |