Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; MovuleID = 'unit/codegen/vbases.cpp'
- target datalayout = "b-e-p:32:8-i16:8-i32:8-i64:8-f32:8-f64:8-a:0:8-f80:8-n8:8:8-S8"
- target triple = "cheerp--webbrowser"
- %class._ZSt9type_info = type opaque
- %struct._ZN10__cxxabiv113__vtable_baseE = type opaque
- $_ZN1V3fooEv = comdat any
- $_ZN1V3barEv = comdat any
- $_ZN2X13fooEv = comdat any
- $_ZN2X13barEv = comdat any
- @_ZTV1V = linkonce_odr unnamed_addr constant { directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } } { directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } { i32* getelementptr inbounds ([0 x i32]* @_ZTO1V, i32 0, i32 0), %class._ZSt9type_info* null, i32 (...)* bitcast (void (%struct._Z1V*)* @_ZN1V3fooEv to i32 (...)*), i32 (...)* bitcast (void (%struct._Z1V*)* @_ZN1V3barEv to i32 (...)*), i32 (...)* bitcast (void (%struct._Z1V*)* @_ZN1VD2Ev to i32 (...)*), i32 (...)* bitcast (void (%struct._Z1V*)* @_ZN1VD0Ev to i32 (...)*) } }, align 4
- @_ZTV2X1 = linkonce_odr unnamed_addr constant { directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }, directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } } { directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } { i32* getelementptr inbounds ([1 x i32]* @_ZTO2X1, i32 0, i32 0), %class._ZSt9type_info* null, i32 (...)* bitcast (void (%struct._Z2X1*)* @_ZN2X13fooEv to i32 (...)*), i32 (...)* bitcast (void (%struct._Z2X1*)* @_ZN2X13barEv to i32 (...)*), i32 (...)* bitcast (void (%struct._Z2X1*)* @_ZN2X1D1Ev to i32 (...)*), i32 (...)* bitcast (void (%struct._Z2X1*)* @_ZN2X1D0Ev to i32 (...)*) }, directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } { i32* getelementptr inbounds ([4 x i32]* @_ZTO2X11, i32 0, i32 0), %class._ZSt9type_info* null, i32 (...)* bitcast (void (%struct._Z1V*)* @_ZTv0_n12_N2X13fooEv to i32 (...)*), i32 (...)* bitcast (void (%struct._Z1V*)* @_ZTv0_n16_N2X13barEv to i32 (...)*), i32 (...)* bitcast (void (%struct._Z1V*)* @_ZTv0_n20_N2X1D1Ev to i32 (...)*), i32 (...)* bitcast (void (%struct._Z1V*)* @_ZTv0_n20_N2X1D0Ev to i32 (...)*) } }, align 4
- @_ZTT2X1 = linkonce_odr unnamed_addr constant [2 x i8*] [i8* bitcast (directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }* getelementptr inbounds ({ directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }, directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } }* @_ZTV2X1, i32 0, i32 0) to i8*), i8* bitcast (directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }* getelementptr inbounds ({ directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }, directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } }* @_ZTV2X1, i32 0, i32 1) to i8*)]
- ; Function Attrs: nounwind
- entry:
- %v = alloca %struct._Z1V, align 1
- %x1 = alloca %struct._Z2X1, align 1
- %0 = icmp eq %struct._Z2X1* %x1, null
- cast.notnull: ; preds = %entry
- %vtable = load %struct._ZN10__cxxabiv113__vtable_baseE** %1
- %4 = call %struct._Z1V* @llvm.cheerp.upcast.collapsed.p0struct._Z1V.p0struct._Z2X1(%struct._Z2X1* %x1)
- br label %cast.end
- cast.end: ; preds = %cast.notnull, %entry
- %cast.result = phi %struct._Z1V* [ %4, %cast.notnull ], [ null, %entry ]
- %vtable1 = load %struct._ZN10__cxxabiv113__vtable_baseE** %5
- call void %8(%struct._Z1V* %cast.result)
- %vtable2 = load %struct._ZN10__cxxabiv113__vtable_baseE** %9
- call void %12(%struct._Z1V* %cast.result)
- }
- ; Function Attrs: nounwind
- entry:
- store %struct._ZN10__cxxabiv113__vtable_baseE* bitcast (directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }* getelementptr inbounds ({ directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } }* @_ZTV1V, i32 0, i32 0) to %struct._ZN10__cxxabiv113__vtable_baseE*), %struct._ZN10__cxxabiv113__vtable_baseE** %0
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- store %struct._ZN10__cxxabiv113__vtable_baseE* bitcast (directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }* getelementptr inbounds ({ directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }, directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } }* @_ZTV2X1, i32 0, i32 0) to %struct._ZN10__cxxabiv113__vtable_baseE*), %struct._ZN10__cxxabiv113__vtable_baseE** %1
- store %struct._ZN10__cxxabiv113__vtable_baseE* bitcast (directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }* getelementptr inbounds ({ directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }, directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } }* @_ZTV2X1, i32 0, i32 1) to %struct._ZN10__cxxabiv113__vtable_baseE*), %struct._ZN10__cxxabiv113__vtable_baseE** %3
- ret void
- }
- ; Function Attrs: nounwind
- ; Function Attrs: nounwind
- entry:
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- %cheerpPtrAlloca = alloca %class._ZN6client6StringE*
- store %struct._ZN10__cxxabiv113__vtable_baseE* bitcast (directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* }* getelementptr inbounds ({ directbase %struct._ZN10__cxxabiv113__vtable_baseE { i32*, %class._ZSt9type_info*, i32 (...)*, i32 (...)*, i32 (...)*, i32 (...)* } }* @_ZTV1V, i32 0, i32 0) to %struct._ZN10__cxxabiv113__vtable_baseE*), %struct._ZN10__cxxabiv113__vtable_baseE** %0
- store %class._ZN6client6StringE* %retConstructor, %class._ZN6client6StringE** %cheerpPtrAlloca
- %cheerpPtrLoad = load %class._ZN6client6StringE** %cheerpPtrAlloca
- call void @_ZN6client7Console3logERKNS_6StringE(%class._ZN6client7ConsoleE* @_ZN6client7consoleE, %class._ZN6client6StringE* dereferenceable(1) %cheerpPtrLoad)
- ret void
- }
- declare void @_ZN6client7Console3logERKNS_6StringE(%class._ZN6client7ConsoleE*, %class._ZN6client6StringE* dereferenceable(1)) #2
- ; Function Attrs: nounwind
- ; Function Attrs: nounwind
- entry:
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- %cheerpPtrAlloca = alloca %class._ZN6client6StringE*
- store %struct._ZN10__cxxabiv113__vtable_baseE* %2, %struct._ZN10__cxxabiv113__vtable_baseE** %1
- %vtable = load %struct._ZN10__cxxabiv113__vtable_baseE** %6
- store %struct._ZN10__cxxabiv113__vtable_baseE* %10, %struct._ZN10__cxxabiv113__vtable_baseE** %9
- store %class._ZN6client6StringE* %retConstructor, %class._ZN6client6StringE** %cheerpPtrAlloca
- %cheerpPtrLoad = load %class._ZN6client6StringE** %cheerpPtrAlloca
- call void @_ZN6client7Console3logERKNS_6StringE(%class._ZN6client7ConsoleE* @_ZN6client7consoleE, %class._ZN6client6StringE* dereferenceable(1) %cheerpPtrLoad)
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- %0 = call %struct._Z2X1* @llvm.cheerp.downcast.p0struct._Z2X1.p0struct._Z1V(%struct._Z1V* %this, i32 0)
- ret void
- }
- ; Function Attrs: nounwind
- declare %struct._Z2X1* @llvm.cheerp.downcast.p0struct._Z2X1.p0struct._Z1V(%struct._Z1V* nocapture, i32) #1
- ; Function Attrs: nounwind
- entry:
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- %0 = call %struct._Z2X1* @llvm.cheerp.downcast.p0struct._Z2X1.p0struct._Z1V(%struct._Z1V* %this, i32 0)
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- %0 = call %struct._Z2X1* @llvm.cheerp.downcast.p0struct._Z2X1.p0struct._Z1V(%struct._Z1V* %this, i32 0)
- ret void
- }
- ; Function Attrs: nounwind
- entry:
- %0 = call %struct._Z2X1* @llvm.cheerp.downcast.p0struct._Z2X1.p0struct._Z1V(%struct._Z1V* %this, i32 0)
- ret void
- }
- 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 }
- attributes #2 = { "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" }
- !llvm.ident = !{!0}
- !0 = !{!"clang version 3.7.0 (/home/yuri/work/cheerp-PKGBUILDs/cheerp-llvm-clang/clang e5b58c98d2d18f6b0f4bbc700bf3e34e21c18f54) (/home/yuri/work/cheerp-PKGBUILDs/cheerp-llvm-clang/cheerp-llvm 1af63e8477c9fa7f9d3fa3fc7577acda6312745e)"}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement