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 535443 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
 
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||