Imported Upstream version 5.18.0.167

Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-10-20 08:25:10 +00:00
parent e19d552987
commit b084638f15
28489 changed files with 184 additions and 3866856 deletions

View File

@ -1,173 +0,0 @@
# RUN: llc -start-after=livedebugvalues -filetype=obj -o - %s \
# RUN: | llvm-dwarfdump - | FileCheck %s
# CHECK: .debug_info contents:
# CHECK: DW_TAG_formal_parameter
# CHECK: DW_TAG_formal_parameter
# CHECK-NEXT: DW_AT_location
# CHECK-NEXT: 0x0000000000000000 - 0x0000000000000014: DW_OP_reg1 W1
# CHECK-NEXT: 0x0000000000000014 - 0x0000000000000038: DW_OP_breg31 WSP+8
# CHECK-NEXT: DW_AT_name {{.*}}"y"
--- |
; Generated at -Os from:
; struct Rect {
; double x, y, w, h;
; };
; void g(struct Rect);
; void h(int *);
; int f(int x, int y, struct Rect s) {
; g(s);
; if (y)
; h(&x);
; return 0;
; }
source_filename = "/tmp/clobber.c"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-ios"
%struct.Rect = type { double, double, double, double }
; Function Attrs: nounwind optsize ssp
define i32 @f(i32 %x, i32 %y, [4 x double] %s.coerce) local_unnamed_addr #0 !dbg !7 {
entry:
%x.addr = alloca i32, align 4
tail call void @llvm.dbg.value(metadata i32 %x, i64 0, metadata !19, metadata !22), !dbg !23
store i32 %x, i32* %x.addr, align 4, !tbaa !24
tail call void @llvm.dbg.value(metadata i32 %y, i64 0, metadata !20, metadata !22), !dbg !28
tail call void @llvm.dbg.declare(metadata %struct.Rect* undef, metadata !21, metadata !22), !dbg !29
tail call void @g([4 x double] %s.coerce) #4, !dbg !30
%tobool = icmp eq i32 %y, 0, !dbg !31
br i1 %tobool, label %if.end, label %if.then, !dbg !33
if.then: ; preds = %entry
tail call void @llvm.dbg.value(metadata i32* %x.addr, i64 0, metadata !19, metadata !22), !dbg !23
call void @h(i32* nonnull %x.addr) #4, !dbg !34
br label %if.end, !dbg !34
if.end: ; preds = %if.then, %entry
ret i32 0, !dbg !35
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
declare void @g([4 x double]) local_unnamed_addr #2
declare void @h(i32*) local_unnamed_addr #2
declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #1
declare void @llvm.stackprotector(i8*, i8**) #3
attributes #0 = { nounwind optsize ssp }
attributes #1 = { nounwind readnone speculatable }
attributes #2 = { optsize }
attributes #3 = { nounwind }
attributes #4 = { nounwind optsize }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5}
!llvm.ident = !{!6}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 5.0.0 (trunk 302682) (llvm/trunk 302683)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
!1 = !DIFile(filename: "/tmp/clobber.c", directory: "/Volumes/Data/apple-internal/swift")
!2 = !{}
!3 = !{i32 2, !"Dwarf Version", i32 2}
!4 = !{i32 2, !"Debug Info Version", i32 3}
!5 = !{i32 1, !"PIC Level", i32 2}
!6 = !{!"clang version 5.0.0 (trunk 302682) (llvm/trunk 302683)"}
!7 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 7, type: !8, isLocal: false, isDefinition: true, scopeLine: 7, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !18)
!8 = !DISubroutineType(types: !9)
!9 = !{!10, !10, !10, !11}
!10 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!11 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Rect", file: !1, line: 1, size: 256, elements: !12)
!12 = !{!13, !15, !16, !17}
!13 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !11, file: !1, line: 2, baseType: !14, size: 64)
!14 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float)
!15 = !DIDerivedType(tag: DW_TAG_member, name: "y", scope: !11, file: !1, line: 2, baseType: !14, size: 64, offset: 64)
!16 = !DIDerivedType(tag: DW_TAG_member, name: "w", scope: !11, file: !1, line: 2, baseType: !14, size: 64, offset: 128)
!17 = !DIDerivedType(tag: DW_TAG_member, name: "h", scope: !11, file: !1, line: 2, baseType: !14, size: 64, offset: 192)
!18 = !{!19, !20, !21}
!19 = !DILocalVariable(name: "x", arg: 1, scope: !7, file: !1, line: 7, type: !10)
!20 = !DILocalVariable(name: "y", arg: 2, scope: !7, file: !1, line: 7, type: !10)
!21 = !DILocalVariable(name: "s", arg: 3, scope: !7, file: !1, line: 7, type: !11)
!22 = !DIExpression()
!23 = !DILocation(line: 7, column: 11, scope: !7)
!24 = !{!25, !25, i64 0}
!25 = !{!"int", !26, i64 0}
!26 = !{!"omnipotent char", !27, i64 0}
!27 = !{!"Simple C/C++ TBAA"}
!28 = !DILocation(line: 7, column: 18, scope: !7)
!29 = !DILocation(line: 7, column: 33, scope: !7)
!30 = !DILocation(line: 8, column: 3, scope: !7)
!31 = !DILocation(line: 9, column: 7, scope: !32)
!32 = distinct !DILexicalBlock(scope: !7, file: !1, line: 9, column: 7)
!33 = !DILocation(line: 9, column: 7, scope: !7)
!34 = !DILocation(line: 10, column: 5, scope: !32)
!35 = !DILocation(line: 12, column: 3, scope: !7)
!36 = !DIExpression(DW_OP_constu, 8, DW_OP_plus)
...
---
name: f
alignment: 2
exposesReturnsTwice: false
legalized: false
regBankSelected: false
selected: false
tracksRegLiveness: true
liveins:
- { reg: '%w0' }
- { reg: '%w1' }
- { reg: '%d0' }
- { reg: '%d1' }
- { reg: '%d2' }
- { reg: '%d3' }
frameInfo:
isFrameAddressTaken: false
isReturnAddressTaken: false
hasStackMap: false
hasPatchPoint: false
stackSize: 32
offsetAdjustment: 0
maxAlignment: 8
adjustsStack: true
hasCalls: true
maxCallFrameSize: 0
hasOpaqueSPAdjustment: false
hasVAStart: false
hasMustTailInVarArgFunc: false
stack:
- { id: 0, name: x.addr, offset: -20, size: 4, alignment: 4, local-offset: -4 }
- { id: 1, type: spill-slot, offset: -24, size: 4, alignment: 4 }
- { id: 2, type: spill-slot, offset: -8, size: 8, alignment: 8, callee-saved-register: '%lr' }
- { id: 3, type: spill-slot, offset: -16, size: 8, alignment: 8, callee-saved-register: '%fp' }
body: |
bb.0.entry:
successors: %bb.2.if.end(0x40000000), %bb.1.if.then(0x40000000)
liveins: %w0, %w1, %d0, %d1, %d2, %d3, %lr
%sp = frame-setup SUBXri %sp, 32, 0
frame-setup STPXi killed %fp, killed %lr, %sp, 2 :: (store 8 into %stack.3), (store 8 into %stack.2)
%fp = frame-setup ADDXri %sp, 16, 0
DBG_VALUE debug-use %w0, debug-use _, !19, !22, debug-location !23
STURWi killed %w0, %fp, -4 :: (store 4 into %stack.0.x.addr)
DBG_VALUE debug-use %w1, debug-use _, !20, !22, debug-location !28
STRWui killed %w1, %sp, 2, debug-location !30 :: (store 4 into %stack.1)
DBG_VALUE %sp, 0, !20, !36, debug-location !28
BL @g, csr_aarch64_aapcs, implicit-def dead %lr, implicit %sp, implicit killed %d0, implicit killed %d1, implicit killed %d2, implicit killed %d3, implicit-def %sp, debug-location !30
%w0 = LDRWui %sp, 2, debug-location !33 :: (load 4 from %stack.1)
CBZW killed %w0, %bb.2.if.end, debug-location !33
bb.1.if.then:
successors: %bb.2.if.end(0x80000000)
DBG_VALUE debug-use %sp, 0, !20, !36, debug-location !28
%x0 = SUBXri %fp, 4, 0
DBG_VALUE debug-use %x0, debug-use _, !19, !22, debug-location !23
BL @h, csr_aarch64_aapcs, implicit-def dead %lr, implicit %sp, implicit killed %x0, debug-location !34
bb.2.if.end:
DBG_VALUE debug-use %sp, 0, !20, !36, debug-location !28
%w8 = MOVZWi 0, 0
%x0 = ORRXrs %xzr, undef %x8, 0, implicit killed %w8, debug-location !35
%fp, %lr = LDPXi %sp, 2, debug-location !35 :: (load 8 from %stack.3), (load 8 from %stack.2)
%sp = ADDXri %sp, 32, 0, debug-location !35
RET undef %lr, implicit killed %w0, debug-location !35
...

