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.
Paths
| Differential D143204
Add a type_checked_load_relative to support relative function pointer tables ClosedPublic Authored by aschwaighofer on Feb 2 2023, 11:09 AM.
Details Summary This adds a type_checked_load_relative intrinsic whose semantics it is to A relative function pointer is a pointer to a 32bit value that when
Diff Detail
Event TimelineComment Actions Can we also get a test with llvm.type.checked.load.relative where the call *doesn't* get devirtualized? Comment Actions Include test case where the llvm.type.checked.load.relative intrinsic is Closed by commit rG98eb8abff6ad: Add a type_checked_load_relative to support relative function pointer tables (authored by aschwaighofer). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 535820 llvm/docs/LangRef.rst
llvm/include/llvm/IR/Intrinsics.td
llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
llvm/lib/Analysis/TypeMetadataUtils.cpp
llvm/lib/LTO/LTO.cpp
llvm/lib/Transforms/IPO/GlobalDCE.cpp
llvm/lib/Transforms/IPO/GlobalSplit.cpp
llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-check-relative.ll
llvm/test/Transforms/WholeProgramDevirt/expand-check-relative.ll
|