[all-commits] [llvm/llvm-project] 85be55: [LoongArch] Avoid scheduling relaxable code sequen...
ZhaoQi via All-commits
all-commits at lists.llvm.org
Mon Dec 30 01:20:14 PST 2024
Branch: refs/heads/users/zhaoqi5/avoid-scheduling-and-attach-relax
Home: https://github.com/llvm/llvm-project
Commit: 85be5541a23a859ad8e50bd75fb7ff35985c5988
https://github.com/llvm/llvm-project/commit/85be5541a23a859ad8e50bd75fb7ff35985c5988
Author: Qi Zhao <zhaoqi01 at loongson.cn>
Date: 2024-12-30 (Mon, 30 Dec 2024)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.h
M llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp
M llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
M llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
A llvm/test/CodeGen/LoongArch/linker-relaxation.ll
A llvm/test/CodeGen/LoongArch/mir-relax-flags.ll
M llvm/test/CodeGen/LoongArch/mir-target-flags.ll
Log Message:
-----------
[LoongArch] Avoid scheduling relaxable code sequence and attach relax relocs
If linker relaxation enabled, relaxable code sequence expanded
from pseudos should avoid being separated by instruction scheduling.
This commit tags scheduling boundary for them to avoid being
scheduled. (Except for `tls_le` and `call36/tail36`. Because
`tls_le` can be scheduled and have no influence to relax,
`call36/tail36` are expanded later in `LoongArchExpandPseudo` pass.)
A new mask target-flag is added to attach relax relocs to the
relaxable code sequence. (No need to add it for `tls_le` and
`call36/tail36` because of the reasons shown above.) Because of this,
get "direct" flags is necessary when using their target-flags.
In addition, code sequence after being optimized by `MergeBaseOffset`
pass may not relaxable any more, so the relax "bitmask" flag should
be removed.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list