Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Function Attrs: uwtable
- define %struct.Foo* @getFoo(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<Foo, std::default_delete<Foo> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<Foo, std::default_delete<Foo> > > > >&)(%"class.std::basic_string"* %key, %"class.std::unordered_map"* %cache) #0 {
- %1 = alloca %"class.std::unique_ptr", align 8
- call void @llvm.dbg.declare(metadata !{%"class.std::basic_string"* %key}, metadata !2421), !dbg !3147
- call void @llvm.dbg.value(metadata !{%"class.std::unordered_map"* %cache}, i64 0, metadata !2422), !dbg !3148
- %2 = call %"class.std::unique_ptr"* @std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<Foo, std::default_delete<Foo> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<Foo, std::default_delete<Foo> > > > >::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)(%"class.std::unordered_map"* %cache, %"class.std::basic_string"* %key), !dbg !3149
- %3 = call zeroext i1 @std::unique_ptr<Foo, std::default_delete<Foo> >::operator bool() const(%"class.std::unique_ptr"* %2) #5, !dbg !3149
- %4 = call %"class.std::unique_ptr"* @std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<Foo, std::default_delete<Foo> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<Foo, std::default_delete<Foo> > > > >::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)(%"class.std::unordered_map"* %cache, %"class.std::basic_string"* %key), !dbg !3151
- ; <label>:5 ; preds = %0
- %6 = call %struct.Foo* @std::unique_ptr<Foo, std::default_delete<Foo> >::get() const(%"class.std::unique_ptr"* %4) #5, !dbg !3151
- br label %14, !dbg !3151
- ; <label>:7 ; preds = %0
- call void @std::unique_ptr<Foo, std::default_delete<Foo> >::unique_ptr(Foo*)(%"class.std::unique_ptr"* %1, %struct.Foo* %9) #5, !dbg !3152
- %11 = call %"class.std::unique_ptr"* @std::unique_ptr<Foo, std::default_delete<Foo> >::operator=(std::unique_ptr<Foo, std::default_delete<Foo> >&&)(%"class.std::unique_ptr"* %4, %"class.std::unique_ptr"* %1) #5, !dbg !3152
- call void @std::unique_ptr<Foo, std::default_delete<Foo> >::~unique_ptr()(%"class.std::unique_ptr"* %1) #5, !dbg !3152
- %12 = call %"class.std::unique_ptr"* @std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<Foo, std::default_delete<Foo> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<Foo, std::default_delete<Foo> > > > >::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)(%"class.std::unordered_map"* %cache, %"class.std::basic_string"* %key), !dbg !3153
- %13 = call %struct.Foo* @std::unique_ptr<Foo, std::default_delete<Foo> >::get() const(%"class.std::unique_ptr"* %12) #5, !dbg !3153
- br label %14, !dbg !3153
- ; <label>:14 ; preds = %7, %5
- %.0 = phi %struct.Foo* [ %6, %5 ], [ %13, %7 ]
- ret %struct.Foo* %.0, !dbg !3154
- }
- ; Function Attrs: uwtable
- define %struct.Foo* @getFooBetter(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<Foo, std::default_delete<Foo> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<Foo, std::default_delete<Foo> > > > >&)(%"class.std::basic_string"* %key, %"class.std::unordered_map"* %cache) #0 {
- %1 = alloca %"class.std::unique_ptr", align 8
- call void @llvm.dbg.declare(metadata !{%"class.std::basic_string"* %key}, metadata !2425), !dbg !3185
- call void @llvm.dbg.value(metadata !{%"class.std::unordered_map"* %cache}, i64 0, metadata !2426), !dbg !3186
- %2 = call %"class.std::unique_ptr"* @std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<Foo, std::default_delete<Foo> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<Foo, std::default_delete<Foo> > > > >::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)(%"class.std::unordered_map"* %cache, %"class.std::basic_string"* %key), !dbg !3187
- call void @llvm.dbg.value(metadata !{%"class.std::unique_ptr"* %2}, i64 0, metadata !2427), !dbg !3187
- %3 = call zeroext i1 @std::unique_ptr<Foo, std::default_delete<Foo> >::operator bool() const(%"class.std::unique_ptr"* %2) #5, !dbg !3188
- ; <label>:4 ; preds = %0
- %5 = call %struct.Foo* @std::unique_ptr<Foo, std::default_delete<Foo> >::get() const(%"class.std::unique_ptr"* %2) #5, !dbg !3190
- br label %12, !dbg !3190
- ; <label>:6 ; preds = %0
- call void @std::unique_ptr<Foo, std::default_delete<Foo> >::unique_ptr(Foo*)(%"class.std::unique_ptr"* %1, %struct.Foo* %8) #5, !dbg !3191
- %10 = call %"class.std::unique_ptr"* @std::unique_ptr<Foo, std::default_delete<Foo> >::operator=(std::unique_ptr<Foo, std::default_delete<Foo> >&&)(%"class.std::unique_ptr"* %2, %"class.std::unique_ptr"* %1) #5, !dbg !3191
- call void @std::unique_ptr<Foo, std::default_delete<Foo> >::~unique_ptr()(%"class.std::unique_ptr"* %1) #5, !dbg !3191
- %11 = call %struct.Foo* @std::unique_ptr<Foo, std::default_delete<Foo> >::get() const(%"class.std::unique_ptr"* %2) #5, !dbg !3192
- br label %12, !dbg !3192
- ; <label>:12 ; preds = %6, %4
- %.0 = phi %struct.Foo* [ %5, %4 ], [ %11, %6 ]
- ret %struct.Foo* %.0, !dbg !3193
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement