aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2023-06-29 08:07:11 -0700
committerArnold Schwaighofer <aschwaighofer@apple.com>2023-06-29 08:33:45 -0700
commit98eb8abff6ad5c2e2f95fd1189b35a24f2800b32 (patch)
tree3b129ee5f5dddd975a0138d911213ba6edb6cc6f /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parente12ffe6a93505e590158ddd8cc73a4f201bbf0aa (diff)
downloadllvm-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.cpp1
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());