View File

@ -1,249 +0,0 @@
# RUN: llc -start-after=livedebugvalues -filetype=obj -o - %s \
# RUN: | llvm-dwarfdump -v - | FileCheck %s
# This tests for a crash in DwarfDebug's singular DBG_VALUE range promotion when
# encountering an IMPLICIT_DEF in its own lexical scope.
# CHECK: .debug_info contents:
# CHECK: DW_TAG_formal_parameter
# CHECK: DW_AT_const_value [DW_FORM_udata] (0)
--- |
; ModuleID = 't.ll'
source_filename = "t.ll"
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64--linux-gnu"
%class.v = type <{ i32, i8, i8, [2 x i8] }>
%class.j = type <{ %"class.j<6, a::f>::D", i32, [4 x i8] }>
%"class.j<6, a::f>::D" = type { %"class.j<6, a::f>::p" }
%"class.j<6, a::f>::p" = type { i64 }
@bt = global i32 0, align 4
define void @_ZN1v2bvEv(%class.v* nocapture readonly %this) local_unnamed_addr align 2 !dbg !14 {
entry:
%bz = alloca %class.j, align 8
%att = alloca %class.j, align 8
%ap = getelementptr inbounds %class.v, %class.v* %this, i64 0, i32 1
%0 = load i8, i8* %ap, align 4
%conv = sext i8 %0 to i32
switch i32 %conv, label %sw.epilog [
i32 1, label %_ZN1jILi6EN1a1fEE1mEj.exit
i32 0, label %sw.bb2
]
_ZN1jILi6EN1a1fEE1mEj.exit: ; preds = %entry
%1 = bitcast %class.j* %att to i64*
%2 = bitcast %class.j* %bz to i64*
store i64 1, i64* %2, align 8
call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !18, metadata !23), !dbg !24
store i64 1, i64* %1, align 8, !dbg !27
br label %sw.epilog
sw.bb2: ; preds = %entry
%3 = bitcast %class.j* %att to i64*
%4 = bitcast %class.j* %bz to i64*
%.pre = load i64, i64* %3, align 8
%agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i13.phi.trans.insert = getelementptr inbounds %class.j, %class.j* %bz, i64 0, i32 1
%.phi.trans.insert = bitcast i32* %agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i13.phi.trans.insert to i64*
%agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14.pre = load i64, i64* %.phi.trans.insert, align 8
%.pre25 = load i64, i64* %4, align 8
%agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i.phi.trans.insert = getelementptr inbounds %class.j, %class.j* %att, i64 0, i32 1
%.phi.trans.insert26 = bitcast i32* %agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i.phi.trans.insert to i64*
%agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i.pre = load i64, i64* %.phi.trans.insert26, align 8
br label %sw.epilog
sw.epilog: ; preds = %sw.bb2, %_ZN1jILi6EN1a1fEE1mEj.exit, %entry
%agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i = phi i64 [ %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i.pre, %sw.bb2 ], [ undef, %entry ], [ undef, %_ZN1jILi6EN1a1fEE1mEj.exit ], !dbg !32
%5 = phi i64 [ %.pre25, %sw.bb2 ], [ 0, %entry ], [ 1, %_ZN1jILi6EN1a1fEE1mEj.exit ]
%agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14 = phi i64 [ %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14.pre, %sw.bb2 ], [ undef, %entry ], [ undef, %_ZN1jILi6EN1a1fEE1mEj.exit ]
%6 = phi i64 [ %.pre, %sw.bb2 ], [ 0, %entry ], [ 1, %_ZN1jILi6EN1a1fEE1mEj.exit ]
%bw1 = bitcast %class.v* %this to i32*
%7 = load i32, i32* %bw1, align 4
%bx = getelementptr inbounds %class.v, %class.v* %this, i64 0, i32 2
%8 = load i8, i8* %bx, align 1
%tobool = icmp ne i8 %8, 0
%.fca.0.insert9 = insertvalue [2 x i64] undef, i64 %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14, 0
%.fca.1.insert12 = insertvalue [2 x i64] %.fca.0.insert9, i64 %5, 1
%.fca.0.insert = insertvalue [2 x i64] undef, i64 %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i, 0
%.fca.1.insert = insertvalue [2 x i64] %.fca.0.insert, i64 %6, 1
call void @_Z2byi1LS_bbPi(i32 %7, [2 x i64] %.fca.1.insert12, [2 x i64] %.fca.1.insert, i1 %tobool, i1 false, i32* nonnull @bt)
ret void
}
declare void @_Z2byi1LS_bbPi(i32, [2 x i64], [2 x i64], i1, i1, i32*) local_unnamed_addr
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #0
; Function Attrs: nounwind
declare void @llvm.stackprotector(i8*, i8**) #1
attributes #0 = { nounwind readnone speculatable }
attributes #1 = { nounwind }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!12, !13}
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 5.0.0 (trunk 305696) (llvm/trunk 305708)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, globals: !2)
!1 = !DIFile(filename: "/<stdin>", directory: "/")
!2 = !{}
!3 = !{!4, !10}
!4 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "r", file: !5, line: 50, size: 8, elements: !6, identifier: "_ZTS1r")
!5 = !DIFile(filename: "current.ii", directory: "/")
!6 = !{!7}
!7 = !DISubprogram(name: "r", scope: !4, file: !5, line: 52, type: !8, isLocal: false, isDefinition: false, scopeLine: 52, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)
!8 = !DISubroutineType(types: !9)
!9 = !{null}
!10 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "q", scope: !11, file: !5, line: 39, size: 64, elements: !2, identifier: "_ZTSN1jILi6EN1a1fEE1qE")
!11 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "j<6, a::f>", file: !5, line: 7, size: 128, elements: !2, templateParams: !2, identifier: "_ZTS1jILi6EN1a1fEE")
!12 = !{i32 2, !"Debug Info Version", i32 3}
!13 = !{i32 1, !"wchar_size", i32 4}
!14 = distinct !DISubprogram(name: "bv", linkageName: "_ZN1v2bvEv", scope: !15, file: !5, line: 104, type: !16, isLocal: false, isDefinition: true, scopeLine: 104, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !17, variables: !2)
!15 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "v", file: !5, line: 97, size: 64, elements: !2, identifier: "_ZTS1v")
!16 = !DISubroutineType(types: !2)
!17 = !DISubprogram(name: "bv", linkageName: "_ZN1v2bvEv", scope: !15, file: !5, line: 98, type: !16, isLocal: false, isDefinition: false, scopeLine: 98, flags: DIFlagPrototyped, isOptimized: true)
!18 = !DILocalVariable(arg: 2, scope: !19, file: !5, line: 22, type: !21)
!19 = distinct !DISubprogram(name: "m", linkageName: "_ZN1jILi6EN1a1fEE1mEj", scope: !11, file: !5, line: 22, type: !16, isLocal: false, isDefinition: true, scopeLine: 22, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !20, variables: !2)
!20 = !DISubprogram(name: "m", linkageName: "_ZN1jILi6EN1a1fEE1mEj", scope: !11, file: !5, line: 22, type: !16, isLocal: false, isDefinition: false, scopeLine: 22, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)
!21 = !DIDerivedType(tag: DW_TAG_typedef, name: "h", file: !5, line: 10, baseType: !22)
!22 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!23 = !DIExpression()
!24 = !DILocation(line: 22, scope: !19, inlinedAt: !25)
!25 = distinct !DILocation(line: 109, scope: !26)
!26 = distinct !DILexicalBlock(scope: !14, file: !5, line: 106)
!27 = !DILocation(line: 29, scope: !28, inlinedAt: !31)
!28 = distinct !DISubprogram(name: "n", linkageName: "_ZN1jILi6EN1a1fEE1p1nEl", scope: !29, file: !5, line: 29, type: !8, isLocal: false, isDefinition: true, scopeLine: 29, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !30, variables: !2)
!29 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "p", scope: !11, file: !5, line: 26, size: 64, elements: !2, identifier: "_ZTSN1jILi6EN1a1fEE1pE")
!30 = !DISubprogram(name: "n", linkageName: "_ZN1jILi6EN1a1fEE1p1nEl", scope: !29, file: !5, line: 29, type: !8, isLocal: false, isDefinition: false, scopeLine: 29, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)
!31 = distinct !DILocation(line: 24, scope: !19, inlinedAt: !25)
!32 = !DILocation(line: 61, scope: !33, inlinedAt: !38)
!33 = distinct !DISubprogram(name: "bc<j<6, a::f> >", linkageName: "_ZN1s2bcI1jILi6EN1a1fEEEEDTcl2badeclsr1aE2aaIPT_EEEES6_", scope: !34, file: !5, line: 60, type: !16, isLocal: false, isDefinition: true, scopeLine: 60, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !36, declaration: !35, variables: !2)
!34 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "s", file: !5, line: 59, size: 8, elements: !2, identifier: "_ZTS1s")
!35 = !DISubprogram(name: "bc<j<6, a::f> >", linkageName: "_ZN1s2bcI1jILi6EN1a1fEEEEDTcl2badeclsr1aE2aaIPT_EEEES6_", scope: !34, file: !5, line: 60, type: !16, isLocal: false, isDefinition: false, scopeLine: 60, flags: DIFlagPrototyped, isOptimized: true, templateParams: !36)
!36 = !{!37}
!37 = !DITemplateTypeParameter(name: "ay", type: !11)
!38 = distinct !DILocation(line: 70, scope: !39, inlinedAt: !42)
!39 = distinct !DISubprogram(name: "bc", linkageName: "_ZN1JI1s1jILi6EN1a1fEEE2bcEPS4_", scope: !40, file: !5, line: 70, type: !16, isLocal: false, isDefinition: true, scopeLine: 70, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !41, variables: !2)
!40 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "J<s, j<6, a::f> >", file: !5, line: 69, size: 8, elements: !2, templateParams: !2, identifier: "_ZTS1JI1s1jILi6EN1a1fEEE")
!41 = !DISubprogram(name: "bc", linkageName: "_ZN1JI1s1jILi6EN1a1fEEE2bcEPS4_", scope: !40, file: !5, line: 70, type: !16, isLocal: false, isDefinition: false, scopeLine: 70, flags: DIFlagPrototyped, isOptimized: true)
!42 = distinct !DILocation(line: 85, scope: !43, inlinedAt: !46)
!43 = distinct !DISubprogram(name: "u<j<6, a::f> >", linkageName: "_ZN1uC2I1jILi6EN1a1fEEEERT_", scope: !44, file: !5, line: 85, type: !16, isLocal: false, isDefinition: true, scopeLine: 85, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !36, declaration: !45, variables: !2)
!44 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "u", file: !5, line: 82, size: 128, elements: !2, identifier: "_ZTS1u")
!45 = !DISubprogram(name: "u<j<6, a::f> >", scope: !44, file: !5, line: 85, type: !16, isLocal: false, isDefinition: false, scopeLine: 85, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true, templateParams: !36)
!46 = distinct !DILocation(line: 85, scope: !47, inlinedAt: !48)
!47 = distinct !DISubprogram(name: "u<j<6, a::f> >", linkageName: "_ZN1uC1I1jILi6EN1a1fEEEERT_", scope: !44, file: !5, line: 85, type: !16, isLocal: false, isDefinition: true, scopeLine: 85, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !36, declaration: !45, variables: !2)
!48 = distinct !DILocation(line: 92, scope: !49, inlinedAt: !52)
!49 = distinct !DISubprogram(name: "L<j<6, a::f> >", linkageName: "_ZN1LC2I1jILi6EN1a1fEEEERT_", scope: !50, file: !5, line: 92, type: !16, isLocal: false, isDefinition: true, scopeLine: 92, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !2, declaration: !51, variables: !2)
!50 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "L", file: !5, line: 88, size: 128, elements: !2, identifier: "_ZTS1L")
!51 = !DISubprogram(name: "L<j<6, a::f> >", scope: !50, file: !5, line: 92, type: !16, isLocal: false, isDefinition: false, scopeLine: 92, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true, templateParams: !2)
!52 = distinct !DILocation(line: 92, scope: !53, inlinedAt: !54)
!53 = distinct !DISubprogram(name: "L<j<6, a::f> >", linkageName: "_ZN1LC1I1jILi6EN1a1fEEEERT_", scope: !50, file: !5, line: 92, type: !16, isLocal: false, isDefinition: true, scopeLine: 92, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !2, declaration: !51, variables: !2)
!54 = distinct !DILocation(line: 114, scope: !14)
...
---
name: _ZN1v2bvEv
alignment: 2
exposesReturnsTwice: false
legalized: false
regBankSelected: false
selected: false
tracksRegLiveness: true
registers:
liveins:
- { reg: '%x0', virtual-reg: '' }
frameInfo:
isFrameAddressTaken: false
isReturnAddressTaken: false
hasStackMap: false
hasPatchPoint: false
stackSize: 48
offsetAdjustment: 0
maxAlignment: 16
adjustsStack: true
hasCalls: true
stackProtector: ''
maxCallFrameSize: 0
hasOpaqueSPAdjustment: false
hasVAStart: false
hasMustTailInVarArgFunc: false
savePoint: ''
restorePoint: ''
fixedStack:
stack:
- { id: 0, name: bz, type: default, offset: -32, size: 16, alignment: 8,
callee-saved-register: '', local-offset: -16, di-variable: '', di-expression: '',
di-location: '' }
- { id: 1, name: att, type: default, offset: -48, size: 16, alignment: 8,
callee-saved-register: '', local-offset: -32, di-variable: '', di-expression: '',
di-location: '' }
- { id: 2, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16,
callee-saved-register: '%lr', di-variable: '', di-expression: '',
di-location: '' }
constants:
body: |
bb.0.entry:
successors: %bb.3.sw.bb2(0x2aaaaaab), %bb.1.entry(0x55555555)
liveins: %x0, %lr
%sp = frame-setup SUBXri %sp, 48, 0
frame-setup STRXui killed %lr, %sp, 4 :: (store 8 into %stack.2)
frame-setup CFI_INSTRUCTION def_cfa_offset 48
frame-setup CFI_INSTRUCTION offset %w30, -16
%w8 = LDRSBWui %x0, 4 :: (load 1 from %ir.ap, align 4)
CBZW %w8, %bb.3.sw.bb2
bb.1.entry:
successors: %bb.2._ZN1jILi6EN1a1fEE1mEj.exit(0x40000001), %bb.4(0x3fffffff)
liveins: %w8, %x0
dead %wzr = SUBSWri killed %w8, 1, 0, implicit-def %nzcv
Bcc 1, %bb.4, implicit %nzcv
bb.2._ZN1jILi6EN1a1fEE1mEj.exit:
successors: %bb.5.sw.epilog(0x80000000)
liveins: %x0
%w2 = ORRWri %wzr, 0, implicit-def %x2
%x3 = IMPLICIT_DEF debug-location !32
%x1 = IMPLICIT_DEF
STRXui %x2, %sp, 2 :: (store 8 into %ir.2)
DBG_VALUE 0, 0, !18, !23, debug-location !24
STRXui %x2, %sp, 0, debug-location !27 :: (store 8 into %ir.1)
%w4 = ORRWri %wzr, 0, implicit-def %x4
B %bb.5.sw.epilog
bb.3.sw.bb2:
successors: %bb.5.sw.epilog(0x80000000)
liveins: %x0
%x4, %x3 = LDPXi %sp, 0 :: (dereferenceable load 8 from %ir.3), (dereferenceable load 8 from %ir..phi.trans.insert26)
%x2, %x1 = LDPXi %sp, 2 :: (dereferenceable load 8 from %ir..phi.trans.insert), (dereferenceable load 8 from %ir.4)
B %bb.5.sw.epilog
bb.4:
successors: %bb.5.sw.epilog(0x80000000)
liveins: %x0
%x2 = ORRXrs %xzr, %xzr, 0
%x4 = ORRXrs %xzr, %xzr, 0
%x3 = IMPLICIT_DEF debug-location !32
%x1 = IMPLICIT_DEF
bb.5.sw.epilog:
liveins: %x0, %x1, %x2, %x3, %x4
%w8 = LDRBBui %x0, 5 :: (load 1 from %ir.bx)
%w0 = LDRWui killed %x0, 0 :: (load 4 from %ir.bw1)
%x7 = ADRP target-flags(aarch64-page) @bt
%x7 = ADDXri killed %x7, target-flags(aarch64-pageoff, aarch64-nc) @bt, 0
dead %wzr = SUBSWri killed %w8, 0, 0, implicit-def %nzcv
%w5 = CSINCWr %wzr, %wzr, 0, implicit killed %nzcv
%w6 = ORRWrs %wzr, %wzr, 0
BL @_Z2byi1LS_bbPi, csr_aarch64_aapcs, implicit-def dead %lr, implicit %sp, implicit killed %w0, implicit killed %x1, implicit killed %x2, implicit killed %x3, implicit killed %x4, implicit killed %w5, implicit killed %w6, implicit killed %x7, implicit-def %sp
%lr = LDRXui %sp, 4 :: (load 8 from %stack.2)
%sp = ADDXri %sp, 48, 0
RET undef %lr
...

View File

@ -1,3 +0,0 @@
if not 'AArch64' in config.root.targets:
config.unsupported = True