[LoongArch] Add codegen support of GlobalTLSAddress lowering
authorwanglei <wanglei@loongson.cn>
Tue, 11 Oct 2022 09:43:59 +0000 (17:43 +0800)
committerWeining Lu <luweining@loongson.cn>
Tue, 11 Oct 2022 10:10:13 +0000 (18:10 +0800)
commitd1b526fb95c867ea816180194cbf4348f64d9c7e
tree4f9c5c958b8e1e6fff73c9215109355ab445677b
parent59bb8af4c307623ff39f66006e0d4a3fd6a7063f
[LoongArch] Add codegen support of GlobalTLSAddress lowering

There are static and dynamic TLS address lowering in DAG stage according
to different TLS models.

TLS address will be lowered to pseudo instruction and then expanded by
the `LoongArch Pre-RA pseudo instruction expansion` pass.

Differential Revision: https://reviews.llvm.org/D134713
llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
llvm/lib/Target/LoongArch/LoongArchISelLowering.h
llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp
llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h
llvm/test/CodeGen/LoongArch/tls-models.ll [new file with mode: 0644]