aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAmy Kwan <amy.kwan1@ibm.com>2023-09-07 12:19:48 -0500
committerAmy Kwan <amy.kwan1@ibm.com>2023-09-07 20:05:29 -0500
commit3f46e5453d9310b15d974e876f6132e3cf50c4b1 (patch)
treead8f3eb5a28205b21def6e7e815774415732e72e /flang/lib/Frontend/CompilerInvocation.cpp
parent8bdbee8aaa76960c54cd0071455b92e9d60d8966 (diff)
downloadllvm-3f46e5453d9310b15d974e876f6132e3cf50c4b1.zip
llvm-3f46e5453d9310b15d974e876f6132e3cf50c4b1.tar.gz
llvm-3f46e5453d9310b15d974e876f6132e3cf50c4b1.tar.bz2
[AIX][TLS] Produce a faster local-exec access sequence with -maix-small-local-exec-tls (And optimize when load/store offsets are 0)
This patch utilizes the -maix-small-local-exec-tls option added in D155544 to produce a faster access sequence for the local-exec TLS model, where loading from the TOC can be avoided. The patch either produces an addi/la with a displacement off of r13 (the thread pointer) when the address is calculated, or it produces an addi/la followed by a load/store when the address is calculated and used for further accesses. This patch also optimizes this sequence a bit more where we can remove the addi/la when the load/store offset is 0. A follow up patch will be posted to account for when the load/store offset is non-zero, and currently in these situations we keep the addi/la that precedes the load/store. Furthermore, this access sequence is only performed for TLS variables that are less than ~32KB in size. Differential Revision: https://reviews.llvm.org/D155600
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions