wasmtime 0.3.0

Command-line interface for Wasmtime
Documentation
; ModuleID = 't.cc'
source_filename = "t.cc"
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
target triple = "wasm32-unknown-wasi"

%"class.std::__2::vector" = type { %"class.std::__2::__vector_base" }
%"class.std::__2::__vector_base" = type { float*, float*, %"class.std::__2::__compressed_pair" }
%"class.std::__2::__compressed_pair" = type { %"struct.std::__2::__compressed_pair_elem" }
%"struct.std::__2::__compressed_pair_elem" = type { float* }

$_ZNSt3__213__vector_baseIfNS_9allocatorIfEEED2Ev = comdat any

; Function Attrs: minsize norecurse nounwind optsize
define hidden i32 @main() local_unnamed_addr #0 {
  %1 = alloca %"class.std::__2::vector", align 4
  %2 = bitcast %"class.std::__2::vector"* %1 to i8*
  call void @llvm.lifetime.start.p0i8(i64 12, i8* nonnull %2) #4
  %3 = getelementptr inbounds %"class.std::__2::vector", %"class.std::__2::vector"* %1, i32 0, i32 0, i32 0
  store float* null, float** %3, align 4, !tbaa !2
  %4 = getelementptr inbounds %"class.std::__2::vector", %"class.std::__2::vector"* %1, i32 0, i32 0, i32 1
  store float* null, float** %4, align 4, !tbaa !8
  %5 = getelementptr inbounds %"class.std::__2::vector", %"class.std::__2::vector"* %1, i32 0, i32 0, i32 2, i32 0, i32 0
  store float* null, float** %5, align 4, !tbaa !9
  %6 = getelementptr inbounds %"class.std::__2::vector", %"class.std::__2::vector"* %1, i32 0, i32 0
  %7 = call %"class.std::__2::__vector_base"* @_ZNSt3__213__vector_baseIfNS_9allocatorIfEEED2Ev(%"class.std::__2::__vector_base"* nonnull %6) #5
  call void @llvm.lifetime.end.p0i8(i64 12, i8* nonnull %2) #4
  ret i32 0
}

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1

; Function Attrs: minsize nounwind optsize
define linkonce_odr hidden %"class.std::__2::__vector_base"* @_ZNSt3__213__vector_baseIfNS_9allocatorIfEEED2Ev(%"class.std::__2::__vector_base"* returned) unnamed_addr #2 comdat {
  %2 = getelementptr inbounds %"class.std::__2::__vector_base", %"class.std::__2::__vector_base"* %0, i32 0, i32 0
  %3 = load float*, float** %2, align 4, !tbaa !2
  %4 = icmp eq float* %3, null
  br i1 %4, label %10, label %5

; <label>:5:                                      ; preds = %1
  %6 = ptrtoint float* %3 to i32
  %7 = getelementptr inbounds %"class.std::__2::__vector_base", %"class.std::__2::__vector_base"* %0, i32 0, i32 1
  %8 = bitcast float** %7 to i32*
  store i32 %6, i32* %8, align 4, !tbaa !8
  %9 = bitcast float* %3 to i8*
  tail call void @_ZdlPv(i8* %9) #6
  br label %10

; <label>:10:                                     ; preds = %1, %5
  ret %"class.std::__2::__vector_base"* %0
}

; Function Attrs: minsize nobuiltin nounwind optsize
declare void @_ZdlPv(i8*) local_unnamed_addr #3

attributes #0 = { minsize norecurse nounwind optsize "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="generic" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind }
attributes #2 = { minsize nounwind optsize "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="generic" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #3 = { minsize nobuiltin nounwind optsize "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="generic" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #4 = { nounwind }
attributes #5 = { minsize nounwind optsize }
attributes #6 = { builtin minsize nounwind optsize }

!llvm.module.flags = !{!0}
!llvm.ident = !{!1}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{!"clang version 8.0.0 "}
!2 = !{!3, !4, i64 0}
!3 = !{!"_ZTSNSt3__213__vector_baseIfNS_9allocatorIfEEEE", !4, i64 0, !4, i64 4, !7, i64 8}
!4 = !{!"any pointer", !5, i64 0}
!5 = !{!"omnipotent char", !6, i64 0}
!6 = !{!"Simple C++ TBAA"}
!7 = !{!"_ZTSNSt3__217__compressed_pairIPfNS_9allocatorIfEEEE"}
!8 = !{!3, !4, i64 4}
!9 = !{!10, !4, i64 0}
!10 = !{!"_ZTSNSt3__222__compressed_pair_elemIPfLi0ELb0EEE", !4, i64 0}