[llvm] [JITLink] Add GOT indirection optimization for SystemZ (PR #171919)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 14 07:39:45 PST 2025
================
@@ -219,6 +219,24 @@ enum EdgeKind_systemz : Edge::Kind {
///
DeltaPLT32dbl,
+ /// Relaxable version of DeltaPLT32dbl.
+ ///
+ /// The edge kind has the same fixup expression as DeltaPLT32dbl,
+ /// but identifies the call/branch as being to a pointer jump stub that may be
+ /// bypassed with a direct jump to the ultimate target if the ultimate target
+ /// is within range of the fixup location.
+ ///
+ /// Fixup expression:
+ /// Fixup <- (Target - Fixup + Addend) >> 1 : int32
+ ///
+ /// Errors:
+ /// - The result of the fixup expression before shifting right by 1 must
+ /// fit into an int33, otherwise an out-of-range error will be returned.
+ /// - The result of the fixup expression before shifting right by 1 must
+ /// be multiple of 2, otherwise an alignment error will be returned.
+ ///
+ Delta32dblToPtrJumpStubBypassable,
----------------
anoopkg6 wrote:
DeltaPLT32dbl relocation edge will not have plt stubs created for local function call. optimizeGOTAndStubAccesses works only for the case where stub has already been created.
https://github.com/llvm/llvm-project/pull/171919
More information about the llvm-commits
mailing list