Skip to content

Commit f4ee477

Browse files
authored
[NFC][CodeExtractor] simplify test for llvm#197986 (llvm#198011)
1 parent dd199b4 commit f4ee477

1 file changed

Lines changed: 16 additions & 63 deletions

File tree

llvm/test/Transforms/HotColdSplit/issue-197982.ll

Lines changed: 16 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,13 @@
33

44
; Reproducer for https://github.com/llvm/llvm-project/issues/197982
55

6-
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
7-
target triple = "x86_64-apple-macosx14.0.0"
6+
@g = external global ptr
87

9-
define void @dtor(ptr captures(none) %this) local_unnamed_addr #0 {
10-
; CHECK-LABEL: define void @dtor(
11-
; CHECK-SAME: ptr captures(none) [[THIS:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
12-
; CHECK-NEXT: [[OLD_I:%.*]] = load ptr, ptr [[THIS]], align 8
13-
; CHECK-NEXT: store ptr null, ptr [[THIS]], align 8
14-
; CHECK-NEXT: store volatile i32 0, ptr [[OLD_I]], align 4
15-
; CHECK-NEXT: ret void
16-
;
17-
%old.i = load ptr, ptr %this, align 8
18-
store ptr null, ptr %this, align 8
19-
store volatile i32 0, ptr %old.i, align 4
20-
ret void
21-
}
22-
23-
define noalias noundef ptr @assign(ptr captures(none) %this) local_unnamed_addr #0 {
24-
; CHECK-LABEL: define noalias noundef ptr @assign(
25-
; CHECK-SAME: ptr captures(none) [[THIS:%.*]]) local_unnamed_addr #[[ATTR0]] {
26-
; CHECK-NEXT: [[CALL:%.*]] = load volatile ptr, ptr null, align 4294967296
27-
; CHECK-NEXT: [[OLD_I:%.*]] = load ptr, ptr [[THIS]], align 8
28-
; CHECK-NEXT: store ptr [[CALL]], ptr [[THIS]], align 8
29-
; CHECK-NEXT: store volatile i32 0, ptr [[OLD_I]], align 4
30-
; CHECK-NEXT: ret ptr null
31-
;
32-
%call = load volatile ptr, ptr null, align 4294967296
33-
%old.i = load ptr, ptr %this, align 8
34-
store ptr %call, ptr %this, align 8
35-
store volatile i32 0, ptr %old.i, align 4
36-
ret ptr null
37-
}
8+
declare void @ext()
389

39-
define void @ctor(ptr writeonly captures(none) initializes((0, 8), (16, 24)) %this) local_unnamed_addr !prof !14 {
10+
define void @ctor(ptr %this) !prof !14 {
4011
; CHECK-LABEL: define void @ctor(
41-
; CHECK-SAME: ptr writeonly captures(none) initializes((0, 8), (16, 24)) [[THIS:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] !prof [[PROF14:![0-9]+]] {
12+
; CHECK-SAME: ptr [[THIS:%.*]]) #[[ATTR0:[0-9]+]] !prof [[PROF14:![0-9]+]] {
4213
; CHECK-NEXT: tail call void @ext()
4314
; CHECK-NEXT: store ptr null, ptr [[THIS]], align 16
4415
; CHECK-NEXT: [[P:%.*]] = getelementptr i8, ptr [[THIS]], i64 16
@@ -58,58 +29,40 @@ define void @ctor(ptr writeonly captures(none) initializes((0, 8), (16, 24)) %th
5829
ret void
5930
}
6031

61-
declare void @ext() local_unnamed_addr
62-
63-
define void @writeAsOperandInternal(ptr readonly captures(none) %WriterCtx, i1 %cond) local_unnamed_addr {
32+
define void @writeAsOperandInternal(ptr %WriterCtx, i1 %cond) {
6433
; CHECK-LABEL: define void @writeAsOperandInternal(
65-
; CHECK-SAME: ptr readonly captures(none) [[WRITERCTX:%.*]], i1 [[COND:%.*]]) local_unnamed_addr {
34+
; CHECK-SAME: ptr [[WRITERCTX:%.*]], i1 [[COND:%.*]]) {
6635
; CHECK-NEXT: [[ENTRY:.*]]:
6736
; CHECK-NEXT: br i1 [[COND]], label %[[CODEREPL:.*]], label %[[IF_END:.*]]
6837
; CHECK: [[CODEREPL]]:
69-
; CHECK-NEXT: [[TMP0:%.*]] = call ptr @writeAsOperandInternal.cold.1() #[[ATTR2:[0-9]+]]
38+
; CHECK-NEXT: [[TMP0:%.*]] = call ptr @writeAsOperandInternal.cold.1() #[[ATTR1:[0-9]+]]
7039
; CHECK-NEXT: br label %[[IF_END]]
7140
; CHECK: [[IF_END]]:
72-
; CHECK-NEXT: [[S_SROA_0_0:%.*]] = phi ptr [ [[TMP0]], %[[CODEREPL]] ], [ poison, %[[ENTRY]] ]
73-
; CHECK-NEXT: [[P:%.*]] = phi ptr [ [[TMP0]], %[[CODEREPL]] ], [ null, %[[ENTRY]] ]
41+
; CHECK-NEXT: [[S_SROA_0_0:%.*]] = phi ptr [ [[TMP0]], %[[CODEREPL]] ], [ @g, %[[ENTRY]] ]
42+
; CHECK-NEXT: [[P:%.*]] = phi ptr [ [[TMP0]], %[[CODEREPL]] ], [ @g, %[[ENTRY]] ]
7443
; CHECK-NEXT: [[FP:%.*]] = load ptr, ptr [[WRITERCTX]], align 8
75-
; CHECK-NEXT: [[R:%.*]] = tail call i32 [[FP]](ptr [[P]], ptr null)
44+
; CHECK-NEXT: [[R:%.*]] = tail call i32 [[FP]](ptr [[P]], ptr @g)
7645
; CHECK-NEXT: store volatile i32 0, ptr [[S_SROA_0_0]], align 4
7746
; CHECK-NEXT: ret void
7847
;
7948
entry:
8049
br i1 %cond, label %if.then, label %if.end
8150

8251
if.then:
83-
tail call void @ctor(ptr null)
84-
%call.i = load volatile ptr, ptr null, align 4294967296
85-
store volatile i32 0, ptr poison, align 4
52+
tail call void @ctor(ptr @g)
53+
%call.i = load volatile ptr, ptr @g, align 8
54+
store volatile i32 0, ptr @g, align 4
8655
br label %if.end
8756

8857
if.end:
89-
%s.sroa.0.0 = phi ptr [ %call.i, %if.then ], [ poison, %entry ]
90-
%p = phi ptr [ %call.i, %if.then ], [ null, %entry ]
58+
%s.sroa.0.0 = phi ptr [ %call.i, %if.then ], [ @g, %entry ]
59+
%p = phi ptr [ %call.i, %if.then ], [ @g, %entry ]
9160
%fp = load ptr, ptr %WriterCtx, align 8
92-
%r = tail call i32 %fp(ptr %p, ptr null)
61+
%r = tail call i32 %fp(ptr %p, ptr @g)
9362
store volatile i32 0, ptr %s.sroa.0.0, align 4
9463
ret void
9564
}
9665

97-
define void @reset(ptr captures(none) %this, ptr %p) local_unnamed_addr #0 {
98-
; CHECK-LABEL: define void @reset(
99-
; CHECK-SAME: ptr captures(none) [[THIS:%.*]], ptr [[P:%.*]]) local_unnamed_addr #[[ATTR0]] {
100-
; CHECK-NEXT: [[OLD:%.*]] = load ptr, ptr [[THIS]], align 8
101-
; CHECK-NEXT: store ptr [[P]], ptr [[THIS]], align 8
102-
; CHECK-NEXT: store volatile i32 0, ptr [[OLD]], align 4
103-
; CHECK-NEXT: ret void
104-
;
105-
%old = load ptr, ptr %this, align 8
106-
store ptr %p, ptr %this, align 8
107-
store volatile i32 0, ptr %old, align 4
108-
ret void
109-
}
110-
111-
attributes #0 = { nofree norecurse nounwind memory(readwrite, target_mem: none) }
112-
11366
!llvm.module.flags = !{!0}
11467

11568
!0 = !{i32 1, !"ProfileSummary", !1}

0 commit comments

Comments
 (0)