brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.5 KiB · 86cf711 Raw
154 lines · plain
1; RUN: opt < %s -S -passes=mldst-motion -o - | FileCheck %s2; RUN: opt < %s -S -strip-debug -passes=mldst-motion -o - | FileCheck %s3 4; Verify that the amount of stores that are sunk is invariant regarding debug5; info.  This used to fail due to including dbg.value instructions when6; calculating the size of a basic block for the "MagicCompileTimeControl"7; check in MergedLoadStoreMotion::mergeStores.8 9; CHECK-LABEL: return:10; CHECK-NEXT:    %.sink = phi i16 [ 5, %if.end ], [ 6, %if.then ]11; CHECK-NEXT:    store i16 %.sink, ptr %agg.result12; CHECK-NEXT:    %0 = getelementptr inbounds %struct.S0, ptr %agg.result, i16 0, i32 113; CHECK-NEXT:    store i16 0, ptr %014; CHECK-NEXT:    ret void15 16%struct.S0 = type { i16, i16 }17 18@g_173 = dso_local local_unnamed_addr global i16 0, !dbg !019 20; Function Attrs: noinline norecurse nounwind21define dso_local void @func_34(ptr noalias sret(%struct.S0) %agg.result, i1 %arg) local_unnamed_addr #0 !dbg !11 {22entry:23  br i1 %arg, label %if.end, label %if.then, !dbg !1824 25if.then:                                          ; preds = %entry26  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2227  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2228  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2229  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2230  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2231  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2232  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2233  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2234  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2235  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2236  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2237  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2238  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2239  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2240  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2241  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2242  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2243  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2244  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2245  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2246  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2247  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2248  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2249  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2250  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2251  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2252  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2253  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2254  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2255  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2256  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2257  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2258  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2259  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2260  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2261  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2262  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2263  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2264  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2265  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2266  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2267  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2268  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2269  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2270  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2271  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2272  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2273  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2274  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2275  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2276  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2277  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2278  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2279  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2280  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2281  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2282  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2283  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2284  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2285  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2286  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2287  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2288  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2289  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2290  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2291  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2292  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2293  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2294  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2295  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2296  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2297  call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !2298  store i16 6, ptr %agg.result, !dbg !2399  %l_303.sroa.2.0..sroa_idx1 = getelementptr inbounds %struct.S0, ptr %agg.result, i16 0, i32 1, !dbg !23100  store i16 0, ptr %l_303.sroa.2.0..sroa_idx1, !dbg !23101  br label %return, !dbg !24102 103if.end:                                           ; preds = %entry104  store i16 5, ptr %agg.result, !dbg !25105  %f138 = getelementptr inbounds %struct.S0, ptr %agg.result, i16 0, i32 1, !dbg !25106  store i16 0, ptr %f138, !dbg !25107  store i16 0, ptr @g_173, !dbg !27108  br label %return, !dbg !28109 110return:                                           ; preds = %if.end, %if.then111  ret void, !dbg !29112}113 114; Function Attrs: nounwind readnone speculatable115declare void @llvm.dbg.value(metadata, metadata, metadata) #1116 117attributes #0 = { noinline norecurse nounwind }118attributes #1 = { nounwind readnone speculatable }119 120!llvm.dbg.cu = !{!2}121!llvm.module.flags = !{!7, !8, !9}122!llvm.ident = !{!10}123 124!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())125!1 = distinct !DIGlobalVariable(name: "g_173", scope: !2, file: !3, line: 7, type: !6, isLocal: false, isDefinition: true)126!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (x)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)127!3 = !DIFile(filename: "csmith11794002068761.c", directory: "")128!4 = !{}129!5 = !{!0}130!6 = !DIBasicType(name: "int", size: 16, encoding: DW_ATE_signed)131!7 = !{i32 2, !"Dwarf Version", i32 4}132!8 = !{i32 2, !"Debug Info Version", i32 3}133!9 = !{i32 1, !"wchar_size", i32 1}134!10 = !{!"clang version 7.0.0 (x)"}135!11 = distinct !DISubprogram(name: "func_34", scope: !3, file: !3, line: 16, type: !12, isLocal: false, isDefinition: true, scopeLine: 16, isOptimized: false, unit: !2, retainedNodes: !4)136!12 = !DISubroutineType(types: !13)137!13 = !{!14}138!14 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S0", file: !3, line: 2, size: 32, elements: !15)139!15 = !{!16, !17}140!16 = !DIDerivedType(tag: DW_TAG_member, name: "f0", scope: !14, file: !3, line: 3, baseType: !6, size: 16)141!17 = !DIDerivedType(tag: DW_TAG_member, name: "f1", scope: !14, file: !3, line: 4, baseType: !6, size: 16, offset: 16)142!18 = !DILocation(line: 18, column: 7, scope: !11)143!19 = !DILocalVariable(name: "left", scope: !20, file: !3, line: 23, type: !6)144!20 = distinct !DILexicalBlock(scope: !21, file: !3, line: 18, column: 14)145!21 = distinct !DILexicalBlock(scope: !11, file: !3, line: 18, column: 7)146!22 = !DILocation(line: 23, column: 9, scope: !20)147!23 = !DILocation(line: 26, column: 12, scope: !20)148!24 = !DILocation(line: 26, column: 5, scope: !20)149!25 = !DILocation(line: 29, column: 23, scope: !26)150!26 = distinct !DILexicalBlock(scope: !11, file: !3, line: 28, column: 3)151!27 = !DILocation(line: 30, column: 11, scope: !26)152!28 = !DILocation(line: 31, column: 5, scope: !26)153!29 = !DILocation(line: 33, column: 1, scope: !11)154