2016-08-04 02:17:35 +08:00
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -O0 < %s
2013-10-18 22:20:11 +08:00
; This test formerly failed due to a DBG_VALUE being placed prior to a PHI
; when fast-isel is partially successful before punting to DAG-isel.
2016-12-22 08:45:21 +08:00
source_filename = "test/CodeGen/PowerPC/pr17168.ll"
2013-10-18 22:20:11 +08:00
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
target triple = "powerpc64-unknown-linux-gnu"
2016-12-22 08:45:21 +08:00
@grid_points = external global [ 3 x i32 ] , align 4 , !dbg !0
2013-10-18 22:20:11 +08:00
; Function Attrs: nounwind
2016-12-22 08:45:21 +08:00
define fastcc void @compute_rhs ( ) #0 !dbg !263 {
2013-10-18 22:20:11 +08:00
entry:
2016-12-22 08:45:21 +08:00
br i1 undef , label %for.cond871.preheader.for.inc960_crit_edge , label %for.end1042 , !dbg !281
2013-10-18 22:20:11 +08:00
for.cond871.preheader.for.inc960_crit_edge: ; preds = %for.cond871.preheader.for.inc960_crit_edge, %entry
2016-12-22 08:45:21 +08:00
br i1 false , label %for.cond871.preheader.for.inc960_crit_edge , label %for.cond964.preheader , !dbg !281
2013-10-18 22:20:11 +08:00
for.cond964.preheader: ; preds = %for.cond871.preheader.for.inc960_crit_edge
2016-12-22 08:45:21 +08:00
br i1 undef , label %for.cond968.preheader , label %for.end1042 , !dbg !283
2013-10-18 22:20:11 +08:00
for.cond968.preheader: ; preds = %for.cond968.preheader, %for.cond964.preheader
2016-12-22 08:45:21 +08:00
br i1 false , label %for.cond968.preheader , label %for.end1042 , !dbg !283
2013-10-18 22:20:11 +08:00
for.end1042: ; preds = %for.cond968.preheader, %for.cond964.preheader, %entry
2016-12-22 08:45:21 +08:00
2013-10-18 22:20:11 +08:00
%0 = phi i32 [ undef , %for.cond964.preheader ] , [ undef , %for.cond968.preheader ] , [ undef , %entry ]
2016-12-22 08:45:21 +08:00
%1 = load i32 , i32 * getelementptr inbounds ( [ 3 x i32 ] , [ 3 x i32 ] * @grid_points , i64 0 , i64 0 ) , align 4 , !dbg !285 , !tbaa !286
tail call void @llvm.dbg.value ( metadata i32 1 , i64 0 , metadata !268 , metadata !290 ) , !dbg !291
%sub10454270 = add nsw i32 %0 , -1 , !dbg !291
%cmp10464271 = icmp sgt i32 %sub10454270 , 1 , !dbg !291
%sub11134263 = add nsw i32 %1 , -1 , !dbg !293
%cmp11144264 = icmp sgt i32 %sub11134263 , 1 , !dbg !293
br i1 %cmp11144264 , label %for.cond1116.preheader , label %for.cond1816.preheader.for.inc1898_crit_edge , !dbg !293
2013-10-18 22:20:11 +08:00
for.cond1116.preheader: ; preds = %for.inc1658, %for.end1042
2016-12-22 08:45:21 +08:00
br i1 %cmp10464271 , label %for.body1123 , label %for.inc1658 , !dbg !295
2013-10-18 22:20:11 +08:00
for.body1123: ; preds = %for.body1123, %for.cond1116.preheader
2016-12-22 08:45:21 +08:00
br label %for.body1123 , !dbg !298
2013-10-18 22:20:11 +08:00
for.inc1658: ; preds = %for.cond1116.preheader
2016-12-22 08:45:21 +08:00
br i1 undef , label %for.cond1116.preheader , label %for.cond1816.preheader.for.inc1898_crit_edge , !dbg !293
2013-10-18 22:20:11 +08:00
for.cond1816.preheader.for.inc1898_crit_edge: ; preds = %for.cond1816.preheader.for.inc1898_crit_edge, %for.inc1658, %for.end1042
2016-12-22 08:45:21 +08:00
br label %for.cond1816.preheader.for.inc1898_crit_edge , !dbg !301
2013-10-18 22:20:11 +08:00
}
; Function Attrs: nounwind readnone
Move the complex address expression out of DIVariable and into an extra
argument of the llvm.dbg.declare/llvm.dbg.value intrinsics.
Previously, DIVariable was a variable-length field that has an optional
reference to a Metadata array consisting of a variable number of
complex address expressions. In the case of OpPiece expressions this is
wasting a lot of storage in IR, because when an aggregate type is, e.g.,
SROA'd into all of its n individual members, the IR will contain n copies
of the DIVariable, all alike, only differing in the complex address
reference at the end.
By making the complex address into an extra argument of the
dbg.value/dbg.declare intrinsics, all of the pieces can reference the
same variable and the complex address expressions can be uniqued across
the CU, too.
Down the road, this will allow us to move other flags, such as
"indirection" out of the DIVariable, too.
The new intrinsics look like this:
declare void @llvm.dbg.declare(metadata %storage, metadata %var, metadata %expr)
declare void @llvm.dbg.value(metadata %storage, i64 %offset, metadata %var, metadata %expr)
This patch adds a new LLVM-local tag to DIExpressions, so we can detect
and pretty-print DIExpression metadata nodes.
What this patch doesn't do:
This patch does not touch the "Indirect" field in DIVariable; but moving
that into the expression would be a natural next step.
http://reviews.llvm.org/D4919
rdar://problem/17994491
Thanks to dblaikie and dexonsmith for reviewing this patch!
Note: I accidentally committed a bogus older version of this patch previously.
llvm-svn: 218787
2014-10-02 02:55:02 +08:00
declare void @llvm.dbg.value ( metadata , i64 , metadata , metadata ) #1
2013-10-18 22:20:11 +08:00
attributes #0 = { nounwind "less-precise-fpmad" = "false" "no-frame-pointer-elim" = "true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math" = "false" "no-nans-fp-math" = "false" "stack-protector-buffer-size" = "8" "unsafe-fp-math" = "false" "use-soft-float" = "false" }
attributes #1 = { nounwind readnone }
2016-12-22 08:45:21 +08:00
!llvm.dbg.cu = ! { !7 }
!llvm.module.flags = ! { !261 , !262 }
2017-08-31 02:06:51 +08:00
!0 = !DIGlobalVariableExpression ( var: !1 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!1 = !DIGlobalVariable ( name: "grid_points" , scope: null , file: !2 , line: 28 , type: !3 , isLocal: true , isDefinition: true )
!2 = !DIFile ( filename: "./header.h" , directory: "/home/hfinkel/src/NPB2.3-omp-C/BT" )
!3 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !4 , size: 96 , align: 32 , elements: !5 )
!4 = !DIBasicType ( name: "int" , size: 32 , align: 32 , encoding: D W _ A T E _ s i g n e d )
!5 = ! { !6 }
!6 = !DISubrange ( count: 3 )
!7 = distinct !DICompileUnit ( language: D W _ L A N G _ C 99 , file: !8 , producer: "clang version 3.4 (trunk 190311)" , isOptimized: true , runtimeVersion: 0 , emissionKind: F u l l D e b u g , enums: !9 , retainedTypes: !9 , globals: !10 , imports: !9 )
!8 = !DIFile ( filename: "bt.c" , directory: "/home/hfinkel/src/NPB2.3-omp-C/BT" )
!9 = ! { }
!10 = ! { !0 , !11 , !14 , !20 , !22 , !24 , !26 , !28 , !30 , !32 , !34 , !36 , !38 , !40 , !42 , !44 , !46 , !48 , !50 , !52 , !54 , !56 , !58 , !60 , !62 , !64 , !66 , !68 , !70 , !72 , !74 , !76 , !78 , !80 , !82 , !84 , !86 , !88 , !93 , !97 , !99 , !101 , !103 , !105 , !107 , !109 , !114 , !116 , !118 , !120 , !122 , !124 , !126 , !128 , !130 , !132 , !134 , !136 , !138 , !140 , !142 , !144 , !146 , !148 , !150 , !152 , !154 , !156 , !158 , !160 , !162 , !164 , !166 , !168 , !170 , !172 , !174 , !176 , !178 , !180 , !182 , !184 , !186 , !188 , !190 , !192 , !194 , !196 , !198 , !200 , !202 , !204 , !206 , !208 , !210 , !212 , !214 , !216 , !218 , !220 , !222 , !224 , !226 , !228 , !230 , !232 , !236 , !241 , !243 , !247 , !249 , !253 , !255 , !257 , !259 }
2017-08-31 02:06:51 +08:00
!11 = !DIGlobalVariableExpression ( var: !12 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!12 = !DIGlobalVariable ( name: "dt" , scope: null , file: !2 , line: 35 , type: !13 , isLocal: true , isDefinition: true )
!13 = !DIBasicType ( name: "double" , size: 64 , align: 64 , encoding: D W _ A T E _ float )
2017-08-31 02:06:51 +08:00
!14 = !DIGlobalVariableExpression ( var: !15 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!15 = !DIGlobalVariable ( name: "rhs" , scope: null , file: !2 , line: 68 , type: !16 , isLocal: true , isDefinition: true )
!16 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 1385839040 , align: 64 , elements: !17 )
!17 = ! { !18 , !18 , !18 , !19 }
!18 = !DISubrange ( count: 163 )
!19 = !DISubrange ( count: 5 )
2017-08-31 02:06:51 +08:00
!20 = !DIGlobalVariableExpression ( var: !21 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!21 = !DIGlobalVariable ( name: "zzcon5" , scope: null , file: !2 , line: 42 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!22 = !DIGlobalVariableExpression ( var: !23 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!23 = !DIGlobalVariable ( name: "zzcon4" , scope: null , file: !2 , line: 42 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!24 = !DIGlobalVariableExpression ( var: !25 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!25 = !DIGlobalVariable ( name: "zzcon3" , scope: null , file: !2 , line: 42 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!26 = !DIGlobalVariableExpression ( var: !27 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!27 = !DIGlobalVariable ( name: "dz5tz1" , scope: null , file: !2 , line: 43 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!28 = !DIGlobalVariableExpression ( var: !29 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!29 = !DIGlobalVariable ( name: "dz4tz1" , scope: null , file: !2 , line: 43 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!30 = !DIGlobalVariableExpression ( var: !31 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!31 = !DIGlobalVariable ( name: "dz3tz1" , scope: null , file: !2 , line: 43 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!32 = !DIGlobalVariableExpression ( var: !33 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!33 = !DIGlobalVariable ( name: "zzcon2" , scope: null , file: !2 , line: 42 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!34 = !DIGlobalVariableExpression ( var: !35 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!35 = !DIGlobalVariable ( name: "dz2tz1" , scope: null , file: !2 , line: 43 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!36 = !DIGlobalVariableExpression ( var: !37 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!37 = !DIGlobalVariable ( name: "tz2" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!38 = !DIGlobalVariableExpression ( var: !39 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!39 = !DIGlobalVariable ( name: "dz1tz1" , scope: null , file: !2 , line: 43 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!40 = !DIGlobalVariableExpression ( var: !41 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!41 = !DIGlobalVariable ( name: "yycon5" , scope: null , file: !2 , line: 40 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!42 = !DIGlobalVariableExpression ( var: !43 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!43 = !DIGlobalVariable ( name: "yycon4" , scope: null , file: !2 , line: 40 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!44 = !DIGlobalVariableExpression ( var: !45 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!45 = !DIGlobalVariable ( name: "yycon3" , scope: null , file: !2 , line: 40 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!46 = !DIGlobalVariableExpression ( var: !47 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!47 = !DIGlobalVariable ( name: "dy5ty1" , scope: null , file: !2 , line: 41 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!48 = !DIGlobalVariableExpression ( var: !49 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!49 = !DIGlobalVariable ( name: "dy4ty1" , scope: null , file: !2 , line: 41 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!50 = !DIGlobalVariableExpression ( var: !51 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!51 = !DIGlobalVariable ( name: "dy3ty1" , scope: null , file: !2 , line: 41 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!52 = !DIGlobalVariableExpression ( var: !53 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!53 = !DIGlobalVariable ( name: "yycon2" , scope: null , file: !2 , line: 40 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!54 = !DIGlobalVariableExpression ( var: !55 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!55 = !DIGlobalVariable ( name: "dy2ty1" , scope: null , file: !2 , line: 41 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!56 = !DIGlobalVariableExpression ( var: !57 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!57 = !DIGlobalVariable ( name: "ty2" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!58 = !DIGlobalVariableExpression ( var: !59 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!59 = !DIGlobalVariable ( name: "dy1ty1" , scope: null , file: !2 , line: 41 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!60 = !DIGlobalVariableExpression ( var: !61 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!61 = !DIGlobalVariable ( name: "dssp" , scope: null , file: !2 , line: 35 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!62 = !DIGlobalVariableExpression ( var: !63 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!63 = !DIGlobalVariable ( name: "c1" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!64 = !DIGlobalVariableExpression ( var: !65 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!65 = !DIGlobalVariable ( name: "xxcon5" , scope: null , file: !2 , line: 38 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!66 = !DIGlobalVariableExpression ( var: !67 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!67 = !DIGlobalVariable ( name: "xxcon4" , scope: null , file: !2 , line: 38 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!68 = !DIGlobalVariableExpression ( var: !69 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!69 = !DIGlobalVariable ( name: "xxcon3" , scope: null , file: !2 , line: 38 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!70 = !DIGlobalVariableExpression ( var: !71 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!71 = !DIGlobalVariable ( name: "dx5tx1" , scope: null , file: !2 , line: 39 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!72 = !DIGlobalVariableExpression ( var: !73 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!73 = !DIGlobalVariable ( name: "dx4tx1" , scope: null , file: !2 , line: 39 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!74 = !DIGlobalVariableExpression ( var: !75 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!75 = !DIGlobalVariable ( name: "dx3tx1" , scope: null , file: !2 , line: 39 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!76 = !DIGlobalVariableExpression ( var: !77 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!77 = !DIGlobalVariable ( name: "c2" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!78 = !DIGlobalVariableExpression ( var: !79 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!79 = !DIGlobalVariable ( name: "con43" , scope: null , file: !2 , line: 48 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!80 = !DIGlobalVariableExpression ( var: !81 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!81 = !DIGlobalVariable ( name: "xxcon2" , scope: null , file: !2 , line: 38 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!82 = !DIGlobalVariableExpression ( var: !83 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!83 = !DIGlobalVariable ( name: "dx2tx1" , scope: null , file: !2 , line: 39 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!84 = !DIGlobalVariableExpression ( var: !85 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!85 = !DIGlobalVariable ( name: "tx2" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!86 = !DIGlobalVariableExpression ( var: !87 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!87 = !DIGlobalVariable ( name: "dx1tx1" , scope: null , file: !2 , line: 39 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!88 = !DIGlobalVariableExpression ( var: !89 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!89 = !DIGlobalVariable ( name: "forcing" , scope: null , file: !2 , line: 66 , type: !90 , isLocal: true , isDefinition: true )
!90 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 1663006848 , align: 64 , elements: !91 )
!91 = ! { !18 , !18 , !18 , !92 }
!92 = !DISubrange ( count: 6 )
2017-08-31 02:06:51 +08:00
!93 = !DIGlobalVariableExpression ( var: !94 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!94 = !DIGlobalVariable ( name: "qs" , scope: null , file: !2 , line: 63 , type: !95 , isLocal: true , isDefinition: true )
!95 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 277167808 , align: 64 , elements: !96 )
!96 = ! { !18 , !18 , !18 }
2017-08-31 02:06:51 +08:00
!97 = !DIGlobalVariableExpression ( var: !98 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!98 = !DIGlobalVariable ( name: "square" , scope: null , file: !2 , line: 65 , type: !95 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!99 = !DIGlobalVariableExpression ( var: !100 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!100 = !DIGlobalVariable ( name: "ws" , scope: null , file: !2 , line: 62 , type: !95 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!101 = !DIGlobalVariableExpression ( var: !102 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!102 = !DIGlobalVariable ( name: "vs" , scope: null , file: !2 , line: 61 , type: !95 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!103 = !DIGlobalVariableExpression ( var: !104 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!104 = !DIGlobalVariable ( name: "us" , scope: null , file: !2 , line: 60 , type: !95 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!105 = !DIGlobalVariableExpression ( var: !106 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!106 = !DIGlobalVariable ( name: "rho_i" , scope: null , file: !2 , line: 64 , type: !95 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!107 = !DIGlobalVariableExpression ( var: !108 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!108 = !DIGlobalVariable ( name: "u" , scope: null , file: !2 , line: 67 , type: !16 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!109 = !DIGlobalVariableExpression ( var: !110 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!110 = !DIGlobalVariable ( name: "ce" , scope: null , file: !2 , line: 36 , type: !111 , isLocal: true , isDefinition: true )
!111 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 4160 , align: 64 , elements: !112 )
!112 = ! { !19 , !113 }
!113 = !DISubrange ( count: 13 )
2017-08-31 02:06:51 +08:00
!114 = !DIGlobalVariableExpression ( var: !115 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!115 = !DIGlobalVariable ( name: "dnzm1" , scope: null , file: !2 , line: 44 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!116 = !DIGlobalVariableExpression ( var: !117 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!117 = !DIGlobalVariable ( name: "dnym1" , scope: null , file: !2 , line: 44 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!118 = !DIGlobalVariableExpression ( var: !119 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!119 = !DIGlobalVariable ( name: "dnxm1" , scope: null , file: !2 , line: 44 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!120 = !DIGlobalVariableExpression ( var: !121 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!121 = !DIGlobalVariable ( name: "zzcon1" , scope: null , file: !2 , line: 42 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!122 = !DIGlobalVariableExpression ( var: !123 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!123 = !DIGlobalVariable ( name: "yycon1" , scope: null , file: !2 , line: 40 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!124 = !DIGlobalVariableExpression ( var: !125 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!125 = !DIGlobalVariable ( name: "xxcon1" , scope: null , file: !2 , line: 38 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!126 = !DIGlobalVariableExpression ( var: !127 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!127 = !DIGlobalVariable ( name: "con16" , scope: null , file: !2 , line: 48 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!128 = !DIGlobalVariableExpression ( var: !129 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!129 = !DIGlobalVariable ( name: "c2iv" , scope: null , file: !2 , line: 48 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!130 = !DIGlobalVariableExpression ( var: !131 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!131 = !DIGlobalVariable ( name: "c3c4tz3" , scope: null , file: !2 , line: 48 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!132 = !DIGlobalVariableExpression ( var: !133 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!133 = !DIGlobalVariable ( name: "c3c4ty3" , scope: null , file: !2 , line: 48 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!134 = !DIGlobalVariableExpression ( var: !135 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!135 = !DIGlobalVariable ( name: "c3c4tx3" , scope: null , file: !2 , line: 48 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!136 = !DIGlobalVariableExpression ( var: !137 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!137 = !DIGlobalVariable ( name: "comz6" , scope: null , file: !2 , line: 47 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!138 = !DIGlobalVariableExpression ( var: !139 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!139 = !DIGlobalVariable ( name: "comz5" , scope: null , file: !2 , line: 47 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!140 = !DIGlobalVariableExpression ( var: !141 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!141 = !DIGlobalVariable ( name: "comz4" , scope: null , file: !2 , line: 47 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!142 = !DIGlobalVariableExpression ( var: !143 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!143 = !DIGlobalVariable ( name: "comz1" , scope: null , file: !2 , line: 47 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!144 = !DIGlobalVariableExpression ( var: !145 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!145 = !DIGlobalVariable ( name: "dtdssp" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!146 = !DIGlobalVariableExpression ( var: !147 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!147 = !DIGlobalVariable ( name: "c2dttz1" , scope: null , file: !2 , line: 47 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!148 = !DIGlobalVariableExpression ( var: !149 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!149 = !DIGlobalVariable ( name: "c2dtty1" , scope: null , file: !2 , line: 47 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!150 = !DIGlobalVariableExpression ( var: !151 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!151 = !DIGlobalVariable ( name: "c2dttx1" , scope: null , file: !2 , line: 47 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!152 = !DIGlobalVariableExpression ( var: !153 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!153 = !DIGlobalVariable ( name: "dttz2" , scope: null , file: !2 , line: 46 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!154 = !DIGlobalVariableExpression ( var: !155 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!155 = !DIGlobalVariable ( name: "dttz1" , scope: null , file: !2 , line: 46 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!156 = !DIGlobalVariableExpression ( var: !157 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!157 = !DIGlobalVariable ( name: "dtty2" , scope: null , file: !2 , line: 46 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!158 = !DIGlobalVariableExpression ( var: !159 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!159 = !DIGlobalVariable ( name: "dtty1" , scope: null , file: !2 , line: 46 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!160 = !DIGlobalVariableExpression ( var: !161 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!161 = !DIGlobalVariable ( name: "dttx2" , scope: null , file: !2 , line: 46 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!162 = !DIGlobalVariableExpression ( var: !163 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!163 = !DIGlobalVariable ( name: "dttx1" , scope: null , file: !2 , line: 46 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!164 = !DIGlobalVariableExpression ( var: !165 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!165 = !DIGlobalVariable ( name: "c5dssp" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!166 = !DIGlobalVariableExpression ( var: !167 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!167 = !DIGlobalVariable ( name: "c4dssp" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!168 = !DIGlobalVariableExpression ( var: !169 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!169 = !DIGlobalVariable ( name: "dzmax" , scope: null , file: !2 , line: 37 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!170 = !DIGlobalVariableExpression ( var: !171 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!171 = !DIGlobalVariable ( name: "dymax" , scope: null , file: !2 , line: 37 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!172 = !DIGlobalVariableExpression ( var: !173 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!173 = !DIGlobalVariable ( name: "dxmax" , scope: null , file: !2 , line: 37 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!174 = !DIGlobalVariableExpression ( var: !175 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!175 = !DIGlobalVariable ( name: "dz5" , scope: null , file: !2 , line: 34 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!176 = !DIGlobalVariableExpression ( var: !177 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!177 = !DIGlobalVariable ( name: "dz4" , scope: null , file: !2 , line: 34 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!178 = !DIGlobalVariableExpression ( var: !179 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!179 = !DIGlobalVariable ( name: "dz3" , scope: null , file: !2 , line: 34 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!180 = !DIGlobalVariableExpression ( var: !181 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!181 = !DIGlobalVariable ( name: "dz2" , scope: null , file: !2 , line: 34 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!182 = !DIGlobalVariableExpression ( var: !183 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!183 = !DIGlobalVariable ( name: "dz1" , scope: null , file: !2 , line: 34 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!184 = !DIGlobalVariableExpression ( var: !185 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!185 = !DIGlobalVariable ( name: "dy5" , scope: null , file: !2 , line: 33 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!186 = !DIGlobalVariableExpression ( var: !187 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!187 = !DIGlobalVariable ( name: "dy4" , scope: null , file: !2 , line: 33 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!188 = !DIGlobalVariableExpression ( var: !189 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!189 = !DIGlobalVariable ( name: "dy3" , scope: null , file: !2 , line: 33 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!190 = !DIGlobalVariableExpression ( var: !191 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!191 = !DIGlobalVariable ( name: "dy2" , scope: null , file: !2 , line: 33 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!192 = !DIGlobalVariableExpression ( var: !193 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!193 = !DIGlobalVariable ( name: "dy1" , scope: null , file: !2 , line: 33 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!194 = !DIGlobalVariableExpression ( var: !195 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!195 = !DIGlobalVariable ( name: "dx5" , scope: null , file: !2 , line: 32 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!196 = !DIGlobalVariableExpression ( var: !197 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!197 = !DIGlobalVariable ( name: "dx4" , scope: null , file: !2 , line: 32 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!198 = !DIGlobalVariableExpression ( var: !199 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!199 = !DIGlobalVariable ( name: "dx3" , scope: null , file: !2 , line: 32 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!200 = !DIGlobalVariableExpression ( var: !201 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!201 = !DIGlobalVariable ( name: "dx2" , scope: null , file: !2 , line: 32 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!202 = !DIGlobalVariableExpression ( var: !203 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!203 = !DIGlobalVariable ( name: "dx1" , scope: null , file: !2 , line: 32 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!204 = !DIGlobalVariableExpression ( var: !205 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!205 = !DIGlobalVariable ( name: "tz3" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!206 = !DIGlobalVariableExpression ( var: !207 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!207 = !DIGlobalVariable ( name: "tz1" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!208 = !DIGlobalVariableExpression ( var: !209 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!209 = !DIGlobalVariable ( name: "ty3" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!210 = !DIGlobalVariableExpression ( var: !211 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!211 = !DIGlobalVariable ( name: "ty1" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!212 = !DIGlobalVariableExpression ( var: !213 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!213 = !DIGlobalVariable ( name: "tx3" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!214 = !DIGlobalVariableExpression ( var: !215 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!215 = !DIGlobalVariable ( name: "tx1" , scope: null , file: !2 , line: 31 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!216 = !DIGlobalVariableExpression ( var: !217 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!217 = !DIGlobalVariable ( name: "conz1" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!218 = !DIGlobalVariableExpression ( var: !219 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!219 = !DIGlobalVariable ( name: "c1345" , scope: null , file: !2 , line: 44 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!220 = !DIGlobalVariableExpression ( var: !221 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!221 = !DIGlobalVariable ( name: "c3c4" , scope: null , file: !2 , line: 44 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!222 = !DIGlobalVariableExpression ( var: !223 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!223 = !DIGlobalVariable ( name: "c1c5" , scope: null , file: !2 , line: 44 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!224 = !DIGlobalVariableExpression ( var: !225 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!225 = !DIGlobalVariable ( name: "c1c2" , scope: null , file: !2 , line: 44 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!226 = !DIGlobalVariableExpression ( var: !227 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!227 = !DIGlobalVariable ( name: "c5" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!228 = !DIGlobalVariableExpression ( var: !229 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!229 = !DIGlobalVariable ( name: "c4" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!230 = !DIGlobalVariableExpression ( var: !231 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!231 = !DIGlobalVariable ( name: "c3" , scope: null , file: !2 , line: 45 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!232 = !DIGlobalVariableExpression ( var: !233 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!233 = !DIGlobalVariable ( name: "lhs" , scope: null , file: !2 , line: 69 , type: !234 , isLocal: true , isDefinition: true )
!234 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 20787585600 , align: 64 , elements: !235 )
!235 = ! { !18 , !18 , !18 , !6 , !19 , !19 }
2017-08-31 02:06:51 +08:00
!236 = !DIGlobalVariableExpression ( var: !237 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!237 = !DIGlobalVariable ( name: "q" , scope: null , file: !2 , line: 73 , type: !238 , isLocal: true , isDefinition: true )
!238 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 10368 , align: 64 , elements: !239 )
!239 = ! { !240 }
!240 = !DISubrange ( count: 162 )
2017-08-31 02:06:51 +08:00
!241 = !DIGlobalVariableExpression ( var: !242 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!242 = !DIGlobalVariable ( name: "cuf" , scope: null , file: !2 , line: 72 , type: !238 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!243 = !DIGlobalVariableExpression ( var: !244 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!244 = !DIGlobalVariable ( name: "buf" , scope: null , file: !2 , line: 75 , type: !245 , isLocal: true , isDefinition: true )
!245 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 51840 , align: 64 , elements: !246 )
!246 = ! { !240 , !19 }
2017-08-31 02:06:51 +08:00
!247 = !DIGlobalVariableExpression ( var: !248 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!248 = !DIGlobalVariable ( name: "ue" , scope: null , file: !2 , line: 74 , type: !245 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!249 = !DIGlobalVariableExpression ( var: !250 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!250 = !DIGlobalVariable ( name: "njac" , scope: null , file: !2 , line: 86 , type: !251 , isLocal: true , isDefinition: true )
!251 = !DICompositeType ( tag: D W _ T A G _ a r r a y _ type , baseType: !13 , size: 6886684800 , align: 64 , elements: !252 )
!252 = ! { !18 , !18 , !240 , !19 , !19 }
2017-08-31 02:06:51 +08:00
!253 = !DIGlobalVariableExpression ( var: !254 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!254 = !DIGlobalVariable ( name: "fjac" , scope: null , file: !2 , line: 84 , type: !251 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!255 = !DIGlobalVariableExpression ( var: !256 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!256 = !DIGlobalVariable ( name: "tmp3" , scope: null , file: !2 , line: 88 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!257 = !DIGlobalVariableExpression ( var: !258 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!258 = !DIGlobalVariable ( name: "tmp2" , scope: null , file: !2 , line: 88 , type: !13 , isLocal: true , isDefinition: true )
2017-08-31 02:06:51 +08:00
!259 = !DIGlobalVariableExpression ( var: !260 , expr: !DIExpression ( ) )
2016-12-22 08:45:21 +08:00
!260 = !DIGlobalVariable ( name: "tmp1" , scope: null , file: !2 , line: 88 , type: !13 , isLocal: true , isDefinition: true )
!261 = ! { i32 2 , !"Dwarf Version" , i32 4 }
!262 = ! { i32 1 , !"Debug Info Version" , i32 3 }
[DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label.
In order to set breakpoints on labels and list source code around
labels, we need collect debug information for labels, i.e., label
name, the function label belong, line number in the file, and the
address label located. In order to keep these information in LLVM
IR and to allow backend to generate debug information correctly.
We create a new kind of metadata for labels, DILabel. The format
of DILabel is
!DILabel(scope: !1, name: "foo", file: !2, line: 3)
We hope to keep debug information as much as possible even the
code is optimized. So, we create a new kind of intrinsic for label
metadata to avoid the metadata is eliminated with basic block.
The intrinsic will keep existing if we keep it from optimized out.
The format of the intrinsic is
llvm.dbg.label(metadata !1)
It has only one argument, that is the DILabel metadata. The
intrinsic will follow the label immediately. Backend could get the
label metadata through the intrinsic's parameter.
We also create DIBuilder API for labels to be used by Frontend.
Frontend could use createLabel() to allocate DILabel objects, and use
insertLabel() to insert llvm.dbg.label intrinsic in LLVM IR.
Differential Revision: https://reviews.llvm.org/D45024
Patch by Hsiangkai Wang.
llvm-svn: 331841
2018-05-09 10:40:45 +08:00
!263 = distinct !DISubprogram ( name: "compute_rhs" , scope: !8 , file: !8 , line: 1767 , type: !264 , isLocal: true , isDefinition: true , scopeLine: 1767 , virtualIndex: 6 , flags: D I F l a g P r o t o t y p e d , isOptimized: true , unit: !7 , retainedNodes: !266 )
2016-12-22 08:45:21 +08:00
!264 = !DISubroutineType ( types: !265 )
!265 = ! { null }
!266 = ! { !267 , !268 , !269 , !270 , !271 , !272 , !273 , !274 , !275 , !276 , !277 , !278 , !279 , !280 }
!267 = !DILocalVariable ( name: "i" , scope: !263 , file: !8 , line: 1769 , type: !4 )
!268 = !DILocalVariable ( name: "j" , scope: !263 , file: !8 , line: 1769 , type: !4 )
!269 = !DILocalVariable ( name: "k" , scope: !263 , file: !8 , line: 1769 , type: !4 )
!270 = !DILocalVariable ( name: "m" , scope: !263 , file: !8 , line: 1769 , type: !4 )
!271 = !DILocalVariable ( name: "rho_inv" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!272 = !DILocalVariable ( name: "uijk" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!273 = !DILocalVariable ( name: "up1" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!274 = !DILocalVariable ( name: "um1" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!275 = !DILocalVariable ( name: "vijk" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!276 = !DILocalVariable ( name: "vp1" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!277 = !DILocalVariable ( name: "vm1" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!278 = !DILocalVariable ( name: "wijk" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!279 = !DILocalVariable ( name: "wp1" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!280 = !DILocalVariable ( name: "wm1" , scope: !263 , file: !8 , line: 1770 , type: !13 )
!281 = !DILocation ( line: 1898 , scope: !282 )
!282 = distinct !DILexicalBlock ( scope: !263 , file: !8 , line: 1898 )
!283 = !DILocation ( line: 1913 , scope: !284 )
!284 = distinct !DILexicalBlock ( scope: !263 , file: !8 , line: 1913 )
!285 = !DILocation ( line: 1923 , scope: !263 )
!286 = ! { !287 , !287 , i64 0 }
!287 = ! { !"int" , !288 }
!288 = ! { !"omnipotent char" , !289 }
!289 = ! { !"Simple C/C++ TBAA" }
!290 = !DIExpression ( )
!291 = !DILocation ( line: 1925 , scope: !292 )
!292 = distinct !DILexicalBlock ( scope: !263 , file: !8 , line: 1925 )
!293 = !DILocation ( line: 1939 , scope: !294 )
!294 = distinct !DILexicalBlock ( scope: !263 , file: !8 , line: 1939 )
!295 = !DILocation ( line: 1940 , scope: !296 )
!296 = distinct !DILexicalBlock ( scope: !297 , file: !8 , line: 1940 )
!297 = distinct !DILexicalBlock ( scope: !294 , file: !8 , line: 1939 )
!298 = !DILocation ( line: 1941 , scope: !299 )
!299 = distinct !DILexicalBlock ( scope: !300 , file: !8 , line: 1941 )
!300 = distinct !DILexicalBlock ( scope: !296 , file: !8 , line: 1940 )
!301 = !DILocation ( line: 2020 , scope: !302 )
!302 = distinct !DILexicalBlock ( scope: !303 , file: !8 , line: 2020 )
!303 = distinct !DILexicalBlock ( scope: !304 , file: !8 , line: 2019 )
!304 = distinct !DILexicalBlock ( scope: !305 , file: !8 , line: 2019 )
!305 = distinct !DILexicalBlock ( scope: !306 , file: !8 , line: 2018 )
!306 = distinct !DILexicalBlock ( scope: !263 , file: !8 , line: 2018 )
2013-10-18 22:20:11 +08:00