-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[LoongArch] Pre-commit tests for tls-desc scheduling. NFC #121538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Code sequence for tls-desc in large code model is not expected to be scheduled according to psABI 2.30. A later commit will fix it.
@llvm/pr-subscribers-backend-loongarch Author: ZhaoQi (zhaoqi5) ChangesCode sequence for tls-desc in large code model is not expected to be scheduled according to psABI 2.30. A later commit will fix it. Full diff: https://github.com/llvm/llvm-project/pull/121538.diff 1 Files Affected:
diff --git a/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll b/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
index c7de3dcf2ecfd2..1773b8e0149974 100644
--- a/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
+++ b/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll
@@ -1,4 +1,3 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --post-RA-scheduler=0 < %s \
; RUN: | FileCheck %s --check-prefix=MEDIUM_NO_SCH
; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --post-RA-scheduler=1 < %s \
@@ -7,6 +6,14 @@
; RUN: | FileCheck %s --check-prefix=LARGE_NO_SCH
; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=large --relocation-model=pic --post-RA-scheduler=1 < %s \
; RUN: | FileCheck %s --check-prefix=LARGE_SCH
+; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --enable-tlsdesc \
+; RUN: --post-RA-scheduler=0 < %s | FileCheck %s --check-prefix=MEDIUMDESC_NO_SCH
+; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=medium --relocation-model=pic --enable-tlsdesc \
+; RUN: --post-RA-scheduler=1 < %s | FileCheck %s --check-prefix=MEDIUMDESC_SCH
+; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=large --relocation-model=pic --enable-tlsdesc \
+; RUN: --post-RA-scheduler=0 < %s | FileCheck %s --check-prefix=LARGEDESC_NO_SCH
+; RUN: llc --mtriple=loongarch64 -mattr=+d --code-model=large --relocation-model=pic --enable-tlsdesc \
+; RUN: --post-RA-scheduler=1 < %s | FileCheck %s --check-prefix=LARGEDESC_SCH
@g = dso_local global i64 zeroinitializer, align 4
@G = global i64 zeroinitializer, align 4
@@ -194,3 +201,69 @@ define void @foo() nounwind {
%v_ie = load volatile i64, ptr @ie
ret void
}
+
+define void @baz() nounwind {
+; MEDIUMDESC_NO_SCH-LABEL: baz:
+; MEDIUMDESC_NO_SCH: # %bb.0:
+; MEDIUMDESC_NO_SCH-NEXT: addi.d $sp, $sp, -16
+; MEDIUMDESC_NO_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
+; MEDIUMDESC_NO_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd)
+; MEDIUMDESC_NO_SCH-NEXT: addi.d $a0, $a0, %desc_pc_lo12(gd)
+; MEDIUMDESC_NO_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd)
+; MEDIUMDESC_NO_SCH-NEXT: jirl $ra, $ra, %desc_call(gd)
+; MEDIUMDESC_NO_SCH-NEXT: add.d $a0, $a0, $tp
+; MEDIUMDESC_NO_SCH-NEXT: ld.d $zero, $a0, 0
+; MEDIUMDESC_NO_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
+; MEDIUMDESC_NO_SCH-NEXT: addi.d $sp, $sp, 16
+; MEDIUMDESC_NO_SCH-NEXT: ret
+;
+; MEDIUMDESC_SCH-LABEL: baz:
+; MEDIUMDESC_SCH: # %bb.0:
+; MEDIUMDESC_SCH-NEXT: addi.d $sp, $sp, -16
+; MEDIUMDESC_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
+; MEDIUMDESC_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd)
+; MEDIUMDESC_SCH-NEXT: addi.d $a0, $a0, %desc_pc_lo12(gd)
+; MEDIUMDESC_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd)
+; MEDIUMDESC_SCH-NEXT: jirl $ra, $ra, %desc_call(gd)
+; MEDIUMDESC_SCH-NEXT: add.d $a0, $a0, $tp
+; MEDIUMDESC_SCH-NEXT: ld.d $zero, $a0, 0
+; MEDIUMDESC_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
+; MEDIUMDESC_SCH-NEXT: addi.d $sp, $sp, 16
+; MEDIUMDESC_SCH-NEXT: ret
+;
+; LARGEDESC_NO_SCH-LABEL: baz:
+; LARGEDESC_NO_SCH: # %bb.0:
+; LARGEDESC_NO_SCH-NEXT: addi.d $sp, $sp, -16
+; LARGEDESC_NO_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
+; LARGEDESC_NO_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd)
+; LARGEDESC_NO_SCH-NEXT: addi.d $a1, $zero, %desc_pc_lo12(gd)
+; LARGEDESC_NO_SCH-NEXT: lu32i.d $a1, %desc64_pc_lo20(gd)
+; LARGEDESC_NO_SCH-NEXT: lu52i.d $a1, $a1, %desc64_pc_hi12(gd)
+; LARGEDESC_NO_SCH-NEXT: add.d $a0, $a0, $a1
+; LARGEDESC_NO_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd)
+; LARGEDESC_NO_SCH-NEXT: jirl $ra, $ra, %desc_call(gd)
+; LARGEDESC_NO_SCH-NEXT: add.d $a0, $a0, $tp
+; LARGEDESC_NO_SCH-NEXT: ld.d $zero, $a0, 0
+; LARGEDESC_NO_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
+; LARGEDESC_NO_SCH-NEXT: addi.d $sp, $sp, 16
+; LARGEDESC_NO_SCH-NEXT: ret
+;
+; LARGEDESC_SCH-LABEL: baz:
+; LARGEDESC_SCH: # %bb.0:
+; LARGEDESC_SCH-NEXT: addi.d $sp, $sp, -16
+; LARGEDESC_SCH-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
+; LARGEDESC_SCH-NEXT: addi.d $a1, $zero, %desc_pc_lo12(gd)
+; LARGEDESC_SCH-NEXT: pcalau12i $a0, %desc_pc_hi20(gd)
+; LARGEDESC_SCH-NEXT: lu32i.d $a1, %desc64_pc_lo20(gd)
+; LARGEDESC_SCH-NEXT: lu52i.d $a1, $a1, %desc64_pc_hi12(gd)
+; LARGEDESC_SCH-NEXT: add.d $a0, $a0, $a1
+; LARGEDESC_SCH-NEXT: ld.d $ra, $a0, %desc_ld(gd)
+; LARGEDESC_SCH-NEXT: jirl $ra, $ra, %desc_call(gd)
+; LARGEDESC_SCH-NEXT: add.d $a0, $a0, $tp
+; LARGEDESC_SCH-NEXT: ld.d $zero, $a0, 0
+; LARGEDESC_SCH-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
+; LARGEDESC_SCH-NEXT: addi.d $sp, $sp, 16
+; LARGEDESC_SCH-NEXT: ret
+ %v_gd = load volatile i64, ptr @gd
+ ret void
+}
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/175/builds/10847 Here is the relevant piece of the build log for the reference
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/108/builds/7678 Here is the relevant piece of the build log for the reference
|
Code sequence for tls-desc in large code model is not expected to be scheduled according to psABI 2.30.
A later commit will fix it.