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.
17 lines
550 B
LLVM
17 lines
550 B
LLVM
; RUN: llc --mtriple=loongarch64 --stop-before loongarch-prera-expand-pseudo \
|
|
; RUN: --verify-machineinstrs < %s | FileCheck %s --check-prefix=NOEXPAND
|
|
; RUN: llc --mtriple=loongarch64 --stop-before machine-opt-remark-emitter \
|
|
; RUN: --verify-machineinstrs < %s | FileCheck %s --check-prefix=EXPAND
|
|
|
|
declare void @callee()
|
|
|
|
define void @caller() nounwind {
|
|
; NOEXPAND-LABEL: name: caller
|
|
; NOEXPAND: PseudoCALL target-flags{{.*}}callee
|
|
;
|
|
; EXPAND-LABEL: name: caller
|
|
; EXPAND: BL target-flags{{.*}}callee
|
|
call void @callee()
|
|
ret void
|
|
}
|