Skip to content

Commit b6ed8b9

Browse files
committed
[OpenMP] [Debug] Iteration variable in OpenMP work-sharing loops is wrong based on DWARF
Work-sharing loop iterator variable had incorrect debug info attached to it. It was due to redundant/incorrect debug info overwrites the correct debug info appearing later in LLVM IR. ------------------ define internal void @main.omp_outlined_debug__( ) %i = alloca i32, align 4 ;;------------------ (Incorrect) %i4 = alloca i32, align 4 ;;------------------ (Correct) #dbg_declare(ptr %i, !82, !DIExpression(), !67) ;;--- (Incorrect) store i32 0, ptr %i, align 4, !dbg !83 ;;--- (Incorrect) omp.precond.then: ; preds = %entry #dbg_declare(ptr %i4, !82, !DIExpression(), !67) ;;--- (Correct) omp.inner.for.body: ; preds = %omp.inner.for.cond %18 = load i32, ptr %.omp.iv, align 4, !dbg !85 %mul = mul nsw i32 %18, 1, !dbg !83 %add = add nsw i32 0, %mul, !dbg !83 store i32 %add, ptr %i4, align 4, !dbg !83 ;;--- (Correct) ------------------ Suppressing the incorrect IR, enables emission of correct debug info.
1 parent bc51a2e commit b6ed8b9

File tree

77 files changed

+1113
-3243
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+1113
-3243
lines changed

clang/lib/CodeGen/CGStmtOpenMP.cpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2367,15 +2367,8 @@ static void emitPreCond(CodeGenFunction &CGF, const OMPLoopDirective &S,
23672367
llvm::BasicBlock *FalseBlock, uint64_t TrueCount) {
23682368
if (!CGF.HaveInsertPoint())
23692369
return;
2370-
{
2371-
CodeGenFunction::OMPPrivateScope PreCondScope(CGF);
2372-
CGF.EmitOMPPrivateLoopCounters(S, PreCondScope);
2373-
(void)PreCondScope.Privatize();
2374-
// Get initial values of real counters.
2375-
for (const Expr *I : S.inits()) {
2376-
CGF.EmitIgnoredExpr(I);
2377-
}
2378-
}
2370+
// The Private counters are not needed to be emitted here as these
2371+
// are emitted later.
23792372
// Create temp loop control variables with their init values to support
23802373
// non-rectangular loops.
23812374
CodeGenFunction::OMPMapVars PreCondVars;

clang/test/OpenMP/amdgcn_target_device_vla.cpp

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,12 @@ int main() {
151151
// CHECK: for.end:
152152
// CHECK-NEXT: store i32 0, ptr [[I1_ASCAST]], align 4
153153
// CHECK-NEXT: br label [[FOR_COND2:%.*]]
154-
// CHECK: for.cond2:
154+
// CHECK: for.cond
155155
// CHECK-NEXT: [[TMP13:%.*]] = load i32, ptr [[I1_ASCAST]], align 4
156156
// CHECK-NEXT: [[TMP14:%.*]] = load i32, ptr [[N_ASCAST]], align 4
157157
// CHECK-NEXT: [[CMP3:%.*]] = icmp slt i32 [[TMP13]], [[TMP14]]
158158
// CHECK-NEXT: br i1 [[CMP3]], label [[FOR_BODY4:%.*]], label [[FOR_END9:%.*]]
159-
// CHECK: for.body4:
159+
// CHECK: for.body
160160
// CHECK-NEXT: [[TMP15:%.*]] = load i32, ptr [[I1_ASCAST]], align 4
161161
// CHECK-NEXT: [[IDXPROM5:%.*]] = sext i32 [[TMP15]] to i64
162162
// CHECK-NEXT: [[ARRAYIDX6:%.*]] = getelementptr inbounds i32, ptr [[A]], i64 [[IDXPROM5]]
@@ -165,12 +165,12 @@ int main() {
165165
// CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[TMP17]], [[TMP16]]
166166
// CHECK-NEXT: store i32 [[ADD]], ptr [[TMP0]], align 4
167167
// CHECK-NEXT: br label [[FOR_INC7:%.*]]
168-
// CHECK: for.inc7:
168+
// CHECK: for.inc
169169
// CHECK-NEXT: [[TMP18:%.*]] = load i32, ptr [[I1_ASCAST]], align 4
170170
// CHECK-NEXT: [[INC8:%.*]] = add nsw i32 [[TMP18]], 1
171171
// CHECK-NEXT: store i32 [[INC8]], ptr [[I1_ASCAST]], align 4
172172
// CHECK-NEXT: br label [[FOR_COND2]], !llvm.loop [[LOOP15:![0-9]+]]
173-
// CHECK: for.end9:
173+
// CHECK: for.end
174174
// CHECK-NEXT: call void @__kmpc_free_shared(ptr [[A]], i64 [[TMP7]])
175175
// CHECK-NEXT: call void @__kmpc_target_deinit()
176176
// CHECK-NEXT: ret void
@@ -228,7 +228,6 @@ int main() {
228228
// CHECK-NEXT: [[TMP:%.*]] = alloca i32, align 4, addrspace(5)
229229
// CHECK-NEXT: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, align 4, addrspace(5)
230230
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1:%.*]] = alloca i32, align 4, addrspace(5)
231-
// CHECK-NEXT: [[I:%.*]] = alloca i32, align 4, addrspace(5)
232231
// CHECK-NEXT: [[DOTOMP_COMB_LB:%.*]] = alloca i32, align 4, addrspace(5)
233232
// CHECK-NEXT: [[DOTOMP_COMB_UB:%.*]] = alloca i32, align 4, addrspace(5)
234233
// CHECK-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4, addrspace(5)
@@ -245,7 +244,6 @@ int main() {
245244
// CHECK-NEXT: [[TMP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[TMP]] to ptr
246245
// CHECK-NEXT: [[DOTCAPTURE_EXPR__ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_]] to ptr
247246
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_1]] to ptr
248-
// CHECK-NEXT: [[I_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[I]] to ptr
249247
// CHECK-NEXT: [[DOTOMP_COMB_LB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_COMB_LB]] to ptr
250248
// CHECK-NEXT: [[DOTOMP_COMB_UB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_COMB_UB]] to ptr
251249
// CHECK-NEXT: [[DOTOMP_STRIDE_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_STRIDE]] to ptr
@@ -267,7 +265,6 @@ int main() {
267265
// CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[SUB]], 1
268266
// CHECK-NEXT: [[SUB2:%.*]] = sub nsw i32 [[DIV]], 1
269267
// CHECK-NEXT: store i32 [[SUB2]], ptr [[DOTCAPTURE_EXPR_1_ASCAST]], align 4
270-
// CHECK-NEXT: store i32 0, ptr [[I_ASCAST]], align 4
271268
// CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
272269
// CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 0, [[TMP4]]
273270
// CHECK-NEXT: br i1 [[CMP]], label [[OMP_PRECOND_THEN:%.*]], label [[OMP_PRECOND_END:%.*]]
@@ -346,13 +343,13 @@ int main() {
346343
// CHECK-NEXT: [[TMP39:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR_1_ASCAST]], align 4
347344
// CHECK-NEXT: [[CMP9:%.*]] = icmp sgt i32 [[TMP38]], [[TMP39]]
348345
// CHECK-NEXT: br i1 [[CMP9]], label [[COND_TRUE10:%.*]], label [[COND_FALSE11:%.*]]
349-
// CHECK: cond.true10:
346+
// CHECK: cond.true
350347
// CHECK-NEXT: [[TMP40:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR_1_ASCAST]], align 4
351348
// CHECK-NEXT: br label [[COND_END12:%.*]]
352-
// CHECK: cond.false11:
349+
// CHECK: cond.false
353350
// CHECK-NEXT: [[TMP41:%.*]] = load i32, ptr [[DOTOMP_COMB_UB_ASCAST]], align 4
354351
// CHECK-NEXT: br label [[COND_END12]]
355-
// CHECK: cond.end12:
352+
// CHECK: cond.end
356353
// CHECK-NEXT: [[COND13:%.*]] = phi i32 [ [[TMP40]], [[COND_TRUE10]] ], [ [[TMP41]], [[COND_FALSE11]] ]
357354
// CHECK-NEXT: store i32 [[COND13]], ptr [[DOTOMP_COMB_UB_ASCAST]], align 4
358355
// CHECK-NEXT: [[TMP42:%.*]] = load i32, ptr [[DOTOMP_COMB_LB_ASCAST]], align 4
@@ -383,7 +380,6 @@ int main() {
383380
// CHECK-NEXT: [[TMP:%.*]] = alloca i32, align 4, addrspace(5)
384381
// CHECK-NEXT: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, align 4, addrspace(5)
385382
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1:%.*]] = alloca i32, align 4, addrspace(5)
386-
// CHECK-NEXT: [[I:%.*]] = alloca i32, align 4, addrspace(5)
387383
// CHECK-NEXT: [[DOTOMP_LB:%.*]] = alloca i32, align 4, addrspace(5)
388384
// CHECK-NEXT: [[DOTOMP_UB:%.*]] = alloca i32, align 4, addrspace(5)
389385
// CHECK-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4, addrspace(5)
@@ -405,7 +401,6 @@ int main() {
405401
// CHECK-NEXT: [[TMP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[TMP]] to ptr
406402
// CHECK-NEXT: [[DOTCAPTURE_EXPR__ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_]] to ptr
407403
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_1]] to ptr
408-
// CHECK-NEXT: [[I_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[I]] to ptr
409404
// CHECK-NEXT: [[DOTOMP_LB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_LB]] to ptr
410405
// CHECK-NEXT: [[DOTOMP_UB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_UB]] to ptr
411406
// CHECK-NEXT: [[DOTOMP_STRIDE_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_STRIDE]] to ptr
@@ -432,7 +427,6 @@ int main() {
432427
// CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[SUB]], 1
433428
// CHECK-NEXT: [[SUB2:%.*]] = sub nsw i32 [[DIV]], 1
434429
// CHECK-NEXT: store i32 [[SUB2]], ptr [[DOTCAPTURE_EXPR_1_ASCAST]], align 4
435-
// CHECK-NEXT: store i32 0, ptr [[I_ASCAST]], align 4
436430
// CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
437431
// CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 0, [[TMP4]]
438432
// CHECK-NEXT: br i1 [[CMP]], label [[OMP_PRECOND_THEN:%.*]], label [[OMP_PRECOND_END:%.*]]
@@ -500,12 +494,12 @@ int main() {
500494
// CHECK: for.end:
501495
// CHECK-NEXT: store i32 0, ptr [[J11_ASCAST]], align 4
502496
// CHECK-NEXT: br label [[FOR_COND12:%.*]]
503-
// CHECK: for.cond12:
497+
// CHECK: for.cond
504498
// CHECK-NEXT: [[TMP24:%.*]] = load i32, ptr [[J11_ASCAST]], align 4
505499
// CHECK-NEXT: [[TMP25:%.*]] = load i32, ptr [[N_ASCAST]], align 4
506500
// CHECK-NEXT: [[CMP13:%.*]] = icmp slt i32 [[TMP24]], [[TMP25]]
507501
// CHECK-NEXT: br i1 [[CMP13]], label [[FOR_BODY14:%.*]], label [[FOR_END22:%.*]]
508-
// CHECK: for.body14:
502+
// CHECK: for.body
509503
// CHECK-NEXT: [[TMP26:%.*]] = load i32, ptr [[J11_ASCAST]], align 4
510504
// CHECK-NEXT: [[IDXPROM15:%.*]] = sext i32 [[TMP26]] to i64
511505
// CHECK-NEXT: [[ARRAYIDX16:%.*]] = getelementptr inbounds i32, ptr [[VLA7_ASCAST]], i64 [[IDXPROM15]]
@@ -517,12 +511,12 @@ int main() {
517511
// CHECK-NEXT: [[ADD19:%.*]] = add nsw i32 [[TMP29]], [[TMP27]]
518512
// CHECK-NEXT: store i32 [[ADD19]], ptr [[ARRAYIDX18]], align 4
519513
// CHECK-NEXT: br label [[FOR_INC20:%.*]]
520-
// CHECK: for.inc20:
514+
// CHECK: for.inc
521515
// CHECK-NEXT: [[TMP30:%.*]] = load i32, ptr [[J11_ASCAST]], align 4
522516
// CHECK-NEXT: [[INC21:%.*]] = add nsw i32 [[TMP30]], 1
523517
// CHECK-NEXT: store i32 [[INC21]], ptr [[J11_ASCAST]], align 4
524518
// CHECK-NEXT: br label [[FOR_COND12]], !llvm.loop [[LOOP17:![0-9]+]]
525-
// CHECK: for.end22:
519+
// CHECK: for.end
526520
// CHECK-NEXT: [[TMP31:%.*]] = load ptr addrspace(5), ptr [[SAVED_STACK_ASCAST]], align 4
527521
// CHECK-NEXT: call void @llvm.stackrestore.p5(ptr addrspace(5) [[TMP31]])
528522
// CHECK-NEXT: br label [[OMP_BODY_CONTINUE:%.*]]
@@ -597,7 +591,6 @@ int main() {
597591
// CHECK-NEXT: [[TMP:%.*]] = alloca i32, align 4, addrspace(5)
598592
// CHECK-NEXT: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, align 4, addrspace(5)
599593
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1:%.*]] = alloca i32, align 4, addrspace(5)
600-
// CHECK-NEXT: [[I:%.*]] = alloca i32, align 4, addrspace(5)
601594
// CHECK-NEXT: [[DOTOMP_LB:%.*]] = alloca i32, align 4, addrspace(5)
602595
// CHECK-NEXT: [[DOTOMP_UB:%.*]] = alloca i32, align 4, addrspace(5)
603596
// CHECK-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4, addrspace(5)
@@ -615,7 +608,6 @@ int main() {
615608
// CHECK-NEXT: [[TMP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[TMP]] to ptr
616609
// CHECK-NEXT: [[DOTCAPTURE_EXPR__ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_]] to ptr
617610
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_1]] to ptr
618-
// CHECK-NEXT: [[I_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[I]] to ptr
619611
// CHECK-NEXT: [[DOTOMP_LB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_LB]] to ptr
620612
// CHECK-NEXT: [[DOTOMP_UB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_UB]] to ptr
621613
// CHECK-NEXT: [[DOTOMP_STRIDE_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_STRIDE]] to ptr
@@ -639,7 +631,6 @@ int main() {
639631
// CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[SUB]], 1
640632
// CHECK-NEXT: [[SUB2:%.*]] = sub nsw i32 [[DIV]], 1
641633
// CHECK-NEXT: store i32 [[SUB2]], ptr [[DOTCAPTURE_EXPR_1_ASCAST]], align 4
642-
// CHECK-NEXT: store i32 0, ptr [[I_ASCAST]], align 4
643634
// CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
644635
// CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 0, [[TMP4]]
645636
// CHECK-NEXT: br i1 [[CMP]], label [[OMP_PRECOND_THEN:%.*]], label [[OMP_PRECOND_END:%.*]]
@@ -760,7 +751,6 @@ int main() {
760751
// CHECK-NEXT: [[TMP:%.*]] = alloca i32, align 4, addrspace(5)
761752
// CHECK-NEXT: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, align 4, addrspace(5)
762753
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1:%.*]] = alloca i32, align 4, addrspace(5)
763-
// CHECK-NEXT: [[J:%.*]] = alloca i32, align 4, addrspace(5)
764754
// CHECK-NEXT: [[DOTOMP_LB:%.*]] = alloca i32, align 4, addrspace(5)
765755
// CHECK-NEXT: [[DOTOMP_UB:%.*]] = alloca i32, align 4, addrspace(5)
766756
// CHECK-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4, addrspace(5)
@@ -775,7 +765,6 @@ int main() {
775765
// CHECK-NEXT: [[TMP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[TMP]] to ptr
776766
// CHECK-NEXT: [[DOTCAPTURE_EXPR__ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_]] to ptr
777767
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_1]] to ptr
778-
// CHECK-NEXT: [[J_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[J]] to ptr
779768
// CHECK-NEXT: [[DOTOMP_LB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_LB]] to ptr
780769
// CHECK-NEXT: [[DOTOMP_UB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_UB]] to ptr
781770
// CHECK-NEXT: [[DOTOMP_STRIDE_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_STRIDE]] to ptr
@@ -796,7 +785,6 @@ int main() {
796785
// CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[SUB]], 1
797786
// CHECK-NEXT: [[SUB2:%.*]] = sub nsw i32 [[DIV]], 1
798787
// CHECK-NEXT: store i32 [[SUB2]], ptr [[DOTCAPTURE_EXPR_1_ASCAST]], align 4
799-
// CHECK-NEXT: store i32 0, ptr [[J_ASCAST]], align 4
800788
// CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
801789
// CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 0, [[TMP5]]
802790
// CHECK-NEXT: br i1 [[CMP]], label [[OMP_PRECOND_THEN:%.*]], label [[OMP_PRECOND_END:%.*]]
@@ -963,7 +951,6 @@ int main() {
963951
// CHECK-NEXT: [[TMP:%.*]] = alloca i32, align 4, addrspace(5)
964952
// CHECK-NEXT: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, align 4, addrspace(5)
965953
// CHECK-NEXT: [[DOTCAPTURE_EXPR_2:%.*]] = alloca i32, align 4, addrspace(5)
966-
// CHECK-NEXT: [[I:%.*]] = alloca i32, align 4, addrspace(5)
967954
// CHECK-NEXT: [[DOTOMP_LB:%.*]] = alloca i32, align 4, addrspace(5)
968955
// CHECK-NEXT: [[DOTOMP_UB:%.*]] = alloca i32, align 4, addrspace(5)
969956
// CHECK-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4, addrspace(5)
@@ -982,7 +969,6 @@ int main() {
982969
// CHECK-NEXT: [[TMP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[TMP]] to ptr
983970
// CHECK-NEXT: [[DOTCAPTURE_EXPR__ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_]] to ptr
984971
// CHECK-NEXT: [[DOTCAPTURE_EXPR_2_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_2]] to ptr
985-
// CHECK-NEXT: [[I_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[I]] to ptr
986972
// CHECK-NEXT: [[DOTOMP_LB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_LB]] to ptr
987973
// CHECK-NEXT: [[DOTOMP_UB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_UB]] to ptr
988974
// CHECK-NEXT: [[DOTOMP_STRIDE_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_STRIDE]] to ptr
@@ -1009,7 +995,6 @@ int main() {
1009995
// CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[SUB]], 1
1010996
// CHECK-NEXT: [[SUB3:%.*]] = sub nsw i32 [[DIV]], 1
1011997
// CHECK-NEXT: store i32 [[SUB3]], ptr [[DOTCAPTURE_EXPR_2_ASCAST]], align 4
1012-
// CHECK-NEXT: store i32 0, ptr [[I_ASCAST]], align 4
1013998
// CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
1014999
// CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 0, [[TMP5]]
10151000
// CHECK-NEXT: br i1 [[CMP]], label [[OMP_PRECOND_THEN:%.*]], label [[OMP_PRECOND_END:%.*]]
@@ -1129,7 +1114,6 @@ int main() {
11291114
// CHECK-NEXT: [[TMP:%.*]] = alloca i32, align 4, addrspace(5)
11301115
// CHECK-NEXT: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, align 4, addrspace(5)
11311116
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1:%.*]] = alloca i32, align 4, addrspace(5)
1132-
// CHECK-NEXT: [[J:%.*]] = alloca i32, align 4, addrspace(5)
11331117
// CHECK-NEXT: [[DOTOMP_LB:%.*]] = alloca i32, align 4, addrspace(5)
11341118
// CHECK-NEXT: [[DOTOMP_UB:%.*]] = alloca i32, align 4, addrspace(5)
11351119
// CHECK-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4, addrspace(5)
@@ -1144,7 +1128,6 @@ int main() {
11441128
// CHECK-NEXT: [[TMP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[TMP]] to ptr
11451129
// CHECK-NEXT: [[DOTCAPTURE_EXPR__ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_]] to ptr
11461130
// CHECK-NEXT: [[DOTCAPTURE_EXPR_1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTCAPTURE_EXPR_1]] to ptr
1147-
// CHECK-NEXT: [[J_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[J]] to ptr
11481131
// CHECK-NEXT: [[DOTOMP_LB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_LB]] to ptr
11491132
// CHECK-NEXT: [[DOTOMP_UB_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_UB]] to ptr
11501133
// CHECK-NEXT: [[DOTOMP_STRIDE_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[DOTOMP_STRIDE]] to ptr
@@ -1165,7 +1148,6 @@ int main() {
11651148
// CHECK-NEXT: [[DIV:%.*]] = sdiv i32 [[SUB]], 1
11661149
// CHECK-NEXT: [[SUB2:%.*]] = sub nsw i32 [[DIV]], 1
11671150
// CHECK-NEXT: store i32 [[SUB2]], ptr [[DOTCAPTURE_EXPR_1_ASCAST]], align 4
1168-
// CHECK-NEXT: store i32 0, ptr [[J_ASCAST]], align 4
11691151
// CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR__ASCAST]], align 4
11701152
// CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 0, [[TMP5]]
11711153
// CHECK-NEXT: br i1 [[CMP]], label [[OMP_PRECOND_THEN:%.*]], label [[OMP_PRECOND_END:%.*]]

0 commit comments

Comments
 (0)