Skip to content

[DebugInfo][RemoveDIs] Delete experimental-iterator test-flags from tests #140045

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

jmorse
Copy link
Member

@jmorse jmorse commented May 15, 2025

Over in 6a45fce, this flag (experimental-debuginfo-iterators) was switched to do nothing, to flush out anything that depended on the debug-intrinsics way of doing things. It's been a month and nothing's super-broken, so we'll start to rip things out.

This commit deletes MergeFunc's debuginfo-iterators test: in d2942a8 it's documented that that test is specifically because of differences between intrinsic/non-intrinsic data structures, and we're deleting the possibility of that difference.

Note that the DXIL test is still xfailed as it's testing for the presence of intrinsics, this patch just deletes the use of the flag, so that we can delete the flag definition. AFAIUI the DXIL compatibility question is "technically not our problem" (TM)(R) but solveable by pushing the debug-records-to-intrinsics routines down into the bitcode writer (at the cost of performance if it's made use of), which seems alright.

Over in 6a45fce, this flag (experimental-debuginfo-iterators) was switched
to do nothing, to flush out anything that depended on the debug-intrinsics
way of doing things. It's been a month and nothing's super-broken, so we'll
start to rip things out.

This commit deletes MergeFunc's debuginfo-iterators test: in d2942a8
it's documented that that test is specifically because of differences
between intrinsic/non-intrinsic data structures, and we're deleting the
possibility of that difference.
@jmorse jmorse requested review from SLTozer and OCHyams May 15, 2025 11:57
@jmorse jmorse changed the title [DebugInfo][RemoveDIs] Delete experimental-test-flags from tests [DebugInfo][RemoveDIs] Delete experimental-iterator test-flags from tests May 15, 2025
@llvmbot
Copy link
Member

llvmbot commented May 15, 2025

@llvm/pr-subscribers-debuginfo
@llvm/pr-subscribers-backend-directx

@llvm/pr-subscribers-llvm-transforms

Author: Jeremy Morse (jmorse)

Changes

Over in 6a45fce, this flag (experimental-debuginfo-iterators) was switched to do nothing, to flush out anything that depended on the debug-intrinsics way of doing things. It's been a month and nothing's super-broken, so we'll start to rip things out.

This commit deletes MergeFunc's debuginfo-iterators test: in d2942a8 it's documented that that test is specifically because of differences between intrinsic/non-intrinsic data structures, and we're deleting the possibility of that difference.

Note that the DXIL test is still xfailed as it's testing for the presence of intrinsics, this patch just deletes the use of the flag, so that we can delete the flag definition. AFAIUI the DXIL compatibility question is "technically not our problem" (TM)(R) but solveable by pushing the debug-records-to-intrinsics routines down into the bitcode writer (at the cost of performance if it's made use of), which seems alright.


Full diff: https://github.com/llvm/llvm-project/pull/140045.diff

1 Files Affected:

  • (removed) llvm/test/Transforms/MergeFunc/debuginfo-iterators.ll (-54)
diff --git a/llvm/test/Transforms/MergeFunc/debuginfo-iterators.ll b/llvm/test/Transforms/MergeFunc/debuginfo-iterators.ll
deleted file mode 100644
index 67b51031bed62..0000000000000
--- a/llvm/test/Transforms/MergeFunc/debuginfo-iterators.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: opt -S -passes=mergefunc,inline --experimental-debuginfo-iterators < %s | FileCheck %s
-;; Ensure that the MergeFunctions pass creates thunks with the appropriate debug
-;; info format set (which would otherwise assert when inlining those thunks).
-
-declare void @f1()
-declare void @f2()
-
-define void @f3() {
-  call void @f1()
-  call void @f2()
-  ret void
-}
-
-;; MergeFunctions will replace f4 with a thunk that calls f3. Inlining will
-;; inline f3 into that thunk, which would assert if the thunk had the incorrect
-;; debug info format.
-define void @f4() {
-  call void @f1()
-  call void @f2()
-  ret void
-}
-
-; CHECK-LABEL: define void @f4() {
-; CHECK-NEXT:    call void @f1()
-; CHECK-NEXT:    call void @f2()
-; CHECK-NEXT:    ret void
-; CHECK-NEXT: }
-
-;; Both of these are interposable, so MergeFunctions will create a common thunk
-;; that both will call. Inlining will inline that thunk back, which would assert
-;; if the thunk had the incorrect debug info format.
-define weak void @f5() {
-  call void @f2()
-  call void @f1()
-  ret void
-}
-
-define weak void @f6() {
-  call void @f2()
-  call void @f1()
-  ret void
-}
-
-; CHECK-LABEL: define weak void @f6() {
-; CHECK-NEXT:    call void @f2()
-; CHECK-NEXT:    call void @f1()
-; CHECK-NEXT:    ret void
-; CHECK-NEXT:  }
-
-; CHECK-LABEL: define weak void @f5() {
-; CHECK-NEXT:    call void @f2()
-; CHECK-NEXT:    call void @f1()
-; CHECK-NEXT:    ret void
-; CHECK-NEXT:  }

@jmorse
Copy link
Member Author

jmorse commented May 15, 2025

(Now added most of the tests I changed; apparently I don't know how to use the git index).

Copy link
Contributor

@OCHyams OCHyams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, rip it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants