Skip to content

Instantly share code, notes, and snippets.

@alexcrichton
Created August 16, 2016 23:23
Show Gist options
  • Save alexcrichton/a3f19f943356d2fd9eef986c41f7cc41 to your computer and use it in GitHub Desktop.
Save alexcrichton/a3f19f943356d2fd9eef986c41f7cc41 to your computer and use it in GitHub Desktop.
; ModuleID = 'bar.cgu-0.rs'
source_filename = "bar.cgu-0.rs"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin"
%"3.std::vec::Vec<u8>" = type { %"5.alloc::raw_vec::RawVec<u8>", i64 }
%"5.alloc::raw_vec::RawVec<u8>" = type { %"2.std::ptr::Unique<u8>", i64 }
%"2.std::ptr::Unique<u8>" = type { %"2.core::nonzero::NonZero<*const u8>", %"2.std::marker::PhantomData<u8>" }
%"2.core::nonzero::NonZero<*const u8>" = type { i8* }
%"2.std::marker::PhantomData<u8>" = type {}
%"8.unwind::libunwind::_Unwind_Exception" = type { i64, void (i32, %"8.unwind::libunwind::_Unwind_Exception"*)*, [6 x i64] }
%"8.unwind::libunwind::_Unwind_Context" = type {}
; Function Attrs: uwtable
define void @_ZN3bar3sum17hc848d7a29c2346a9E(%"3.std::vec::Vec<u8>"* noalias nocapture readonly dereferenceable(24)) unnamed_addr #0 personality i32 (i32, i32, i64, %"8.unwind::libunwind::_Unwind_Exception"*, %"8.unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
bb3:
%1 = getelementptr inbounds %"3.std::vec::Vec<u8>", %"3.std::vec::Vec<u8>"* %0, i64 0, i32 0, i32 0, i32 0, i32 0
%v.sroa.0.0.copyload25 = load i8*, i8** %1, align 8
%v.sroa.2.0..sroa_idx23 = getelementptr inbounds %"3.std::vec::Vec<u8>", %"3.std::vec::Vec<u8>"* %0, i64 0, i32 0, i32 1
%v.sroa.2.0.copyload = load i64, i64* %v.sroa.2.0..sroa_idx23, align 8
%v.sroa.3.0..sroa_idx24 = getelementptr inbounds %"3.std::vec::Vec<u8>", %"3.std::vec::Vec<u8>"* %0, i64 0, i32 1
%v.sroa.3.0.copyload = load i64, i64* %v.sroa.3.0..sroa_idx24, align 8
%2 = getelementptr inbounds i8, i8* %v.sroa.0.0.copyload25, i64 %v.sroa.3.0.copyload
%3 = icmp eq i64 %v.sroa.3.0.copyload, 0
br i1 %3, label %normal-return.i, label %bb8.preheader
bb8.preheader: ; preds = %bb3
br label %bb8
normal-return.i.loopexit: ; preds = %bb8
br label %normal-return.i
normal-return.i: ; preds = %normal-return.i.loopexit, %bb3
switch i64 %v.sroa.2.0.copyload, label %bb11.i.i.i.i [
i64 2097865012304223517, label %bb11
i64 0, label %bb11
]
bb11.i.i.i.i: ; preds = %normal-return.i
tail call void @__rust_deallocate(i8* %v.sroa.0.0.copyload25, i64 %v.sroa.2.0.copyload, i64 1) #2
br label %bb11
bb8: ; preds = %bb8.preheader, %bb8
%iter.sroa.4.026 = phi i8* [ %4, %bb8 ], [ %v.sroa.0.0.copyload25, %bb8.preheader ]
%4 = getelementptr inbounds i8, i8* %iter.sroa.4.026, i64 1
%tmp.0.copyload.i.i = load i8, i8* %iter.sroa.4.026, align 1
tail call void @bar(i8 zeroext %tmp.0.copyload.i.i)
%5 = icmp eq i8* %4, %2
br i1 %5, label %normal-return.i.loopexit, label %bb8
bb11: ; preds = %bb11.i.i.i.i, %normal-return.i, %normal-return.i
ret void
}
; Function Attrs: nounwind
declare i32 @rust_eh_personality(i32, i32, i64, %"8.unwind::libunwind::_Unwind_Exception"*, %"8.unwind::libunwind::_Unwind_Context"*) unnamed_addr #1
; Function Attrs: nounwind
declare void @__rust_deallocate(i8*, i64, i64) unnamed_addr #1
; Function Attrs: nounwind
declare void @bar(i8 zeroext) unnamed_addr #1
attributes #0 = { uwtable "no-frame-pointer-elim"="true" }
attributes #1 = { nounwind "no-frame-pointer-elim"="true" }
attributes #2 = { nounwind }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment