Mercurial > hg > CbC > CbC_llvm
comparison polly/test/CodeGen/stack-overflow-in-load-hoisting.ll @ 252:1f2b6ac9f198 llvm-original
LLVM16-1
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Aug 2023 09:04:13 +0900 |
parents | c4bab56944e8 |
children |
comparison
equal
deleted
inserted
replaced
237:c80f45b162ad | 252:1f2b6ac9f198 |
---|---|
7 ; CHECK: polly.preload.begin: | 7 ; CHECK: polly.preload.begin: |
8 ; CHECK-NEXT: br i1 false, label %polly.start, label %for.body.14.lr.ph | 8 ; CHECK-NEXT: br i1 false, label %polly.start, label %for.body.14.lr.ph |
9 ; | 9 ; |
10 target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128" | 10 target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128" |
11 | 11 |
12 %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573 = type { %struct.AVClass.10.32.868.1198.1286.1308.1566*, %struct.AVFrame.5.27.863.1193.1281.1303.1572*, i32, i32, i32, i32, i32, [4 x i32], [4 x i32], double, %struct.AVRational.0.22.858.1188.1276.1298.1567 } | 12 %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573 = type { ptr, ptr, i32, i32, i32, i32, i32, [4 x i32], [4 x i32], double, %struct.AVRational.0.22.858.1188.1276.1298.1567 } |
13 %struct.AVClass.10.32.868.1198.1286.1308.1566 = type { i8*, i8* (i8*)*, %struct.AVOption.7.29.865.1195.1283.1305.1563*, i32, i32, i32, i8* (i8*, i8*)*, %struct.AVClass.10.32.868.1198.1286.1308.1566* (%struct.AVClass.10.32.868.1198.1286.1308.1566*)*, i32, i32 (i8*)*, i32 (%struct.AVOptionRanges.9.31.867.1197.1285.1307.1565**, i8*, i8*, i32)* } | 13 %struct.AVClass.10.32.868.1198.1286.1308.1566 = type { ptr, ptr, ptr, i32, i32, i32, ptr, ptr, i32, ptr, ptr } |
14 %struct.AVOption.7.29.865.1195.1283.1305.1563 = type { i8*, i8*, i32, i32, %union.anon.6.28.864.1194.1282.1304.1562, double, double, i32, i8* } | 14 %struct.AVOption.7.29.865.1195.1283.1305.1563 = type { ptr, ptr, i32, i32, %union.anon.6.28.864.1194.1282.1304.1562, double, double, i32, ptr } |
15 %union.anon.6.28.864.1194.1282.1304.1562 = type { i64 } | 15 %union.anon.6.28.864.1194.1282.1304.1562 = type { i64 } |
16 %struct.AVOptionRanges.9.31.867.1197.1285.1307.1565 = type { %struct.AVOptionRange.8.30.866.1196.1284.1306.1564**, i32, i32 } | 16 %struct.AVOptionRanges.9.31.867.1197.1285.1307.1565 = type { ptr, i32, i32 } |
17 %struct.AVOptionRange.8.30.866.1196.1284.1306.1564 = type { i8*, double, double, double, double, i32 } | 17 %struct.AVOptionRange.8.30.866.1196.1284.1306.1564 = type { ptr, double, double, double, double, i32 } |
18 %struct.AVFrame.5.27.863.1193.1281.1303.1572 = type { [8 x i8*], [8 x i32], i8**, i32, i32, i32, i32, i32, i32, %struct.AVRational.0.22.858.1188.1276.1298.1567, i64, i64, i64, i32, i32, i32, i8*, [8 x i64], i32, i32, i32, i32, i64, i32, i64, [8 x %struct.AVBufferRef.2.24.860.1190.1278.1300.1569*], %struct.AVBufferRef.2.24.860.1190.1278.1300.1569**, i32, %struct.AVFrameSideData.4.26.862.1192.1280.1302.1571**, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, %struct.AVDictionary.3.25.861.1191.1279.1301.1570*, i32, i32, i32, i8*, i32, i32, %struct.AVBufferRef.2.24.860.1190.1278.1300.1569* } | 18 %struct.AVFrame.5.27.863.1193.1281.1303.1572 = type { [8 x ptr], [8 x i32], ptr, i32, i32, i32, i32, i32, i32, %struct.AVRational.0.22.858.1188.1276.1298.1567, i64, i64, i64, i32, i32, i32, ptr, [8 x i64], i32, i32, i32, i32, i64, i32, i64, [8 x ptr], ptr, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, ptr, i32, i32, i32, ptr, i32, i32, ptr } |
19 %struct.AVFrameSideData.4.26.862.1192.1280.1302.1571 = type { i32, i8*, i32, %struct.AVDictionary.3.25.861.1191.1279.1301.1570*, %struct.AVBufferRef.2.24.860.1190.1278.1300.1569* } | 19 %struct.AVFrameSideData.4.26.862.1192.1280.1302.1571 = type { i32, ptr, i32, ptr, ptr } |
20 %struct.AVDictionary.3.25.861.1191.1279.1301.1570 = type opaque | 20 %struct.AVDictionary.3.25.861.1191.1279.1301.1570 = type opaque |
21 %struct.AVBufferRef.2.24.860.1190.1278.1300.1569 = type { %struct.AVBuffer.1.23.859.1189.1277.1299.1568*, i8*, i32 } | 21 %struct.AVBufferRef.2.24.860.1190.1278.1300.1569 = type { ptr, ptr, i32 } |
22 %struct.AVBuffer.1.23.859.1189.1277.1299.1568 = type opaque | 22 %struct.AVBuffer.1.23.859.1189.1277.1299.1568 = type opaque |
23 %struct.AVRational.0.22.858.1188.1276.1298.1567 = type { i32, i32 } | 23 %struct.AVRational.0.22.858.1188.1276.1298.1567 = type { i32, i32 } |
24 | 24 |
25 ; Function Attrs: nounwind ssp | 25 ; Function Attrs: nounwind ssp |
26 define void @fade(%struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573* %s) #0 { | 26 define void @fade(ptr %s) #0 { |
27 entry: | 27 entry: |
28 br label %for.cond.12.preheader.lr.ph | 28 br label %for.cond.12.preheader.lr.ph |
29 | 29 |
30 for.cond.12.preheader.lr.ph: ; preds = %entry | 30 for.cond.12.preheader.lr.ph: ; preds = %entry |
31 %outpicref = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573* %s, i32 0, i32 1 | 31 %outpicref = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, ptr %s, i32 0, i32 1 |
32 %arrayidx2 = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573* %s, i32 0, i32 8, i32 0 | 32 %arrayidx2 = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, ptr %s, i32 0, i32 8, i32 0 |
33 %tobool = icmp eq i32 0, 0 | 33 %tobool = icmp eq i32 0, 0 |
34 %arrayidx4 = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573* %s, i32 0, i32 8, i32 1 | 34 %arrayidx4 = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, ptr %s, i32 0, i32 8, i32 1 |
35 %tmp = load i32, i32* %arrayidx4, align 4 | 35 %tmp = load i32, ptr %arrayidx4, align 4 |
36 %tobool5 = icmp eq i32 %tmp, 0 | 36 %tobool5 = icmp eq i32 %tmp, 0 |
37 %h = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573* %s, i32 0, i32 3 | 37 %h = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, ptr %s, i32 0, i32 3 |
38 %tmp1 = load i32, i32* %h, align 4 | 38 %tmp1 = load i32, ptr %h, align 4 |
39 %cmp.48 = icmp sgt i32 %tmp1, 0 | 39 %cmp.48 = icmp sgt i32 %tmp1, 0 |
40 %tmp2 = load %struct.AVFrame.5.27.863.1193.1281.1303.1572*, %struct.AVFrame.5.27.863.1193.1281.1303.1572** %outpicref, align 4 | 40 %tmp2 = load ptr, ptr %outpicref, align 4 |
41 %arrayidx11 = getelementptr inbounds %struct.AVFrame.5.27.863.1193.1281.1303.1572, %struct.AVFrame.5.27.863.1193.1281.1303.1572* %tmp2, i32 0, i32 0, i32 0 | 41 %tmp3 = load ptr, ptr %tmp2, align 4 |
42 %tmp3 = load i8*, i8** %arrayidx11, align 4 | |
43 br label %for.body.14.lr.ph | 42 br label %for.body.14.lr.ph |
44 | 43 |
45 for.body.14.lr.ph: ; preds = %for.end, %for.cond.12.preheader.lr.ph | 44 for.body.14.lr.ph: ; preds = %for.end, %for.cond.12.preheader.lr.ph |
46 %d.050 = phi i8* [ %tmp3, %for.cond.12.preheader.lr.ph ], [ undef, %for.end ] | 45 %d.050 = phi ptr [ %tmp3, %for.cond.12.preheader.lr.ph ], [ undef, %for.end ] |
47 %w = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573* %s, i32 0, i32 2 | 46 %w = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, ptr %s, i32 0, i32 2 |
48 %tmp4 = load i32, i32* %w, align 4 | 47 %tmp4 = load i32, ptr %w, align 4 |
49 %cmp13.46 = icmp sgt i32 %tmp4, 0 | 48 %cmp13.46 = icmp sgt i32 %tmp4, 0 |
50 br label %for.body.14 | 49 br label %for.body.14 |
51 | 50 |
52 for.body.14: ; preds = %for.body.14, %for.body.14.lr.ph | 51 for.body.14: ; preds = %for.body.14, %for.body.14.lr.ph |
53 %arrayidx30 = getelementptr inbounds i8, i8* %d.050, i32 0 | 52 store i8 undef, ptr %d.050, align 1 |
54 store i8 undef, i8* %arrayidx30, align 1 | 53 %arrayidx54 = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, ptr %s, i32 0, i32 8, i32 2 |
55 %arrayidx54 = getelementptr inbounds %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573, %struct.AudioVectorScopeContext.21.43.879.1209.1297.1319.1573* %s, i32 0, i32 8, i32 2 | 54 %tmp5 = load i32, ptr %arrayidx54, align 4 |
56 %tmp5 = load i32, i32* %arrayidx54, align 4 | |
57 %add92 = add nuw nsw i32 0, 4 | 55 %add92 = add nuw nsw i32 0, 4 |
58 %tmp6 = load i32, i32* %w, align 4 | 56 %tmp6 = load i32, ptr %w, align 4 |
59 %mul = shl nsw i32 %tmp6, 2 | 57 %mul = shl nsw i32 %tmp6, 2 |
60 %cmp13 = icmp slt i32 %add92, %mul | 58 %cmp13 = icmp slt i32 %add92, %mul |
61 br i1 %cmp13, label %for.body.14, label %for.end | 59 br i1 %cmp13, label %for.body.14, label %for.end |
62 | 60 |
63 for.end: ; preds = %for.body.14 | 61 for.end: ; preds = %for.body.14 |
64 %inc = add nuw nsw i32 0, 1 | 62 %inc = add nuw nsw i32 0, 1 |
65 %tmp7 = load i32, i32* %h, align 4 | 63 %tmp7 = load i32, ptr %h, align 4 |
66 %cmp = icmp slt i32 %inc, %tmp7 | 64 %cmp = icmp slt i32 %inc, %tmp7 |
67 br i1 %cmp, label %for.body.14.lr.ph, label %if.end.loopexit | 65 br i1 %cmp, label %for.body.14.lr.ph, label %if.end.loopexit |
68 | 66 |
69 if.end.loopexit: ; preds = %for.end | 67 if.end.loopexit: ; preds = %for.end |
70 br label %if.end | 68 br label %if.end |