Advertisement
Guest User

works

a guest
Oct 7th, 2015
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.35 KB | None | 0 0
  1. ; ModuleID = 'test.c'
  2. target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  3. target triple = "x86_64-unknown-linux-gnu"
  4.  
  5. @.str = private unnamed_addr constant [9 x i8] c"arr: %p\0A\00", align 1
  6.  
  7. ; Function Attrs: nounwind readnone uwtable
  8. define i8* @__dc_mask2(i8* readnone %ptr) #0 {
  9. entry:
  10. tail call void @llvm.dbg.value(metadata i8* %ptr, i64 0, metadata !9, metadata !31), !dbg !32
  11. ret i8* %ptr, !dbg !33
  12. }
  13.  
  14. ; Function Attrs: nounwind readnone
  15. declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
  16.  
  17. ; Function Attrs: nounwind uwtable
  18. define i32 @main(i32 %argc, i8** nocapture readnone %argv) #2 {
  19. entry:
  20. %arr = alloca [32 x i8], align 16
  21. %arr30 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 0
  22. tail call void @llvm.dbg.value(metadata i32 %argc, i64 0, metadata !18, metadata !31), !dbg !34
  23. tail call void @llvm.dbg.value(metadata i8** %argv, i64 0, metadata !19, metadata !31), !dbg !35
  24. %0 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 0, !dbg !36
  25. call void @llvm.lifetime.start(i64 32, i8* %0) #5, !dbg !36
  26. tail call void @llvm.dbg.declare(metadata [32 x i8]* %arr, metadata !20, metadata !31), !dbg !37
  27. %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0), i8* %0) #5, !dbg !38
  28. call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !24, metadata !31), !dbg !39
  29. call void @llvm.memset.p0i8.i64(i8* %arr30, i8 0, i64 32, i32 16, i1 false), !dbg !40
  30. br label %vector.body, !dbg !43
  31.  
  32. vector.body: ; preds = %entry
  33. %1 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 1, !dbg !44
  34. %2 = bitcast i8* %1 to <16 x i8>*, !dbg !47
  35. store <16 x i8> <i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15, i8 16>, <16 x i8>* %2, align 1, !dbg !47, !tbaa !48
  36. br label %for.body.5, !dbg !51
  37.  
  38. for.body.5: ; preds = %vector.body
  39. %arrayidx10 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 17, !dbg !44
  40. store i8 17, i8* %arrayidx10, align 1, !dbg !47, !tbaa !48
  41. %arrayidx10.1 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 18, !dbg !44
  42. store i8 18, i8* %arrayidx10.1, align 2, !dbg !47, !tbaa !48
  43. %arrayidx10.2 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 19, !dbg !44
  44. store i8 19, i8* %arrayidx10.2, align 1, !dbg !47, !tbaa !48
  45. %arrayidx10.3 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 20, !dbg !44
  46. store i8 20, i8* %arrayidx10.3, align 4, !dbg !47, !tbaa !48
  47. %arrayidx10.4 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 21, !dbg !44
  48. store i8 21, i8* %arrayidx10.4, align 1, !dbg !47, !tbaa !48
  49. %arrayidx10.5 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 22, !dbg !44
  50. store i8 22, i8* %arrayidx10.5, align 2, !dbg !47, !tbaa !48
  51. %arrayidx10.6 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 23, !dbg !44
  52. store i8 23, i8* %arrayidx10.6, align 1, !dbg !47, !tbaa !48
  53. %arrayidx10.7 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 24, !dbg !44
  54. store i8 24, i8* %arrayidx10.7, align 8, !dbg !47, !tbaa !48
  55. %arrayidx10.8 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 25, !dbg !44
  56. store i8 25, i8* %arrayidx10.8, align 1, !dbg !47, !tbaa !48
  57. %arrayidx10.9 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 26, !dbg !44
  58. store i8 26, i8* %arrayidx10.9, align 2, !dbg !47, !tbaa !48
  59. %arrayidx10.10 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 27, !dbg !44
  60. store i8 27, i8* %arrayidx10.10, align 1, !dbg !47, !tbaa !48
  61. %arrayidx10.11 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 28, !dbg !44
  62. store i8 28, i8* %arrayidx10.11, align 4, !dbg !47, !tbaa !48
  63. %arrayidx10.12 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 29, !dbg !44
  64. store i8 29, i8* %arrayidx10.12, align 1, !dbg !47, !tbaa !48
  65. %arrayidx10.13 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 30, !dbg !44
  66. store i8 30, i8* %arrayidx10.13, align 2, !dbg !47, !tbaa !48
  67. %arrayidx10.14 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 31, !dbg !44
  68. store i8 31, i8* %arrayidx10.14, align 1, !dbg !47, !tbaa !48
  69. %arrayidx14 = getelementptr inbounds [32 x i8], [32 x i8]* %arr, i64 0, i64 11, !dbg !52
  70. %3 = load i8, i8* %arrayidx14, align 1, !dbg !52, !tbaa !48
  71. %conv15 = sext i8 %3 to i32, !dbg !52
  72. call void @llvm.lifetime.end(i64 32, i8* nonnull %0) #5, !dbg !53
  73. ret i32 %conv15, !dbg !54
  74.  
  75. ; uselistorder directives
  76. uselistorder i8* %0, { 2, 0, 1 }
  77. uselistorder [32 x i8]* %arr, { 17, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 18, 14, 16, 15 }
  78. uselistorder i64 32, { 1, 0, 2 }
  79. uselistorder void (metadata, i64, metadata, metadata)* @llvm.dbg.value, { 0, 2, 1, 3 }
  80. uselistorder i64 0, { 25, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 26, 14, 21, 19, 20, 17, 18, 23, 22, 15, 16, 24 }
  81. }
  82.  
  83. ; Function Attrs: nounwind argmemonly
  84. declare void @llvm.lifetime.start(i64, i8* nocapture) #3
  85.  
  86. ; Function Attrs: nounwind
  87. declare i32 @printf(i8* nocapture readonly, ...) #4
  88.  
  89. ; Function Attrs: nounwind argmemonly
  90. declare void @llvm.lifetime.end(i64, i8* nocapture) #3
  91.  
  92. ; Function Attrs: nounwind readnone
  93. declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #1
  94.  
  95. ; Function Attrs: nounwind argmemonly
  96. declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #3
  97.  
  98. attributes #0 = { nounwind readnone uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
  99. attributes #1 = { nounwind readnone }
  100. attributes #2 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
  101. attributes #3 = { nounwind argmemonly }
  102. attributes #4 = { nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
  103. attributes #5 = { nounwind }
  104.  
  105. !llvm.dbg.cu = !{!0}
  106. !llvm.module.flags = !{!28, !29}
  107. !llvm.ident = !{!30}
  108.  
  109. !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (git@github.com:llvm-mirror/clang.git 33e8a9bf1ce3556c395d94c66ea83f6f5f06f2bf) (git@github.com:llvm-mirror/llvm.git 9dd7e2da2a6e6e68c04162ecc9df00e3fd84dc61)", isOptimized: true, runtimeVersion: 0, emissionKind: 1, enums: !2, subprograms: !3)
  110. !1 = !DIFile(filename: "test.c", directory: "/home/carr27/dataconf-workspace2/data-integrity-tests/simple-types/vector")
  111. !2 = !{}
  112. !3 = !{!4, !10}
  113. !4 = distinct !DISubprogram(name: "__dc_mask2", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: true, function: i8* (i8*)* @__dc_mask2, variables: !8)
  114. !5 = !DISubroutineType(types: !6)
  115. !6 = !{!7, !7}
  116. !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64, align: 64)
  117. !8 = !{!9}
  118. !9 = !DILocalVariable(name: "ptr", arg: 1, scope: !4, file: !1, line: 1, type: !7)
  119. !10 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 5, type: !11, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: true, function: i32 (i32, i8**)* @main, variables: !17)
  120. !11 = !DISubroutineType(types: !12)
  121. !12 = !{!13, !13, !14}
  122. !13 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
  123. !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64, align: 64)
  124. !15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !16, size: 64, align: 64)
  125. !16 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
  126. !17 = !{!18, !19, !20, !24, !26}
  127. !18 = !DILocalVariable(name: "argc", arg: 1, scope: !10, file: !1, line: 5, type: !13)
  128. !19 = !DILocalVariable(name: "argv", arg: 2, scope: !10, file: !1, line: 5, type: !14)
  129. !20 = !DILocalVariable(name: "arr", scope: !10, file: !1, line: 6, type: !21)
  130. !21 = !DICompositeType(tag: DW_TAG_array_type, baseType: !16, size: 256, align: 8, elements: !22)
  131. !22 = !{!23}
  132. !23 = !DISubrange(count: 32)
  133. !24 = !DILocalVariable(name: "i", scope: !25, file: !1, line: 8, type: !13)
  134. !25 = distinct !DILexicalBlock(scope: !10, file: !1, line: 8, column: 3)
  135. !26 = !DILocalVariable(name: "i", scope: !27, file: !1, line: 12, type: !13)
  136. !27 = distinct !DILexicalBlock(scope: !10, file: !1, line: 12, column: 3)
  137. !28 = !{i32 2, !"Dwarf Version", i32 4}
  138. !29 = !{i32 2, !"Debug Info Version", i32 3}
  139. !30 = !{!"clang version 3.8.0 (git@github.com:llvm-mirror/clang.git 33e8a9bf1ce3556c395d94c66ea83f6f5f06f2bf) (git@github.com:llvm-mirror/llvm.git 9dd7e2da2a6e6e68c04162ecc9df00e3fd84dc61)"}
  140. !31 = !DIExpression()
  141. !32 = !DILocation(line: 1, column: 24, scope: !4)
  142. !33 = !DILocation(line: 2, column: 3, scope: !4)
  143. !34 = !DILocation(line: 5, column: 14, scope: !10)
  144. !35 = !DILocation(line: 5, column: 27, scope: !10)
  145. !36 = !DILocation(line: 6, column: 3, scope: !10)
  146. !37 = !DILocation(line: 6, column: 8, scope: !10)
  147. !38 = !DILocation(line: 7, column: 3, scope: !10)
  148. !39 = !DILocation(line: 8, column: 12, scope: !25)
  149. !40 = !DILocation(line: 10, column: 12, scope: !41)
  150. !41 = distinct !DILexicalBlock(scope: !42, file: !1, line: 8, column: 32)
  151. !42 = distinct !DILexicalBlock(scope: !25, file: !1, line: 8, column: 3)
  152. !43 = !DILocation(line: 12, column: 3, scope: !27)
  153. !44 = !DILocation(line: 14, column: 5, scope: !45)
  154. !45 = distinct !DILexicalBlock(scope: !46, file: !1, line: 12, column: 32)
  155. !46 = distinct !DILexicalBlock(scope: !27, file: !1, line: 12, column: 3)
  156. !47 = !DILocation(line: 14, column: 12, scope: !45)
  157. !48 = !{!49, !49, i64 0}
  158. !49 = !{!"omnipotent char", !50, i64 0}
  159. !50 = !{!"Simple C/C++ TBAA"}
  160. !51 = !DILocation(line: 14, column: 23, scope: !45)
  161. !52 = !DILocation(line: 17, column: 10, scope: !10)
  162. !53 = !DILocation(line: 18, column: 1, scope: !10)
  163. !54 = !DILocation(line: 17, column: 3, scope: !10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement