[PATCH] D155600: [AIX][TLS] Produce a faster local-exec access sequence with -maix-small-local-exec-tls (And optimize when load/store offsets are 0)
Hubert Tong via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 18 22:51:32 PDT 2023
hubert.reinterpretcast added inline comments.
================
Comment at: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1578-1579
+
+ // Only handle custom assembly printing when compiling on AIX,
+ // with -maix-small-local-exec-tls on.
+ if (!Subtarget->hasAIXSmallLocalExecTLS())
----------------
Fix sentence to make statement based on target and not host.
================
Comment at: llvm/lib/Target/PowerPC/PPCISelLowering.cpp:3366
+ if (HasAIXSmallLocalExecTLS &&
+ (GVTypeSize < (AIXTLSUpperDisplacement - 8)))
+ return DAG.getNode(PPCISD::Lo, dl, PtrVT, VariableOffsetTGA, TLSReg);
----------------
What does `AIXTLSUpperDisplacement` represent? It is already given a value of 32K - 8. Should the hard coded subtraction be here, should the value of `AIXTLSUpperDisplacement` be further adjusted instead, or is there unintentional double adjustment happening?
For reference, I encountered no issues linking the result of assembly that performs `la` (using the subject access pattern) for the past-the-end address of a 32K - 1 local-exec TLS variable.
================
Comment at: llvm/lib/Target/PowerPC/PPCISelLowering.cpp:3382
+ report_fatal_error("The small-local-exec TLS access sequence is "
+ "currently on supported on AIX (64-bit mode).");
+ }
----------------
Typo fix: "on supported" -> "only supported"
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D155600/new/
https://reviews.llvm.org/D155600
More information about the llvm-commits
mailing list