1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 -enable-shrink-wrap=true %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; Test the use of a non-R0 register to save/restore the LR in function 4*9880d681SAndroid Build Coastguard Worker; prologue/epilogue. 5*9880d681SAndroid Build Coastguard Worker; This problem can occur as a result of shrink wrapping, where the function 6*9880d681SAndroid Build Coastguard Worker; prologue and epilogue are moved from the beginning/ending of the function. If 7*9880d681SAndroid Build Coastguard Worker; register R0 is used before the prologue/epilogue blocks, then it cannot be 8*9880d681SAndroid Build Coastguard Worker; used to save/restore the LR. 9*9880d681SAndroid Build Coastguard Worker; 10*9880d681SAndroid Build Coastguard Worker; TODO: Convert this to an MIR test once the infrastructure can support it. 11*9880d681SAndroid Build Coastguard Worker; To convert this to an MIR pass, generate MIR after register allocation 12*9880d681SAndroid Build Coastguard Worker; but before shrink wrapping and verify that has been used in the body of 13*9880d681SAndroid Build Coastguard Worker; the function. This can be done with something like: 14*9880d681SAndroid Build Coastguard Worker; llc -stop-after stack-slot-coloring BreakableToken-reduced.ll > BreakableToken-reduced.mir 15*9880d681SAndroid Build Coastguard Worker; 16*9880d681SAndroid Build Coastguard Worker; The resulting MIR file can then be used as input to llc, and only run 17*9880d681SAndroid Build Coastguard Worker; shrink wrapping and Prologue/Epilogue insertion on it. For example: 18*9880d681SAndroid Build Coastguard Worker; llc -start-after stack-slot-coloring -stop-after prologepilog BreakableToken-reduced.mir 19*9880d681SAndroid Build Coastguard Worker; 20*9880d681SAndroid Build Coastguard Worker; Verify in the resulting code that R0 is not used in the prologue/epilogue. 21*9880d681SAndroid Build Coastguard Worker; 22*9880d681SAndroid Build Coastguard Worker; This currently cannot be done because the PrologEpilogInserter pass has 23*9880d681SAndroid Build Coastguard Worker; a dependency on the TargetPassConfig and StackProtector classes, which 24*9880d681SAndroid Build Coastguard Worker; are currently not serialized when generating the MIR. 25*9880d681SAndroid Build Coastguard Worker; 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker; ModuleID = 'BreakableToken.cpp' 28*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-i64:64-n32:64" 29*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc64le-unknown-linux-gnu" 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker%"class.clang::format::BreakableStringLiteral" = type { %"class.clang::format::BreakableSingleLineToken" } 32*9880d681SAndroid Build Coastguard Worker%"class.clang::format::BreakableSingleLineToken" = type { %"class.clang::format::BreakableToken", i32, %"class.llvm::StringRef", %"class.llvm::StringRef", %"class.llvm::StringRef" } 33*9880d681SAndroid Build Coastguard Worker%"class.clang::format::BreakableToken" = type { i32 (...)**, %"struct.clang::format::FormatToken"*, i32, i8, i32, %"struct.clang::format::FormatStyle"* } 34*9880d681SAndroid Build Coastguard Worker%"class.llvm::StringRef" = type { i8*, i64 } 35*9880d681SAndroid Build Coastguard Worker%"struct.clang::format::FormatToken" = type <{ %"class.clang::Token", i32, i8, [3 x i8], %"class.clang::SourceRange", i32, i32, i32, i8, i8, i8, i8, %"class.llvm::StringRef", i8, [3 x i8], i32, i32, i32, i8, i8, [2 x i8], i32, i32, i16, [2 x i8], %"class.std::unique_ptr", i32, i32, i32, i32, i32, i32, i32, i32, %"class.llvm::SmallVector", i32, i8, i8, [2 x i8], i32, i8, i8, [2 x i8], %"struct.clang::format::FormatToken"*, %"struct.clang::format::FormatToken"*, %"struct.clang::format::FormatToken"*, %"class.llvm::SmallVector.6", i32, i8, [3 x i8] }> 36*9880d681SAndroid Build Coastguard Worker%"class.clang::Token" = type <{ i32, i32, i8*, i16, i16, [4 x i8] }> 37*9880d681SAndroid Build Coastguard Worker%"class.clang::SourceRange" = type { %"class.clang::SourceLocation", %"class.clang::SourceLocation" } 38*9880d681SAndroid Build Coastguard Worker%"class.clang::SourceLocation" = type { i32 } 39*9880d681SAndroid Build Coastguard Worker%"class.std::unique_ptr" = type { %"class.std::tuple" } 40*9880d681SAndroid Build Coastguard Worker%"class.std::tuple" = type { %"struct.std::_Tuple_impl" } 41*9880d681SAndroid Build Coastguard Worker%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.2" } 42*9880d681SAndroid Build Coastguard Worker%"struct.std::_Head_base.2" = type { %"class.clang::format::TokenRole"* } 43*9880d681SAndroid Build Coastguard Worker%"class.clang::format::TokenRole" = type { i32 (...)**, %"struct.clang::format::FormatStyle"* } 44*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector" = type { %"class.llvm::SmallVectorImpl.base", %"struct.llvm::SmallVectorStorage" } 45*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.base" = type { %"class.llvm::SmallVectorTemplateBase.base" } 46*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.base" = type { %"class.llvm::SmallVectorTemplateCommon.base" } 47*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.base" = type <{ %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion" }> 48*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorBase" = type { i8*, i8*, i8* } 49*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion" = type { %"struct.llvm::AlignedCharArray" } 50*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArray" = type { [4 x i8] } 51*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage" = type { [3 x %"struct.llvm::AlignedCharArrayUnion"] } 52*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.6" = type <{ %"class.llvm::SmallVectorImpl.7", %"struct.llvm::SmallVectorStorage.12", [7 x i8] }> 53*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.7" = type { %"class.llvm::SmallVectorTemplateBase.8" } 54*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.8" = type { %"class.llvm::SmallVectorTemplateCommon.9" } 55*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.9" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.10" } 56*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.10" = type { %"struct.llvm::AlignedCharArray.11" } 57*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArray.11" = type { [8 x i8] } 58*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.12" = type { i8 } 59*9880d681SAndroid Build Coastguard Worker%"struct.clang::format::FormatStyle" = type { i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i32, i8, i8, i8, i8, i32, i32, i8, i8, i32, %"class.std::basic_string", i8, i32, i32, i8, i8, i8, i8, %"class.std::vector", i8, i32, i8, i8, i32, %"class.std::basic_string", %"class.std::basic_string", i32, i32, i32, i8, i8, i32, i32, i32, i32, i32, i32, i32, i8, i8, i32, i8, i32, i8, i8, i8, i8, i8, i32, i32, i32 } 60*9880d681SAndroid Build Coastguard Worker%"class.std::vector" = type { %"struct.std::_Vector_base" } 61*9880d681SAndroid Build Coastguard Worker%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl" } 62*9880d681SAndroid Build Coastguard Worker%"struct.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl" = type { %"class.std::basic_string"*, %"class.std::basic_string"*, %"class.std::basic_string"* } 63*9880d681SAndroid Build Coastguard Worker%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" } 64*9880d681SAndroid Build Coastguard Worker%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* } 65*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArray.52" = type { [16 x i8] } 66*9880d681SAndroid Build Coastguard Worker%"class.clang::format::WhitespaceManager" = type <{ %"class.llvm::SmallVector.13", %"class.clang::SourceManager"*, %"class.std::set", %"struct.clang::format::FormatStyle"*, i8, [7 x i8] }> 67*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.13" = type { %"class.llvm::SmallVectorImpl.14", %"struct.llvm::SmallVectorStorage.19" } 68*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.14" = type { %"class.llvm::SmallVectorTemplateBase.15" } 69*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.15" = type { %"class.llvm::SmallVectorTemplateCommon.16" } 70*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.16" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.17" } 71*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.17" = type { %"struct.llvm::AlignedCharArray.18" } 72*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArray.18" = type { [88 x i8] } 73*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.19" = type { [15 x %"struct.llvm::AlignedCharArrayUnion.17"] } 74*9880d681SAndroid Build Coastguard Worker%"class.clang::SourceManager" = type { %"class.llvm::RefCountedBase", %"class.clang::DiagnosticsEngine"*, %"class.clang::FileManager"*, %"class.llvm::BumpPtrAllocatorImpl", %"class.llvm::DenseMap.65", i8, i8, %"class.std::unique_ptr.78", %"class.std::vector.94", %"class.llvm::SmallVector.99", %"class.llvm::SmallVector.99", i32, i32, %"class.std::vector.107", %"class.clang::ExternalSLocEntrySource"*, %"class.clang::FileID", %"class.clang::LineTableInfo"*, %"class.clang::FileID", %"class.clang::SrcMgr::ContentCache"*, i32, i32, %"class.clang::FileID", %"class.clang::FileID", i32, i32, %"class.llvm::DenseMap.111", %"class.llvm::DenseMap.115", %"class.clang::InBeforeInTUCacheEntry", %"class.std::unique_ptr.119", %"class.std::unique_ptr.127", %"class.llvm::DenseMap.135", %"class.llvm::SmallVector.139" } 75*9880d681SAndroid Build Coastguard Worker%"class.llvm::RefCountedBase" = type { i32 } 76*9880d681SAndroid Build Coastguard Worker%"class.clang::DiagnosticsEngine" = type opaque 77*9880d681SAndroid Build Coastguard Worker%"class.clang::FileManager" = type { %"class.llvm::RefCountedBase.20", %"class.llvm::IntrusiveRefCntPtr", %"class.clang::FileSystemOptions", %"class.std::map", %"class.std::map.24", %"class.llvm::SmallVector.29", %"class.llvm::SmallVector.35", %"class.llvm::StringMap", %"class.llvm::StringMap.56", %"class.llvm::DenseMap", %"class.llvm::BumpPtrAllocatorImpl", i32, i32, i32, i32, i32, %"class.std::unique_ptr.57" } 78*9880d681SAndroid Build Coastguard Worker%"class.llvm::RefCountedBase.20" = type { i32 } 79*9880d681SAndroid Build Coastguard Worker%"class.llvm::IntrusiveRefCntPtr" = type { %"class.clang::vfs::FileSystem"* } 80*9880d681SAndroid Build Coastguard Worker%"class.clang::vfs::FileSystem" = type <{ i32 (...)**, %"class.llvm::ThreadSafeRefCountedBase", [4 x i8] }> 81*9880d681SAndroid Build Coastguard Worker%"class.llvm::ThreadSafeRefCountedBase" = type { %"struct.std::atomic" } 82*9880d681SAndroid Build Coastguard Worker%"struct.std::atomic" = type { %"struct.std::__atomic_base" } 83*9880d681SAndroid Build Coastguard Worker%"struct.std::__atomic_base" = type { i32 } 84*9880d681SAndroid Build Coastguard Worker%"class.clang::FileSystemOptions" = type { %"class.std::basic_string" } 85*9880d681SAndroid Build Coastguard Worker%"class.std::map" = type { %"class.std::_Rb_tree" } 86*9880d681SAndroid Build Coastguard Worker%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<const llvm::sys::fs::UniqueID, clang::DirectoryEntry>, std::_Select1st<std::pair<const llvm::sys::fs::UniqueID, clang::DirectoryEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<const llvm::sys::fs::UniqueID, clang::DirectoryEntry> > >::_Rb_tree_impl" } 87*9880d681SAndroid Build Coastguard Worker%"struct.std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<const llvm::sys::fs::UniqueID, clang::DirectoryEntry>, std::_Select1st<std::pair<const llvm::sys::fs::UniqueID, clang::DirectoryEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<const llvm::sys::fs::UniqueID, clang::DirectoryEntry> > >::_Rb_tree_impl" = type { %"struct.std::less", %"struct.std::_Rb_tree_node_base", i64 } 88*9880d681SAndroid Build Coastguard Worker%"struct.std::less" = type { i8 } 89*9880d681SAndroid Build Coastguard Worker%"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* } 90*9880d681SAndroid Build Coastguard Worker%"class.std::map.24" = type { %"class.std::_Rb_tree.25" } 91*9880d681SAndroid Build Coastguard Worker%"class.std::_Rb_tree.25" = type { %"struct.std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<const llvm::sys::fs::UniqueID, clang::FileEntry>, std::_Select1st<std::pair<const llvm::sys::fs::UniqueID, clang::FileEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<const llvm::sys::fs::UniqueID, clang::FileEntry> > >::_Rb_tree_impl" } 92*9880d681SAndroid Build Coastguard Worker%"struct.std::_Rb_tree<llvm::sys::fs::UniqueID, std::pair<const llvm::sys::fs::UniqueID, clang::FileEntry>, std::_Select1st<std::pair<const llvm::sys::fs::UniqueID, clang::FileEntry> >, std::less<llvm::sys::fs::UniqueID>, std::allocator<std::pair<const llvm::sys::fs::UniqueID, clang::FileEntry> > >::_Rb_tree_impl" = type { %"struct.std::less", %"struct.std::_Rb_tree_node_base", i64 } 93*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.29" = type { %"class.llvm::SmallVectorImpl.30", %"struct.llvm::SmallVectorStorage.34" } 94*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.30" = type { %"class.llvm::SmallVectorTemplateBase.31" } 95*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.31" = type { %"class.llvm::SmallVectorTemplateCommon.32" } 96*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.32" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.33" } 97*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.33" = type { %"struct.llvm::AlignedCharArray.11" } 98*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.34" = type { [3 x %"struct.llvm::AlignedCharArrayUnion.33"] } 99*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.35" = type { %"class.llvm::SmallVectorImpl.36", %"struct.llvm::SmallVectorStorage.40" } 100*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.36" = type { %"class.llvm::SmallVectorTemplateBase.37" } 101*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.37" = type { %"class.llvm::SmallVectorTemplateCommon.38" } 102*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.38" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.39" } 103*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.39" = type { %"struct.llvm::AlignedCharArray.11" } 104*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.40" = type { [3 x %"struct.llvm::AlignedCharArrayUnion.39"] } 105*9880d681SAndroid Build Coastguard Worker%"class.llvm::StringMap" = type { %"class.llvm::StringMapImpl", %"class.llvm::BumpPtrAllocatorImpl" } 106*9880d681SAndroid Build Coastguard Worker%"class.llvm::StringMapImpl" = type { %"class.llvm::StringMapEntryBase"**, i32, i32, i32, i32 } 107*9880d681SAndroid Build Coastguard Worker%"class.llvm::StringMapEntryBase" = type { i32 } 108*9880d681SAndroid Build Coastguard Worker%"class.llvm::StringMap.56" = type { %"class.llvm::StringMapImpl", %"class.llvm::BumpPtrAllocatorImpl" } 109*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseMap" = type <{ %"struct.llvm::detail::DenseMapPair"*, i32, i32, i32, [4 x i8] }> 110*9880d681SAndroid Build Coastguard Worker%"struct.llvm::detail::DenseMapPair" = type opaque 111*9880d681SAndroid Build Coastguard Worker%"class.std::unique_ptr.57" = type { %"class.std::tuple.58" } 112*9880d681SAndroid Build Coastguard Worker%"class.std::tuple.58" = type { %"struct.std::_Tuple_impl.59" } 113*9880d681SAndroid Build Coastguard Worker%"struct.std::_Tuple_impl.59" = type { %"struct.std::_Head_base.64" } 114*9880d681SAndroid Build Coastguard Worker%"struct.std::_Head_base.64" = type { %"class.clang::FileSystemStatCache"* } 115*9880d681SAndroid Build Coastguard Worker%"class.clang::FileSystemStatCache" = type opaque 116*9880d681SAndroid Build Coastguard Worker%"class.llvm::BumpPtrAllocatorImpl" = type <{ i8*, i8*, %"class.llvm::SmallVector.41", %"class.llvm::SmallVector.47", i64, %"class.llvm::MallocAllocator", [7 x i8] }> 117*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.41" = type { %"class.llvm::SmallVectorImpl.42", %"struct.llvm::SmallVectorStorage.46" } 118*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.42" = type { %"class.llvm::SmallVectorTemplateBase.43" } 119*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.43" = type { %"class.llvm::SmallVectorTemplateCommon.44" } 120*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.44" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.45" } 121*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.45" = type { %"struct.llvm::AlignedCharArray.11" } 122*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.46" = type { [3 x %"struct.llvm::AlignedCharArrayUnion.45"] } 123*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.47" = type <{ %"class.llvm::SmallVectorImpl.48", %"struct.llvm::SmallVectorStorage.53", [7 x i8] }> 124*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.48" = type { %"class.llvm::SmallVectorTemplateBase.49" } 125*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.49" = type { %"class.llvm::SmallVectorTemplateCommon.50" } 126*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.50" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.51" } 127*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.51" = type { %"struct.llvm::AlignedCharArray.52" } 128*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.53" = type { i8 } 129*9880d681SAndroid Build Coastguard Worker%"class.llvm::MallocAllocator" = type { i8 } 130*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseMap.65" = type <{ %"struct.llvm::detail::DenseMapPair.67"*, i32, i32, i32, [4 x i8] }> 131*9880d681SAndroid Build Coastguard Worker%"struct.llvm::detail::DenseMapPair.67" = type { %"struct.std::pair.68" } 132*9880d681SAndroid Build Coastguard Worker%"struct.std::pair.68" = type { %"class.clang::FileEntry"*, %"class.clang::SrcMgr::ContentCache"* } 133*9880d681SAndroid Build Coastguard Worker%"class.clang::FileEntry" = type { i8*, i64, i64, %"class.clang::DirectoryEntry"*, i32, %"class.llvm::sys::fs::UniqueID", i8, i8, i8, %"class.std::unique_ptr.69" } 134*9880d681SAndroid Build Coastguard Worker%"class.clang::DirectoryEntry" = type { i8* } 135*9880d681SAndroid Build Coastguard Worker%"class.llvm::sys::fs::UniqueID" = type { i64, i64 } 136*9880d681SAndroid Build Coastguard Worker%"class.std::unique_ptr.69" = type { %"class.std::tuple.70" } 137*9880d681SAndroid Build Coastguard Worker%"class.std::tuple.70" = type { %"struct.std::_Tuple_impl.71" } 138*9880d681SAndroid Build Coastguard Worker%"struct.std::_Tuple_impl.71" = type { %"struct.std::_Head_base.76" } 139*9880d681SAndroid Build Coastguard Worker%"struct.std::_Head_base.76" = type { %"class.clang::vfs::File"* } 140*9880d681SAndroid Build Coastguard Worker%"class.clang::vfs::File" = type { i32 (...)** } 141*9880d681SAndroid Build Coastguard Worker%"class.std::unique_ptr.78" = type { %"class.std::tuple.79" } 142*9880d681SAndroid Build Coastguard Worker%"class.std::tuple.79" = type { %"struct.std::_Tuple_impl.80" } 143*9880d681SAndroid Build Coastguard Worker%"struct.std::_Tuple_impl.80" = type { %"struct.std::_Head_base.85" } 144*9880d681SAndroid Build Coastguard Worker%"struct.std::_Head_base.85" = type { %"struct.clang::SourceManager::OverriddenFilesInfoTy"* } 145*9880d681SAndroid Build Coastguard Worker%"struct.clang::SourceManager::OverriddenFilesInfoTy" = type { %"class.llvm::DenseMap.86", %"class.llvm::DenseSet" } 146*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseMap.86" = type <{ %"struct.llvm::detail::DenseMapPair.88"*, i32, i32, i32, [4 x i8] }> 147*9880d681SAndroid Build Coastguard Worker%"struct.llvm::detail::DenseMapPair.88" = type { %"struct.std::pair.89" } 148*9880d681SAndroid Build Coastguard Worker%"struct.std::pair.89" = type { %"class.clang::FileEntry"*, %"class.clang::FileEntry"* } 149*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseSet" = type { %"class.llvm::DenseMap.91" } 150*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseMap.91" = type <{ %"class.llvm::detail::DenseSetPair"*, i32, i32, i32, [4 x i8] }> 151*9880d681SAndroid Build Coastguard Worker%"class.llvm::detail::DenseSetPair" = type { %"class.clang::FileEntry"* } 152*9880d681SAndroid Build Coastguard Worker%"class.std::vector.94" = type { %"struct.std::_Vector_base.95" } 153*9880d681SAndroid Build Coastguard Worker%"struct.std::_Vector_base.95" = type { %"struct.std::_Vector_base<clang::SrcMgr::ContentCache *, std::allocator<clang::SrcMgr::ContentCache *> >::_Vector_impl" } 154*9880d681SAndroid Build Coastguard Worker%"struct.std::_Vector_base<clang::SrcMgr::ContentCache *, std::allocator<clang::SrcMgr::ContentCache *> >::_Vector_impl" = type { %"class.clang::SrcMgr::ContentCache"**, %"class.clang::SrcMgr::ContentCache"**, %"class.clang::SrcMgr::ContentCache"** } 155*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.99" = type <{ %"class.llvm::SmallVectorImpl.100", %"struct.llvm::SmallVectorStorage.105", [7 x i8] }> 156*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.100" = type { %"class.llvm::SmallVectorTemplateBase.101" } 157*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.101" = type { %"class.llvm::SmallVectorTemplateCommon.102" } 158*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.102" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.103" } 159*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.103" = type { %"struct.llvm::AlignedCharArray.104" } 160*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArray.104" = type { [24 x i8] } 161*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.105" = type { i8 } 162*9880d681SAndroid Build Coastguard Worker%"class.std::vector.107" = type { %"struct.std::_Bvector_base" } 163*9880d681SAndroid Build Coastguard Worker%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool> >::_Bvector_impl" } 164*9880d681SAndroid Build Coastguard Worker%"struct.std::_Bvector_base<std::allocator<bool> >::_Bvector_impl" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", i64* } 165*9880d681SAndroid Build Coastguard Worker%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] } 166*9880d681SAndroid Build Coastguard Worker%"struct.std::_Bit_iterator_base.base" = type <{ i64*, i32 }> 167*9880d681SAndroid Build Coastguard Worker%"class.clang::ExternalSLocEntrySource" = type { i32 (...)** } 168*9880d681SAndroid Build Coastguard Worker%"class.clang::LineTableInfo" = type opaque 169*9880d681SAndroid Build Coastguard Worker%"class.clang::SrcMgr::ContentCache" = type <{ %"class.llvm::PointerIntPair", %"class.clang::FileEntry"*, %"class.clang::FileEntry"*, i32*, [5 x i8], [3 x i8] }> 170*9880d681SAndroid Build Coastguard Worker%"class.llvm::PointerIntPair" = type { i64 } 171*9880d681SAndroid Build Coastguard Worker%"class.clang::FileID" = type { i32 } 172*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseMap.111" = type <{ %"struct.llvm::detail::DenseMapPair.113"*, i32, i32, i32, [4 x i8] }> 173*9880d681SAndroid Build Coastguard Worker%"struct.llvm::detail::DenseMapPair.113" = type opaque 174*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseMap.115" = type <{ %"struct.llvm::detail::DenseMapPair.117"*, i32, i32, i32, [4 x i8] }> 175*9880d681SAndroid Build Coastguard Worker%"struct.llvm::detail::DenseMapPair.117" = type opaque 176*9880d681SAndroid Build Coastguard Worker%"class.clang::InBeforeInTUCacheEntry" = type { %"class.clang::FileID", %"class.clang::FileID", i8, %"class.clang::FileID", i32, i32 } 177*9880d681SAndroid Build Coastguard Worker%"class.std::unique_ptr.119" = type { %"class.std::tuple.120" } 178*9880d681SAndroid Build Coastguard Worker%"class.std::tuple.120" = type { %"struct.std::_Tuple_impl.121" } 179*9880d681SAndroid Build Coastguard Worker%"struct.std::_Tuple_impl.121" = type { %"struct.std::_Head_base.126" } 180*9880d681SAndroid Build Coastguard Worker%"struct.std::_Head_base.126" = type { %"class.llvm::MemoryBuffer"* } 181*9880d681SAndroid Build Coastguard Worker%"class.llvm::MemoryBuffer" = type { i32 (...)**, i8*, i8* } 182*9880d681SAndroid Build Coastguard Worker%"class.std::unique_ptr.127" = type { %"class.std::tuple.128" } 183*9880d681SAndroid Build Coastguard Worker%"class.std::tuple.128" = type { %"struct.std::_Tuple_impl.129" } 184*9880d681SAndroid Build Coastguard Worker%"struct.std::_Tuple_impl.129" = type { %"struct.std::_Head_base.134" } 185*9880d681SAndroid Build Coastguard Worker%"struct.std::_Head_base.134" = type { %"class.clang::SrcMgr::ContentCache"* } 186*9880d681SAndroid Build Coastguard Worker%"class.llvm::DenseMap.135" = type <{ %"struct.llvm::detail::DenseMapPair.137"*, i32, i32, i32, [4 x i8] }> 187*9880d681SAndroid Build Coastguard Worker%"struct.llvm::detail::DenseMapPair.137" = type opaque 188*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVector.139" = type { %"class.llvm::SmallVectorImpl.140", %"struct.llvm::SmallVectorStorage.144" } 189*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorImpl.140" = type { %"class.llvm::SmallVectorTemplateBase.141" } 190*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateBase.141" = type { %"class.llvm::SmallVectorTemplateCommon.142" } 191*9880d681SAndroid Build Coastguard Worker%"class.llvm::SmallVectorTemplateCommon.142" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.143" } 192*9880d681SAndroid Build Coastguard Worker%"struct.llvm::AlignedCharArrayUnion.143" = type { %"struct.llvm::AlignedCharArray.104" } 193*9880d681SAndroid Build Coastguard Worker%"struct.llvm::SmallVectorStorage.144" = type { [1 x %"struct.llvm::AlignedCharArrayUnion.143"] } 194*9880d681SAndroid Build Coastguard Worker%"class.std::set" = type { %"class.std::_Rb_tree.145" } 195*9880d681SAndroid Build Coastguard Worker%"class.std::_Rb_tree.145" = type { %"struct.std::_Rb_tree<clang::tooling::Replacement, clang::tooling::Replacement, std::_Identity<clang::tooling::Replacement>, std::less<clang::tooling::Replacement>, std::allocator<clang::tooling::Replacement> >::_Rb_tree_impl" } 196*9880d681SAndroid Build Coastguard Worker%"struct.std::_Rb_tree<clang::tooling::Replacement, clang::tooling::Replacement, std::_Identity<clang::tooling::Replacement>, std::less<clang::tooling::Replacement>, std::allocator<clang::tooling::Replacement> >::_Rb_tree_impl" = type { %"struct.std::less.149", %"struct.std::_Rb_tree_node_base", i64 } 197*9880d681SAndroid Build Coastguard Worker%"struct.std::less.149" = type { i8 } 198*9880d681SAndroid Build Coastguard Worker 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 201*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @_ZN5clang6format22BreakableStringLiteral11insertBreakEjjSt4pairImjERNS0_17WhitespaceManagerE 202*9880d681SAndroid Build Coastguard Worker 203*9880d681SAndroid Build Coastguard Worker; Load a value into R0 before saving the LR 204*9880d681SAndroid Build Coastguard Worker; CHECK: lwz 0, {{[0-9]+([0-9]+)}} 205*9880d681SAndroid Build Coastguard Worker 206*9880d681SAndroid Build Coastguard Worker; Ensure the LR is saved using a different register 207*9880d681SAndroid Build Coastguard Worker; CHECK: mflr {{[1-9]+}} 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Worker; Ensure the LR is restored using a different register 210*9880d681SAndroid Build Coastguard Worker; CHECK: mtlr {{[0-9]+}} 211*9880d681SAndroid Build Coastguard Worker; CHECK: blr 212*9880d681SAndroid Build Coastguard Workerdefine void @_ZN5clang6format22BreakableStringLiteral11insertBreakEjjSt4pairImjERNS0_17WhitespaceManagerE(%"class.clang::format::BreakableStringLiteral"* nocapture readonly %this, i32 zeroext %LineIndex, i32 zeroext %TailOffset, [2 x i64] %Split.coerce, %"class.clang::format::WhitespaceManager"* dereferenceable(1504) %Whitespaces) unnamed_addr #1 align 2 { 213*9880d681SAndroid Build Coastguard Workerentry: 214*9880d681SAndroid Build Coastguard Worker %Split.coerce.fca.0.extract = extractvalue [2 x i64] %Split.coerce, 0 215*9880d681SAndroid Build Coastguard Worker %Split.coerce.fca.1.extract = extractvalue [2 x i64] %Split.coerce, 1 216*9880d681SAndroid Build Coastguard Worker %StartColumn = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 1 217*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* %StartColumn, align 8, !tbaa !2 218*9880d681SAndroid Build Coastguard Worker %Prefix = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 2 219*9880d681SAndroid Build Coastguard Worker %Length.i.19 = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 2, i32 1 220*9880d681SAndroid Build Coastguard Worker %1 = load i64, i64* %Length.i.19, align 8, !tbaa !10 221*9880d681SAndroid Build Coastguard Worker %cmp.i = icmp eq i64 %1, 0 222*9880d681SAndroid Build Coastguard Worker br i1 %cmp.i, label %entry._ZNK4llvm9StringRef10startswithES0_.exit_crit_edge, label %if.end.i.i 223*9880d681SAndroid Build Coastguard Worker 224*9880d681SAndroid Build Coastguard Workerentry._ZNK4llvm9StringRef10startswithES0_.exit_crit_edge: ; preds = %entry 225*9880d681SAndroid Build Coastguard Worker %agg.tmp7.sroa.0.0..sroa_cast.phi.trans.insert = bitcast %"class.llvm::StringRef"* %Prefix to i64* 226*9880d681SAndroid Build Coastguard Worker %agg.tmp7.sroa.0.0.copyload.pre = load i64, i64* %agg.tmp7.sroa.0.0..sroa_cast.phi.trans.insert, align 8 227*9880d681SAndroid Build Coastguard Worker br label %_ZNK4llvm9StringRef10startswithES0_.exit 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerif.end.i.i: ; preds = %entry 230*9880d681SAndroid Build Coastguard Worker %Data.i.20 = getelementptr inbounds %"class.llvm::StringRef", %"class.llvm::StringRef"* %Prefix, i64 0, i32 0 231*9880d681SAndroid Build Coastguard Worker %2 = load i8*, i8** %Data.i.20, align 8, !tbaa !12 232*9880d681SAndroid Build Coastguard Worker %lhsc = load i8, i8* %2, align 1 233*9880d681SAndroid Build Coastguard Worker %phitmp.i = icmp eq i8 %lhsc, 64 234*9880d681SAndroid Build Coastguard Worker %3 = ptrtoint i8* %2 to i64 235*9880d681SAndroid Build Coastguard Worker br label %_ZNK4llvm9StringRef10startswithES0_.exit 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Worker_ZNK4llvm9StringRef10startswithES0_.exit: ; preds = %entry._ZNK4llvm9StringRef10startswithES0_.exit_crit_edge, %if.end.i.i 238*9880d681SAndroid Build Coastguard Worker %agg.tmp7.sroa.0.0.copyload = phi i64 [ %agg.tmp7.sroa.0.0.copyload.pre, %entry._ZNK4llvm9StringRef10startswithES0_.exit_crit_edge ], [ %3, %if.end.i.i ] 239*9880d681SAndroid Build Coastguard Worker %4 = phi i1 [ false, %entry._ZNK4llvm9StringRef10startswithES0_.exit_crit_edge ], [ %phitmp.i, %if.end.i.i ] 240*9880d681SAndroid Build Coastguard Worker %dec = sext i1 %4 to i32 241*9880d681SAndroid Build Coastguard Worker %dec. = add i32 %dec, %0 242*9880d681SAndroid Build Coastguard Worker %Tok = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 0, i32 1 243*9880d681SAndroid Build Coastguard Worker %ref = load %"struct.clang::format::FormatToken"*, %"struct.clang::format::FormatToken"** %Tok, align 8, !tbaa !13 244*9880d681SAndroid Build Coastguard Worker %conv = zext i32 %TailOffset to i64 245*9880d681SAndroid Build Coastguard Worker %add = add i64 %Split.coerce.fca.0.extract, %conv 246*9880d681SAndroid Build Coastguard Worker %add4 = add i64 %add, %1 247*9880d681SAndroid Build Coastguard Worker %conv5 = trunc i64 %add4 to i32 248*9880d681SAndroid Build Coastguard Worker %Split.sroa.2.8.extract.trunc = trunc i64 %Split.coerce.fca.1.extract to i32 249*9880d681SAndroid Build Coastguard Worker %agg.tmp6.sroa.0.0..sroa_idx13 = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 3 250*9880d681SAndroid Build Coastguard Worker %agg.tmp6.sroa.0.0..sroa_cast = bitcast %"class.llvm::StringRef"* %agg.tmp6.sroa.0.0..sroa_idx13 to i64* 251*9880d681SAndroid Build Coastguard Worker %agg.tmp6.sroa.0.0.copyload = load i64, i64* %agg.tmp6.sroa.0.0..sroa_cast, align 8 252*9880d681SAndroid Build Coastguard Worker %agg.tmp6.sroa.2.0..sroa_idx14 = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 3, i32 1 253*9880d681SAndroid Build Coastguard Worker %agg.tmp6.sroa.2.0.copyload = load i64, i64* %agg.tmp6.sroa.2.0..sroa_idx14, align 8 254*9880d681SAndroid Build Coastguard Worker %InPPDirective = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 0, i32 3 255*9880d681SAndroid Build Coastguard Worker %5 = load i8, i8* %InPPDirective, align 4, !tbaa !34, !range !39 256*9880d681SAndroid Build Coastguard Worker %tobool = icmp ne i8 %5, 0 257*9880d681SAndroid Build Coastguard Worker %IndentLevel = getelementptr inbounds %"class.clang::format::BreakableStringLiteral", %"class.clang::format::BreakableStringLiteral"* %this, i64 0, i32 0, i32 0, i32 2 258*9880d681SAndroid Build Coastguard Worker %6 = load i32, i32* %IndentLevel, align 8, !tbaa !33 259*9880d681SAndroid Build Coastguard Worker %.fca.0.insert11 = insertvalue [2 x i64] undef, i64 %agg.tmp6.sroa.0.0.copyload, 0 260*9880d681SAndroid Build Coastguard Worker %.fca.1.insert12 = insertvalue [2 x i64] %.fca.0.insert11, i64 %agg.tmp6.sroa.2.0.copyload, 1 261*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue [2 x i64] undef, i64 %agg.tmp7.sroa.0.0.copyload, 0 262*9880d681SAndroid Build Coastguard Worker %.fca.1.insert = insertvalue [2 x i64] %.fca.0.insert, i64 %1, 1 263*9880d681SAndroid Build Coastguard Worker tail call void @_ZN5clang6format17WhitespaceManager24replaceWhitespaceInTokenERKNS0_11FormatTokenEjjN4llvm9StringRefES6_bjji(%"class.clang::format::WhitespaceManager"* nonnull %Whitespaces, %"struct.clang::format::FormatToken"* dereferenceable(272) %ref, i32 zeroext %conv5, i32 zeroext %Split.sroa.2.8.extract.trunc, [2 x i64] %.fca.1.insert12, [2 x i64] %.fca.1.insert, i1 zeroext %tobool, i32 zeroext 1, i32 zeroext %6, i32 signext %dec.) #9 264*9880d681SAndroid Build Coastguard Worker ret void 265*9880d681SAndroid Build Coastguard Worker} 266*9880d681SAndroid Build Coastguard Worker 267*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind argmemonly 268*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.lifetime.start(i64, i8* nocapture) #2 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Workerdeclare void @_ZN5clang6format17WhitespaceManager24replaceWhitespaceInTokenERKNS0_11FormatTokenEjjN4llvm9StringRefES6_bjji(%"class.clang::format::WhitespaceManager"*, %"struct.clang::format::FormatToken"* dereferenceable(272), i32 zeroext, i32 zeroext, [2 x i64], [2 x i64], i1 zeroext, i32 zeroext, i32 zeroext, i32 signext) #3 271*9880d681SAndroid Build Coastguard Worker 272*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind argmemonly 273*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.lifetime.end(i64, i8* nocapture) #2 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Workerattributes #9 = { nounwind } 276*9880d681SAndroid Build Coastguard Worker 277*9880d681SAndroid Build Coastguard Worker!llvm.module.flags = !{!0} 278*9880d681SAndroid Build Coastguard Worker!llvm.ident = !{!1} 279*9880d681SAndroid Build Coastguard Worker 280*9880d681SAndroid Build Coastguard Worker!0 = !{i32 1, !"PIC Level", i32 2} 281*9880d681SAndroid Build Coastguard Worker!1 = !{!"clang version 3.8.0 (trunk 248714) (llvm/trunk 248719)"} 282*9880d681SAndroid Build Coastguard Worker!2 = !{!3, !4, i64 40} 283*9880d681SAndroid Build Coastguard Worker!3 = !{!"_ZTSN5clang6format24BreakableSingleLineTokenE", !4, i64 40, !7, i64 48, !7, i64 64, !7, i64 80} 284*9880d681SAndroid Build Coastguard Worker!4 = !{!"int", !5, i64 0} 285*9880d681SAndroid Build Coastguard Worker!5 = !{!"omnipotent char", !6, i64 0} 286*9880d681SAndroid Build Coastguard Worker!6 = !{!"Simple C/C++ TBAA"} 287*9880d681SAndroid Build Coastguard Worker!7 = !{!"_ZTSN4llvm9StringRefE", !8, i64 0, !9, i64 8} 288*9880d681SAndroid Build Coastguard Worker!8 = !{!"any pointer", !5, i64 0} 289*9880d681SAndroid Build Coastguard Worker!9 = !{!"long", !5, i64 0} 290*9880d681SAndroid Build Coastguard Worker!10 = !{!7, !9, i64 8} 291*9880d681SAndroid Build Coastguard Worker!11 = !{!9, !9, i64 0} 292*9880d681SAndroid Build Coastguard Worker!12 = !{!7, !8, i64 0} 293*9880d681SAndroid Build Coastguard Worker!13 = !{!5, !5, i64 0} 294*9880d681SAndroid Build Coastguard Worker!14 = !{!15, !4, i64 200} 295*9880d681SAndroid Build Coastguard Worker!15 = !{!"_ZTSN5clang6format11FormatStyleE", !4, i64 0, !16, i64 4, !16, i64 5, !16, i64 6, !16, i64 7, !16, i64 8, !16, i64 9, !16, i64 10, !16, i64 11, !17, i64 12, !16, i64 16, !16, i64 17, !18, i64 20, !16, i64 24, !16, i64 25, !16, i64 26, !16, i64 27, !19, i64 28, !20, i64 32, !16, i64 36, !16, i64 37, !4, i64 40, !21, i64 48, !16, i64 56, !4, i64 60, !4, i64 64, !16, i64 68, !16, i64 69, !16, i64 70, !16, i64 71, !23, i64 72, !16, i64 96, !4, i64 100, !16, i64 104, !16, i64 105, !24, i64 108, !21, i64 112, !21, i64 120, !4, i64 128, !25, i64 132, !4, i64 136, !16, i64 140, !16, i64 141, !4, i64 144, !4, i64 148, !4, i64 152, !4, i64 156, !4, i64 160, !4, i64 164, !26, i64 168, !16, i64 172, !16, i64 173, !27, i64 176, !16, i64 180, !4, i64 184, !16, i64 188, !16, i64 189, !16, i64 190, !16, i64 191, !16, i64 192, !28, i64 196, !4, i64 200, !29, i64 204} 296*9880d681SAndroid Build Coastguard Worker!16 = !{!"bool", !5, i64 0} 297*9880d681SAndroid Build Coastguard Worker!17 = !{!"_ZTSN5clang6format11FormatStyle18ShortFunctionStyleE", !5, i64 0} 298*9880d681SAndroid Build Coastguard Worker!18 = !{!"_ZTSN5clang6format11FormatStyle33DefinitionReturnTypeBreakingStyleE", !5, i64 0} 299*9880d681SAndroid Build Coastguard Worker!19 = !{!"_ZTSN5clang6format11FormatStyle19BinaryOperatorStyleE", !5, i64 0} 300*9880d681SAndroid Build Coastguard Worker!20 = !{!"_ZTSN5clang6format11FormatStyle18BraceBreakingStyleE", !5, i64 0} 301*9880d681SAndroid Build Coastguard Worker!21 = !{!"_ZTSSs", !22, i64 0} 302*9880d681SAndroid Build Coastguard Worker!22 = !{!"_ZTSNSs12_Alloc_hiderE", !8, i64 0} 303*9880d681SAndroid Build Coastguard Worker!23 = !{!"_ZTSSt6vectorISsSaISsEE"} 304*9880d681SAndroid Build Coastguard Worker!24 = !{!"_ZTSN5clang6format11FormatStyle12LanguageKindE", !5, i64 0} 305*9880d681SAndroid Build Coastguard Worker!25 = !{!"_ZTSN5clang6format11FormatStyle24NamespaceIndentationKindE", !5, i64 0} 306*9880d681SAndroid Build Coastguard Worker!26 = !{!"_ZTSN5clang6format11FormatStyle21PointerAlignmentStyleE", !5, i64 0} 307*9880d681SAndroid Build Coastguard Worker!27 = !{!"_ZTSN5clang6format11FormatStyle24SpaceBeforeParensOptionsE", !5, i64 0} 308*9880d681SAndroid Build Coastguard Worker!28 = !{!"_ZTSN5clang6format11FormatStyle16LanguageStandardE", !5, i64 0} 309*9880d681SAndroid Build Coastguard Worker!29 = !{!"_ZTSN5clang6format11FormatStyle11UseTabStyleE", !5, i64 0} 310*9880d681SAndroid Build Coastguard Worker!30 = !{!31, !32, i64 24} 311*9880d681SAndroid Build Coastguard Worker!31 = !{!"_ZTSN5clang6format14BreakableTokenE", !5, i64 8, !4, i64 16, !16, i64 20, !32, i64 24, !5, i64 32} 312*9880d681SAndroid Build Coastguard Worker!32 = !{!"_ZTSN5clang6format8encoding8EncodingE", !5, i64 0} 313*9880d681SAndroid Build Coastguard Worker!33 = !{!31, !4, i64 16} 314*9880d681SAndroid Build Coastguard Worker!34 = !{!31, !16, i64 20} 315*9880d681SAndroid Build Coastguard Worker!35 = !{!36, !36, i64 0} 316*9880d681SAndroid Build Coastguard Worker!36 = !{!"vtable pointer", !6, i64 0} 317*9880d681SAndroid Build Coastguard Worker!37 = !{!38, !38, i64 0} 318*9880d681SAndroid Build Coastguard Worker!38 = !{!"short", !5, i64 0} 319*9880d681SAndroid Build Coastguard Worker!39 = !{i8 0, i8 2} 320*9880d681SAndroid Build Coastguard Worker!40 = !{i64 0, i64 8, !41, i64 8, i64 8, !11} 321*9880d681SAndroid Build Coastguard Worker!41 = !{!8, !8, i64 0} 322*9880d681SAndroid Build Coastguard Worker!42 = !{!43, !8, i64 16} 323*9880d681SAndroid Build Coastguard Worker!43 = !{!"_ZTSN4llvm15SmallVectorBaseE", !8, i64 0, !8, i64 8, !8, i64 16} 324*9880d681SAndroid Build Coastguard Worker!44 = !{!43, !8, i64 8} 325*9880d681SAndroid Build Coastguard Worker!45 = !{!43, !8, i64 0} 326*9880d681SAndroid Build Coastguard Worker!46 = !{!4, !4, i64 0} 327*9880d681SAndroid Build Coastguard Worker!47 = !{!48, !16, i64 500} 328*9880d681SAndroid Build Coastguard Worker!48 = !{!"_ZTSN5clang6format21BreakableBlockCommentE", !49, i64 40, !51, i64 320, !53, i64 408, !4, i64 496, !16, i64 500, !7, i64 504} 329*9880d681SAndroid Build Coastguard Worker!49 = !{!"_ZTSN4llvm11SmallVectorINS_9StringRefELj16EEE", !50, i64 40} 330*9880d681SAndroid Build Coastguard Worker!50 = !{!"_ZTSN4llvm18SmallVectorStorageINS_9StringRefELj16EEE", !5, i64 0} 331*9880d681SAndroid Build Coastguard Worker!51 = !{!"_ZTSN4llvm11SmallVectorIjLj16EEE", !52, i64 28} 332*9880d681SAndroid Build Coastguard Worker!52 = !{!"_ZTSN4llvm18SmallVectorStorageIjLj16EEE", !5, i64 0} 333*9880d681SAndroid Build Coastguard Worker!53 = !{!"_ZTSN4llvm11SmallVectorIiLj16EEE", !54, i64 28} 334*9880d681SAndroid Build Coastguard Worker!54 = !{!"_ZTSN4llvm18SmallVectorStorageIiLj16EEE", !5, i64 0} 335*9880d681SAndroid Build Coastguard Worker!55 = !{!48, !4, i64 496} 336