[LoongArch] Reimplement the expansion of PseudoLA*_LARGE instructions (#76555)
commitc56a5e895a96fec4292e9333d998cfa88770432a
authorwanglei <wanglei@loongson.cn>
Tue, 2 Jan 2024 02:57:15 +0000 (2 10:57 +0800)
committerwanglei <wanglei@loongson.cn>
Fri, 5 Jan 2024 02:57:53 +0000 (5 10:57 +0800)
treebce31b1fce5d1ae66df533c9214d117df7188b35
parent3d6fc35b9071009c5ef37f879a12982c6a54db60
[LoongArch] Reimplement the expansion of PseudoLA*_LARGE instructions (#76555)

According to the description of the psABI v2.30:
https://github.com/loongson/la-abi-specs/releases/tag/v2.30, moved the
expansion of relevant pseudo-instructions from
`LoongArchPreRAExpandPseudo` pass to `LoongArchExpandPseudo` pass, to
ensure that the code sequences of `PseudoLA*_LARGE` instructions and
Medium code model's function call are not scheduled.
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/test/CodeGen/LoongArch/code-models.ll
llvm/test/CodeGen/LoongArch/expand-call.ll
llvm/test/CodeGen/LoongArch/global-address.ll
llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
llvm/test/CodeGen/LoongArch/tls-models.ll