diff --git a/hpvm/test/pipeline/Makefile b/hpvm/test/pipeline/Makefile index 548949fe72aea79ef6b387154384ad4e7d3cd374..2a9521a9ea4b5a66c724ba1ca27adad6a7291764 100644 --- a/hpvm/test/pipeline/Makefile +++ b/hpvm/test/pipeline/Makefile @@ -26,8 +26,7 @@ INCLUDES += -I$(SRC_DIR) -I$(CAM_PIPE_SRC_DIR) INCLUDES += -I$(LLVM_SRC_ROOT)/include -I../include -I$(HPVM_BUILD_DIR)/include ## BEGIN HPVM MAKEFILE -SRCDIR_OBJS= io.ll -OBJS_SRC=src/io.cc +SRCDIR_OBJS= HPVM_OBJS=main.hpvm.ll APP = $(EXE) APP_CFLAGS += $(INCLUDES) -ffast-math -O3 -fno-lax-vector-conversions -fno-vectorize -fno-slp-vectorize diff --git a/hpvm/test/pipeline/copyToVersions.sh b/hpvm/test/pipeline/copyToVersions.sh deleted file mode 100755 index 67551aff2f1b47fb2ad9c69be44936e8145a68da..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/copyToVersions.sh +++ /dev/null @@ -1,12 +0,0 @@ - -declare -a versionList=("hpvmGPU" "hpvmVector" "hpvmScalar" "hpvmGPU-Scalar-MaxG" "hpvmVector-Scalar-MaxG" "hpvmGPU-Scalar-ZC" "hpvmVector-Scalar-ZC") -declare -a fileList=("Makefile" "io.cc" "main.cc") - -for version in "${versionList[@]}"; do - echo $version - for filename in "${fileList[@]}"; do - echo cp ./src/hpvm_parallel/$filename ./src/$version/ - cp ./src/hpvm_parallel/$filename ./src/$version/ - done - echo -done diff --git a/hpvm/test/pipeline/gradient.hpvm.merged.experiments.notimer.ll b/hpvm/test/pipeline/gradient.hpvm.merged.experiments.notimer.ll deleted file mode 100644 index 8056cc12eed0e4d20d45e294bf674dfc689f6bb8..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/gradient.hpvm.merged.experiments.notimer.ll +++ /dev/null @@ -1,2192 +0,0 @@ -; ModuleID = 'build/Gradient_default/main.hpvm.ll' -target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" - -%"class.std::ios_base::Init" = type { i8 } -%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" } -%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* } -%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" } -%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* } -%"class.std::ios_base" = type { i32 (...)**, i64, i64, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" } -%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 } -%"struct.std::ios_base::_Words" = type { i8*, i64 } -%"class.std::locale" = type { %"class.std::locale::_Impl"* } -%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i64, %"class.std::locale::facet"**, i8** } -%"class.std::locale::facet" = type { i32 (...)**, i32 } -%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" } -%"class.std::ctype" = type { %"class.std::locale::facet", %struct.__locale_struct*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 } -%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] } -%struct.__locale_data = type opaque -%"class.std::num_put" = type { %"class.std::locale::facet" } -%"class.std::num_get" = type { %"class.std::locale::facet" } -%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] } -%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 } -%"class.std::allocator" = type { i8 } -%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" } -%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" = type { i64, i64, i32 } -%struct.InStruct = type <{ float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32 }> -%emptyStruct = type <{}> -%emptyStruct.23 = type <{}> -%emptyStruct.24 = type <{}> -%"class.cv::VideoCapture" = type { i32 (...)**, %"struct.cv::Ptr", %"struct.cv::Ptr.0" } -%"struct.cv::Ptr" = type { %"struct.cv::detail::PtrOwner"*, %struct.CvCapture* } -%"struct.cv::detail::PtrOwner" = type { i32 (...)**, i32 } -%struct.CvCapture = type opaque -%"struct.cv::Ptr.0" = type { %"struct.cv::detail::PtrOwner"*, %"class.cv::IVideoCapture"* } -%"class.cv::IVideoCapture" = type opaque -%"class.cv::Mat" = type { i32, i32, i32, i32, i8*, i8*, i8*, i8*, %"class.cv::MatAllocator"*, %"struct.cv::UMatData"*, %"struct.cv::MatSize", %"struct.cv::MatStep" } -%"class.cv::MatAllocator" = type { i32 (...)** } -%"struct.cv::UMatData" = type { %"class.cv::MatAllocator"*, %"class.cv::MatAllocator"*, i32, i32, i8*, i8*, i64, i32, i8*, i8*, i32 } -%"struct.cv::MatSize" = type { i32* } -%"struct.cv::MatStep" = type { i64*, [2 x i64] } -%"class.cv::_InputArray" = type { i32, i8*, %"class.cv::Size_" } -%"class.cv::Size_" = type { i32, i32 } -%"class.cv::_OutputArray" = type { %"class.cv::_InputArray" } -%struct.pb_TimerSet = type { i32, %struct.pb_async_time_marker_list*, i64, i64, [24 x %struct.pb_Timer], [24 x %struct.pb_SubTimerList*] } -%struct.pb_async_time_marker_list = type { i8*, i32, i8*, %struct.pb_async_time_marker_list* } -%struct.pb_Timer = type { i32, i64, i64 } -%struct.pb_SubTimerList = type { %struct.pb_SubTimer*, %struct.pb_SubTimer* } -%struct.pb_SubTimer = type { i8*, %struct.pb_Timer, %struct.pb_SubTimer* } -%"class.cv::String" = type { i8*, i64 } -%struct.pb_Parameters = type { i8*, i8** } -%horizontal.vertical.ty = type <{ i32, i32 }> -%WrapperHorizontal.WrapperVertical.ty = type <{ i32, i32 }> - -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external unnamed_addr global i8 -@input_window = global %"class.std::basic_string" zeroinitializer, align 8 -@.str = private unnamed_addr constant [27 x i8] c"GPU Pipeline - Input Video\00", align 1 -@output_window = global %"class.std::basic_string" zeroinitializer, align 8 -@.str3 = private unnamed_addr constant [28 x i8] c"GPU Pipeline - Edge Mapping\00", align 1 -@_ZSt4cout = external global %"class.std::basic_ostream" -@.str4 = private unnamed_addr constant [13 x i8] c"Using OpenCV\00", align 1 -@.str5 = private unnamed_addr constant [10 x i8] c"3.0.0-dev\00", align 1 -@.str6 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 -@stderr = external global %struct._IO_FILE* -@.str7 = private unnamed_addr constant [32 x i8] c"Expecting input image filename\0A\00", align 1 -@.str8 = private unnamed_addr constant [21 x i8] c"Reading video file: \00", align 1 -@.str9 = private unnamed_addr constant [26 x i8] c"Could not open video file\00", align 1 -@.str10 = private unnamed_addr constant [20 x i8] c"Number of frames = \00", align 1 -@.str11 = private unnamed_addr constant [19 x i8] c"Image dimension = \00", align 1 -@.str12 = private unnamed_addr constant [50 x i8] c"Expecting contiguous storage of image in memory!\0A\00", align 1 -@.str13 = private unnamed_addr constant [81 x i8] c"src.isContinuous() && Gx.isContinuous() && Gy.isContinuous() && G.isContinuous()\00", align 1 -@.str14 = private unnamed_addr constant [21 x i8] c"src/Gradient/main.cc\00", align 1 -@__PRETTY_FUNCTION__.main = private unnamed_addr constant [23 x i8] c"int main(int, char **)\00", align 1 -@.str15 = private unnamed_addr constant [39 x i8] c"src.size[0]*src.size[1] % block_x == 0\00", align 1 -@.str16 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@.str17 = private unnamed_addr constant [4 x i8] c" x \00", align 1 -@.str18 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@_ZNSs4_Rep20_S_empty_rep_storageE = external global [0 x i64] -@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }] - -declare void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*) #0 - -declare void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*) #0 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #1 - -declare void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"*, i8*, %"class.std::allocator"*) #0 - -; Function Attrs: nounwind uwtable -define available_externally void @_ZNSsD1Ev(%"class.std::basic_string"* nocapture %this) unnamed_addr #2 align 2 { -entry: - %ref.tmp.i = alloca %"class.std::allocator", align 1 - %0 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %0) #1 - %_M_p.i.i.i = getelementptr inbounds %"class.std::basic_string"* %this, i64 0, i32 0, i32 0 - %1 = load i8** %_M_p.i.i.i, align 8, !tbaa !5 - %arrayidx.i.i = getelementptr inbounds i8* %1, i64 -24 - %2 = bitcast i8* %arrayidx.i.i to %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"* - %cmp.i.i = icmp eq i8* %arrayidx.i.i, bitcast ([0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*) - br i1 %cmp.i.i, label %_ZNSsD2Ev.exit, label %if.then.i.i, !prof !8 - -if.then.i.i: ; preds = %entry - %_M_refcount.i.i = getelementptr inbounds i8* %1, i64 -8 - %3 = bitcast i8* %_M_refcount.i.i to i32* - br i1 icmp ne (i8* bitcast (i32 (i64)* @pthread_cancel to i8*), i8* null), label %if.then.i.i.i, label %if.else.i.i.i - -if.then.i.i.i: ; preds = %if.then.i.i - %4 = atomicrmw add i32* %3, i32 -1 seq_cst - br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i - -if.else.i.i.i: ; preds = %if.then.i.i - %5 = load i32* %3, align 4, !tbaa !9 - %add.i.i.i.i = add nsw i32 %5, -1 - store i32 %add.i.i.i.i, i32* %3, align 4, !tbaa !9 - br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i - -_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i: ; preds = %if.else.i.i.i, %if.then.i.i.i - %retval.0.i.i.i = phi i32 [ %4, %if.then.i.i.i ], [ %5, %if.else.i.i.i ] - %cmp3.i.i = icmp slt i32 %retval.0.i.i.i, 1 - br i1 %cmp3.i.i, label %if.then4.i.i, label %_ZNSsD2Ev.exit - -if.then4.i.i: ; preds = %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i - call void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"* %2, %"class.std::allocator"* %ref.tmp.i) #1 - br label %_ZNSsD2Ev.exit - -_ZNSsD2Ev.exit: ; preds = %if.then4.i.i, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i, %entry - call void @llvm.lifetime.end(i64 1, i8* %0) #1 - ret void -} - -; Function Attrs: nounwind uwtable -define void @packData(%struct.InStruct* nocapture %args, float* %I, i64 %bytesI, float* %Sx, i64 %bytesSx, float* %Sy, i64 %bytesSy, float* %Gx, i64 %bytesGx, float* %Gy, i64 %bytesGy, float* %G, i64 %bytesG, i32 %m, i32 %n) #2 { -entry: - %I1 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 0 - store float* %I, float** %I1, align 1, !tbaa !5 - %bytesI2 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 1 - store i64 %bytesI, i64* %bytesI2, align 1, !tbaa !10 - %Sx3 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 2 - store float* %Sx, float** %Sx3, align 1, !tbaa !5 - %bytesSx4 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 3 - store i64 %bytesSx, i64* %bytesSx4, align 1, !tbaa !10 - %Sy5 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 4 - store float* %Sy, float** %Sy5, align 1, !tbaa !5 - %bytesSy6 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 5 - store i64 %bytesSy, i64* %bytesSy6, align 1, !tbaa !10 - %Gx7 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 6 - store float* %Gx, float** %Gx7, align 1, !tbaa !5 - %bytesGx8 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 7 - store i64 %bytesGx, i64* %bytesGx8, align 1, !tbaa !10 - %Gy9 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 8 - store float* %Gy, float** %Gy9, align 1, !tbaa !5 - %bytesGy10 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 9 - store i64 %bytesGy, i64* %bytesGy10, align 1, !tbaa !10 - %G11 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 10 - store float* %G, float** %G11, align 1, !tbaa !5 - %bytesG12 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 11 - store i64 %bytesG, i64* %bytesG12, align 1, !tbaa !10 - %m13 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 12 - store i32 %m, i32* %m13, align 1, !tbaa !9 - %n14 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 13 - store i32 %n, i32* %n14, align 1, !tbaa !9 - ret void -} - -; Function Attrs: nounwind uwtable -define %emptyStruct @squareRoot(float* nocapture in %Gx, i64 %bytesGx, float* nocapture in %Gy, i64 %bytesGy, float* nocapture out %G, i64 %bytesG, i32 %m, i32 %n, i32 %dummyH, i32 %dummyV) #2 { -entry: - %call3 = tail call i8* @llvm.hpvm.getNode() - %call14 = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3) - %call25 = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3) - %cmp = icmp slt i32 %call14, %n - %cmp3 = icmp slt i32 %call25, %m - %or.cond = and i1 %cmp, %cmp3 - br i1 %or.cond, label %if.then, label %if.end - -if.then: ; preds = %entry - %mul = mul nsw i32 %call25, %n - %add = add nsw i32 %mul, %call14 - %idxprom = sext i32 %add to i64 - %arrayidx = getelementptr inbounds float* %Gx, i64 %idxprom - %0 = load float* %arrayidx, align 4, !tbaa !11 - %mul6 = fmul fast float %0, %0 - %arrayidx8 = getelementptr inbounds float* %Gy, i64 %idxprom - %1 = load float* %arrayidx8, align 4, !tbaa !11 - %mul11 = fmul fast float %1, %1 - %add12 = fadd fast float %mul6, %mul11 - %call136 = tail call float @llvm.sqrt.f32(float %add12) - %arrayidx15 = getelementptr inbounds float* %G, i64 %idxprom - store float %call136, float* %arrayidx15, align 4, !tbaa !11 - br label %if.end - -if.end: ; preds = %if.then, %entry - ret %emptyStruct undef -} - -; Function Attrs: nounwind uwtable -define %emptyStruct.23 @WrapperSquareRoot(float* nocapture in %Gx, i64 %bytesGx, float* nocapture in %Gy, i64 %bytesGy, float* nocapture out %G, i64 %bytesG, i32 %m, i32 %n, i32 %dummyH, i32 %dummyV) #2 { -entry: - %squareRoot.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%emptyStruct (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @squareRoot to i8*), i32 %m, i32 %n) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 2, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 3, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 4, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 5, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 6, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 7, i32 7, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 8, i32 8, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 9, i32 9, i1 false) - ret %emptyStruct.23 undef -} - -; Function Attrs: nounwind uwtable -define %emptyStruct.24 @Gradient(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %Sx, i64 %bytesSx, float* nocapture in %Sy, i64 %bytesSy, float* nocapture out %Gx, i64 %bytesGx, float* nocapture out %Gy, i64 %bytesGy, float* nocapture out %G, i64 %bytesG, i32 %m, i32 %n) #2 { -entry: - %WrapperHorizontal_WrapperVertical.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%WrapperHorizontal.WrapperVertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperHorizontal_WrapperVertical to i8*)) - %WrapperSquareRoot.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%emptyStruct.23 (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperSquareRoot to i8*)) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 2, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 3, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 6, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 7, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 12, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 13, i32 7, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 0, i32 8, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 1, i32 9, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 4, i32 10, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 5, i32 11, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 8, i32 12, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 9, i32 13, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 12, i32 14, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 13, i32 15, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 6, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 7, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 8, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 9, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 10, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 11, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 12, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 13, i32 7, i1 false) - %output.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperHorizontal_WrapperVertical.node, i8* %WrapperSquareRoot.node, i1 false, i32 0, i32 8, i1 false) - %output1.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperHorizontal_WrapperVertical.node, i8* %WrapperSquareRoot.node, i1 false, i32 1, i32 9, i1 false) - ret %emptyStruct.24 undef -} - -; Function Attrs: nounwind uwtable -define void @_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #2 { -entry: - %ref.tmp = alloca %"class.cv::_InputArray", align 8 - %ref.tmp2 = alloca %"class.cv::_OutputArray", align 8 - %ref.tmp3 = alloca %"class.cv::_OutputArray", align 8 - %0 = bitcast %"class.cv::VideoCapture"* %VC to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** - %vtable = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %0, align 8, !tbaa !12 - %vfn = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable, i64 8 - %1 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn, align 8 - %call = call %"class.cv::VideoCapture"* %1(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #1 - %flags.i = getelementptr inbounds %"class.cv::Mat"* %F, i64 0, i32 0 - %2 = load i32* %flags.i, align 4, !tbaa !9 - %shr2.i = and i32 %2, 4088 - %cmp = icmp eq i32 %shr2.i, 16 - br i1 %cmp, label %if.then, label %entry.if.end_crit_edge - -entry.if.end_crit_edge: ; preds = %entry - %.pre = bitcast %"class.cv::Mat"* %F to i8* - br label %if.end - -if.then: ; preds = %entry - %width.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 0 - store i32 0, i32* %width.i.i.i.i, align 8, !tbaa !9 - %height.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 1 - store i32 0, i32* %height.i.i.i.i, align 4, !tbaa !9 - %3 = bitcast %"class.cv::Mat"* %F to i8* - %flags.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 0 - store i32 16842752, i32* %flags.i.i.i, align 8, !tbaa !9 - %obj.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 1 - store i8* %3, i8** %obj.i.i.i, align 8, !tbaa !5 - %flags.i.i.i.i9 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 0 - %obj.i.i.i.i10 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 1 - %4 = bitcast i8** %obj.i.i.i.i10 to i8* - call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i9, align 8, !tbaa !9 - store i8* %3, i8** %obj.i.i.i.i10, align 8, !tbaa !5 - call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp, %"class.cv::_OutputArray"* %ref.tmp2, i32 6, i32 0) #1 - br label %if.end - -if.end: ; preds = %if.then, %entry.if.end_crit_edge - %.pre-phi = phi i8* [ %.pre, %entry.if.end_crit_edge ], [ %3, %if.then ] - %flags.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 0 - %obj.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 1 - %5 = bitcast i8** %obj.i.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %5, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i, align 8, !tbaa !9 - store i8* %.pre-phi, i8** %obj.i.i.i.i, align 8, !tbaa !5 - call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %F, %"class.cv::_OutputArray"* %ref.tmp3, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1 - ret void -} - -declare void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"*, %"class.cv::_OutputArray"*, i32, i32) #0 - -declare void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"*, %"class.cv::_OutputArray"*, i32, double, double) #0 - -; Function Attrs: nounwind uwtable -define i32 @main(i32 %argc, i8** %argv) #2 { -entry: - %ref.tmp.i314 = alloca %"class.cv::_InputArray", align 8 - %ref.tmp2.i315 = alloca %"class.cv::_OutputArray", align 8 - %ref.tmp3.i316 = alloca %"class.cv::_OutputArray", align 8 - %sz.i.i.i = alloca [2 x i32], align 4 - %ref.tmp.i = alloca %"class.cv::_InputArray", align 8 - %ref.tmp2.i = alloca %"class.cv::_OutputArray", align 8 - %ref.tmp3.i = alloca %"class.cv::_OutputArray", align 8 - %argc.addr = alloca i32, align 4 - %timers = alloca %struct.pb_TimerSet, align 8 - %cap = alloca %"class.cv::VideoCapture", align 8 - %ref.tmp = alloca %"class.cv::String", align 8 - %ref.tmp24 = alloca %"class.cv::String", align 8 - %ref.tmp25 = alloca %"class.cv::String", align 8 - %ref.tmp26 = alloca %"class.cv::String", align 8 - %ref.tmp27 = alloca %"class.cv::String", align 8 - %src = alloca %"class.cv::Mat", align 8 - %Gx = alloca %"class.cv::Mat", align 8 - %Gy = alloca %"class.cv::Mat", align 8 - %G = alloca %"class.cv::Mat", align 8 - %ref.tmp36 = alloca %"class.cv::Mat", align 8 - %ref.tmp42 = alloca %"class.cv::Mat", align 8 - %ref.tmp48 = alloca %"class.cv::Mat", align 8 - %Sx = alloca [9 x float], align 16 - %Sy = alloca [9 x float], align 16 - %in = alloca %"class.cv::Mat", align 8 - %out = alloca %"class.cv::Mat", align 8 - %ref.tmp67 = alloca %"class.cv::VideoCapture", align 8 - %ref.tmp68 = alloca %"class.cv::String", align 8 - store i32 %argc, i32* %argc.addr, align 4, !tbaa !9 - %0 = bitcast %struct.pb_TimerSet* %timers to i8* - call void @llvm.lifetime.start(i64 800, i8* %0) #1 - %call1.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([13 x i8]* @.str4, i64 0, i64 0), i64 12) #1 - %call1.i128 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([10 x i8]* @.str5, i64 0, i64 0), i64 9) #1 - %call1.i130 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %call3 = call %struct.pb_Parameters* @pb_ReadParameters(i32* %argc.addr, i8** %argv) #1 - %inpFiles = getelementptr inbounds %struct.pb_Parameters* %call3, i64 0, i32 1 - %1 = load i8*** %inpFiles, align 8, !tbaa !5 - %2 = load i8** %1, align 8, !tbaa !5 - %cmp = icmp eq i8* %2, null - br i1 %cmp, label %if.then, label %lor.lhs.false - -lor.lhs.false: ; preds = %entry - %arrayidx5 = getelementptr inbounds i8** %1, i64 1 - %3 = load i8** %arrayidx5, align 8, !tbaa !5 - %cmp6 = icmp eq i8* %3, null - br i1 %cmp6, label %if.end, label %if.then - -if.then: ; preds = %lor.lhs.false, %entry - %4 = load %struct._IO_FILE** @stderr, align 8, !tbaa !5 - %5 = call i64 @fwrite(i8* getelementptr inbounds ([32 x i8]* @.str7, i64 0, i64 0), i64 31, i64 1, %struct._IO_FILE* %4) - call void @exit(i32 -1) #9 - unreachable - -if.end: ; preds = %lor.lhs.false - %call1.i132 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([21 x i8]* @.str8, i64 0, i64 0), i64 20) #1 - %6 = load i8*** %inpFiles, align 8, !tbaa !5 - %7 = load i8** %6, align 8, !tbaa !5 - %tobool.i = icmp eq i8* %7, null - br i1 %tobool.i, label %if.then.i, label %if.else.i - -if.then.i: ; preds = %if.end - %vtable.i = load i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !12 - %vbase.offset.ptr.i = getelementptr i8* %vtable.i, i64 -24 - %8 = bitcast i8* %vbase.offset.ptr.i to i64* - %vbase.offset.i = load i64* %8, align 8 - %add.ptr.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i - %9 = bitcast i8* %add.ptr.i to %"class.std::basic_ios"* - %add.ptr.sum.i = add i64 %vbase.offset.i, 32 - %_M_streambuf_state.i.i.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %add.ptr.sum.i - %10 = bitcast i8* %_M_streambuf_state.i.i.i to i32* - %11 = load i32* %10, align 4, !tbaa !13 - %or.i.i.i = or i32 %11, 1 - call void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"* %9, i32 %or.i.i.i) #1 - br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - -if.else.i: ; preds = %if.end - %call.i.i133 = call i64 @strlen(i8* %7) #1 - %call1.i134 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* %7, i64 %call.i.i133) #1 - br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - -_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit: ; preds = %if.else.i, %if.then.i - %call1.i136 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %12 = bitcast %"class.cv::VideoCapture"* %cap to i8* - call void @llvm.lifetime.start(i64 40, i8* %12) #1 - %13 = load i8*** %inpFiles, align 8, !tbaa !5 - %14 = load i8** %13, align 8, !tbaa !5 - %tobool.i.i = icmp eq i8* %14, null - %15 = bitcast %"class.cv::String"* %ref.tmp to i8* - call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false) #1 - br i1 %tobool.i.i, label %_ZN2cv6StringC1EPKc.exit, label %if.end.i.i - -if.end.i.i: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - %call.i.i138 = call i64 @strlen(i8* %14) #8 - %call2.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp, i64 %call.i.i138) #1 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i, i8* %14, i64 %call.i.i138, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1EPKc.exit - -_ZN2cv6StringC1EPKc.exit: ; preds = %if.end.i.i, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %cap, %"class.cv::String"* %ref.tmp) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp) #1 - %call15 = call zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"* %cap) #1 - br i1 %call15, label %if.end19, label %if.then16 - -if.then16: ; preds = %_ZN2cv6StringC1EPKc.exit - %call1.i140 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([26 x i8]* @.str9, i64 0, i64 0), i64 25) #1 - %call1.i143 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - br label %cleanup - -if.end19: ; preds = %_ZN2cv6StringC1EPKc.exit - %call20 = call double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"* %cap, i32 7) #1 - %conv = fptosi double %call20 to i32 - %call1.i146 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([20 x i8]* @.str10, i64 0, i64 0), i64 19) #1 - %call22 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %conv) #1 - %call1.i149 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call22, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %16 = bitcast %"class.cv::String"* %ref.tmp24 to i8* - call void @llvm.memset.p0i8.i64(i8* %16, i8 0, i64 16, i32 8, i1 false) #1 - %17 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i = getelementptr inbounds i8* %17, i64 -24 - %_M_length.i.i.i.i = bitcast i8* %arrayidx.i.i.i.i.i to i64* - %18 = load i64* %_M_length.i.i.i.i, align 8, !tbaa !10 - %cmp.i.i.i = icmp eq i64 %18, 0 - br i1 %cmp.i.i.i, label %_ZN2cv6StringC1ERKSs.exit, label %if.then.i.i - -if.then.i.i: ; preds = %if.end19 - %call3.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp24, i64 %18) #1 - %19 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i, i8* %19, i64 %18, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit - -_ZN2cv6StringC1ERKSs.exit: ; preds = %if.then.i.i, %if.end19 - call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp24, i32 1) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp24) #1 - %20 = bitcast %"class.cv::String"* %ref.tmp25 to i8* - call void @llvm.memset.p0i8.i64(i8* %20, i8 0, i64 16, i32 8, i1 false) #1 - %21 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i151 = getelementptr inbounds i8* %21, i64 -24 - %_M_length.i.i.i.i152 = bitcast i8* %arrayidx.i.i.i.i.i151 to i64* - %22 = load i64* %_M_length.i.i.i.i152, align 8, !tbaa !10 - %cmp.i.i.i153 = icmp eq i64 %22, 0 - br i1 %cmp.i.i.i153, label %_ZN2cv6StringC1ERKSs.exit156, label %if.then.i.i155 - -if.then.i.i155: ; preds = %_ZN2cv6StringC1ERKSs.exit - %call3.i.i154 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp25, i64 %22) #1 - %23 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i154, i8* %23, i64 %22, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit156 - -_ZN2cv6StringC1ERKSs.exit156: ; preds = %if.then.i.i155, %_ZN2cv6StringC1ERKSs.exit - call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp25, i32 1) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp25) #1 - %24 = bitcast %"class.cv::String"* %ref.tmp26 to i8* - call void @llvm.memset.p0i8.i64(i8* %24, i8 0, i64 16, i32 8, i1 false) #1 - %25 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i157 = getelementptr inbounds i8* %25, i64 -24 - %_M_length.i.i.i.i158 = bitcast i8* %arrayidx.i.i.i.i.i157 to i64* - %26 = load i64* %_M_length.i.i.i.i158, align 8, !tbaa !10 - %cmp.i.i.i159 = icmp eq i64 %26, 0 - br i1 %cmp.i.i.i159, label %_ZN2cv6StringC1ERKSs.exit162, label %if.then.i.i161 - -if.then.i.i161: ; preds = %_ZN2cv6StringC1ERKSs.exit156 - %call3.i.i160 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp26, i64 %26) #1 - %27 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i160, i8* %27, i64 %26, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit162 - -_ZN2cv6StringC1ERKSs.exit162: ; preds = %if.then.i.i161, %_ZN2cv6StringC1ERKSs.exit156 - call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp26, i32 0, i32 0) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp26) #1 - %28 = bitcast %"class.cv::String"* %ref.tmp27 to i8* - call void @llvm.memset.p0i8.i64(i8* %28, i8 0, i64 16, i32 8, i1 false) #1 - %29 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i163 = getelementptr inbounds i8* %29, i64 -24 - %_M_length.i.i.i.i164 = bitcast i8* %arrayidx.i.i.i.i.i163 to i64* - %30 = load i64* %_M_length.i.i.i.i164, align 8, !tbaa !10 - %cmp.i.i.i165 = icmp eq i64 %30, 0 - br i1 %cmp.i.i.i165, label %_ZN2cv6StringC1ERKSs.exit168, label %if.then.i.i167 - -if.then.i.i167: ; preds = %_ZN2cv6StringC1ERKSs.exit162 - %call3.i.i166 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp27, i64 %30) #1 - %31 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i166, i8* %31, i64 %30, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit168 - -_ZN2cv6StringC1ERKSs.exit168: ; preds = %if.then.i.i167, %_ZN2cv6StringC1ERKSs.exit162 - call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp27, i32 0, i32 540) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp27) #1 - %32 = bitcast %"class.cv::Mat"* %src to i8* - call void @llvm.lifetime.start(i64 96, i8* %32) #1 - %flags.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i, align 8, !tbaa !9 - %dims.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 1 - %rows.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 2 - %p.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 10, i32 0 - %33 = bitcast i32* %dims.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %33, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i, i32** %p.i.i.i.i, align 8, !tbaa !5 - %arraydecay.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i, i64** %p.i.i3.i.i, align 8, !tbaa !5 - %34 = bitcast i64* %arraydecay.i.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %34, i8 0, i64 16, i32 8, i1 false) #1 - %35 = bitcast %"class.cv::Mat"* %Gx to i8* - call void @llvm.lifetime.start(i64 96, i8* %35) #1 - %flags.i.i169 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i169, align 8, !tbaa !9 - %dims.i.i170 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 1 - %rows.i.i171 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 2 - %p.i.i.i.i172 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 10, i32 0 - %36 = bitcast i32* %dims.i.i170 to i8* - call void @llvm.memset.p0i8.i64(i8* %36, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i171, i32** %p.i.i.i.i172, align 8, !tbaa !5 - %arraydecay.i.i.i.i173 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i174 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i173, i64** %p.i.i3.i.i174, align 8, !tbaa !5 - %37 = bitcast i64* %arraydecay.i.i.i.i173 to i8* - call void @llvm.memset.p0i8.i64(i8* %37, i8 0, i64 16, i32 8, i1 false) #1 - %38 = bitcast %"class.cv::Mat"* %Gy to i8* - call void @llvm.lifetime.start(i64 96, i8* %38) #1 - %flags.i.i175 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i175, align 8, !tbaa !9 - %dims.i.i176 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 1 - %rows.i.i177 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 2 - %p.i.i.i.i178 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 10, i32 0 - %39 = bitcast i32* %dims.i.i176 to i8* - call void @llvm.memset.p0i8.i64(i8* %39, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i177, i32** %p.i.i.i.i178, align 8, !tbaa !5 - %arraydecay.i.i.i.i179 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i180 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i179, i64** %p.i.i3.i.i180, align 8, !tbaa !5 - %40 = bitcast i64* %arraydecay.i.i.i.i179 to i8* - call void @llvm.memset.p0i8.i64(i8* %40, i8 0, i64 16, i32 8, i1 false) #1 - %41 = bitcast %"class.cv::Mat"* %G to i8* - call void @llvm.lifetime.start(i64 96, i8* %41) #1 - %flags.i.i181 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i181, align 8, !tbaa !9 - %dims.i.i182 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 1 - %rows.i.i183 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 2 - %p.i.i.i.i184 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 10, i32 0 - %42 = bitcast i32* %dims.i.i182 to i8* - call void @llvm.memset.p0i8.i64(i8* %42, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i183, i32** %p.i.i.i.i184, align 8, !tbaa !5 - %arraydecay.i.i.i.i185 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i186 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i185, i64** %p.i.i3.i.i186, align 8, !tbaa !5 - %43 = bitcast i64* %arraydecay.i.i.i.i185 to i8* - call void @llvm.memset.p0i8.i64(i8* %43, i8 0, i64 16, i32 8, i1 false) #1 - %44 = bitcast %"class.cv::_InputArray"* %ref.tmp.i to i8* - call void @llvm.lifetime.start(i64 24, i8* %44) #1 - %45 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i to i8* - call void @llvm.lifetime.start(i64 24, i8* %45) #1 - %46 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i to i8* - call void @llvm.lifetime.start(i64 24, i8* %46) #1 - %47 = bitcast %"class.cv::VideoCapture"* %cap to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** - %vtable.i187 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12 - %vfn.i = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i187, i64 8 - %48 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i, align 8 - %call.i = call %"class.cv::VideoCapture"* %48(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1 - %49 = load i32* %flags.i.i, align 8, !tbaa !9 - %shr2.i.i = and i32 %49, 4088 - %cmp.i = icmp eq i32 %shr2.i.i, 16 - br i1 %cmp.i, label %if.then.i189, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - -if.then.i189: ; preds = %_ZN2cv6StringC1ERKSs.exit168 - %width.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 0 - store i32 0, i32* %width.i.i.i.i.i, align 8, !tbaa !9 - %height.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 1 - store i32 0, i32* %height.i.i.i.i.i, align 4, !tbaa !9 - %flags.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 0 - store i32 16842752, i32* %flags.i.i.i.i, align 8, !tbaa !9 - %obj.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 1 - store i8* %32, i8** %obj.i.i.i.i, align 8, !tbaa !5 - %flags.i.i.i.i9.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 0 - %obj.i.i.i.i10.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 1 - %50 = bitcast i8** %obj.i.i.i.i10.i to i8* - call void @llvm.memset.p0i8.i64(i8* %50, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i9.i, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i10.i, align 8, !tbaa !5 - call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i, %"class.cv::_OutputArray"* %ref.tmp2.i, i32 6, i32 0) #1 - br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - -_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit: ; preds = %if.then.i189, %_ZN2cv6StringC1ERKSs.exit168 - %flags.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 0 - %obj.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 1 - %51 = bitcast i8** %obj.i.i.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %51, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i.i, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i.i, align 8, !tbaa !5 - call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1 - call void @llvm.lifetime.end(i64 24, i8* %44) #1 - call void @llvm.lifetime.end(i64 24, i8* %45) #1 - call void @llvm.lifetime.end(i64 24, i8* %46) #1 - %call1.i191 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([19 x i8]* @.str11, i64 0, i64 0), i64 18) #1 - %52 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %arrayidx.i = getelementptr inbounds i32* %52, i64 1 - %53 = load i32* %arrayidx.i, align 4, !tbaa !9 - %54 = load i32* %52, align 4, !tbaa !9 - %call1.i.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str16, i64 0, i64 0), i64 1) #1 - %call1.i193 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %53) #1 - %call1.i7.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call1.i193, i8* getelementptr inbounds ([4 x i8]* @.str17, i64 0, i64 0), i64 3) #1 - %call3.i = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call1.i193, i32 %54) #1 - %call1.i9.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str18, i64 0, i64 0), i64 1) #1 - %call1.i195 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %55 = load i32* %flags.i.i, align 8, !tbaa !9 - %and.i = and i32 %55, 16384 - %cmp.i197 = icmp eq i32 %and.i, 0 - br i1 %cmp.i197, label %if.then33, label %if.end35 - -if.then33: ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - %call1.i199 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([50 x i8]* @.str12, i64 0, i64 0), i64 49) #1 - call void @exit(i32 -1) #9 - unreachable - -if.end35: ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - %56 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %57 = load i32* %56, align 4, !tbaa !9 - %arrayidx.i203 = getelementptr inbounds i32* %56, i64 1 - %58 = load i32* %arrayidx.i203, align 4, !tbaa !9 - %flags.i.i204 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i204, align 8, !tbaa !9 - %dims.i.i205 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 1 - %rows.i.i206 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 2 - %p.i.i.i.i207 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 10, i32 0 - %59 = bitcast i32* %dims.i.i205 to i8* - call void @llvm.memset.p0i8.i64(i8* %59, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i206, i32** %p.i.i.i.i207, align 8, !tbaa !5 - %arraydecay.i.i.i.i208 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i209 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i208, i64** %p.i.i3.i.i209, align 8, !tbaa !5 - %60 = bitcast i64* %arraydecay.i.i.i.i208 to i8* - call void @llvm.memset.p0i8.i64(i8* %60, i8 0, i64 16, i32 8, i1 false) #1 - %61 = bitcast [2 x i32]* %sz.i.i.i to i8* - call void @llvm.lifetime.start(i64 8, i8* %61) #1 - %arrayinit.begin.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 0 - store i32 %57, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9 - %arrayinit.element.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 1 - store i32 %58, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9 - call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp36, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1 - call void @llvm.lifetime.end(i64 8, i8* %61) #1 - %call41 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %Gx, %"class.cv::Mat"* %ref.tmp36) - %u.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 9 - %62 = load %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5 - %tobool.i.i.i = icmp eq %"struct.cv::UMatData"* %62, null - br i1 %tobool.i.i.i, label %if.end.i.i.i, label %land.lhs.true.i.i.i - -land.lhs.true.i.i.i: ; preds = %if.end35 - %refcount.i.i.i = getelementptr inbounds %"struct.cv::UMatData"* %62, i64 0, i32 3 - %63 = atomicrmw add i32* %refcount.i.i.i, i32 -1 acq_rel - %cmp.i.i.i210 = icmp eq i32 %63, 1 - br i1 %cmp.i.i.i210, label %if.then.i.i.i, label %if.end.i.i.i - -if.then.i.i.i: ; preds = %land.lhs.true.i.i.i - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp36) #1 - br label %if.end.i.i.i - -if.end.i.i.i: ; preds = %if.then.i.i.i, %land.lhs.true.i.i.i, %if.end35 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5 - %data.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 4 - %64 = bitcast i8** %data.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %64, i8 0, i64 32, i32 8, i1 false) #1 - %65 = load i32* %dims.i.i205, align 4, !tbaa !9 - %cmp47.i.i.i = icmp sgt i32 %65, 0 - br i1 %cmp47.i.i.i, label %for.body.lr.ph.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i - -for.body.lr.ph.i.i.i: ; preds = %if.end.i.i.i - %66 = load i32** %p.i.i.i.i207, align 8, !tbaa !5 - br label %for.body.i.i.i - -for.body.i.i.i: ; preds = %for.body.i.i.i, %for.body.lr.ph.i.i.i - %indvars.iv.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i ], [ %indvars.iv.next.i.i.i, %for.body.i.i.i ] - %arrayidx.i.i.i = getelementptr inbounds i32* %66, i64 %indvars.iv.i.i.i - store i32 0, i32* %arrayidx.i.i.i, align 4, !tbaa !9 - %indvars.iv.next.i.i.i = add i64 %indvars.iv.i.i.i, 1 - %67 = load i32* %dims.i.i205, align 4, !tbaa !9 - %68 = trunc i64 %indvars.iv.next.i.i.i to i32 - %cmp4.i.i.i = icmp slt i32 %68, %67 - br i1 %cmp4.i.i.i, label %for.body.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i - -_ZN2cv3Mat7releaseEv.exit.i.i: ; preds = %for.body.i.i.i, %if.end.i.i.i - %69 = load i64** %p.i.i3.i.i209, align 8, !tbaa !5 - %cmp.i.i = icmp eq i64* %69, %arraydecay.i.i.i.i208 - br i1 %cmp.i.i, label %_ZN2cv3MatD1Ev.exit, label %if.then.i.i211 - -if.then.i.i211: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i - %70 = bitcast i64* %69 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %70) #1 - br label %_ZN2cv3MatD1Ev.exit - -_ZN2cv3MatD1Ev.exit: ; preds = %if.then.i.i211, %_ZN2cv3Mat7releaseEv.exit.i.i - %71 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %72 = load i32* %71, align 4, !tbaa !9 - %arrayidx.i214 = getelementptr inbounds i32* %71, i64 1 - %73 = load i32* %arrayidx.i214, align 4, !tbaa !9 - %flags.i.i216 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i216, align 8, !tbaa !9 - %dims.i.i217 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 1 - %rows.i.i218 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 2 - %p.i.i.i.i219 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 10, i32 0 - %74 = bitcast i32* %dims.i.i217 to i8* - call void @llvm.memset.p0i8.i64(i8* %74, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i218, i32** %p.i.i.i.i219, align 8, !tbaa !5 - %arraydecay.i.i.i.i220 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i221 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i220, i64** %p.i.i3.i.i221, align 8, !tbaa !5 - %75 = bitcast i64* %arraydecay.i.i.i.i220 to i8* - call void @llvm.memset.p0i8.i64(i8* %75, i8 0, i64 16, i32 8, i1 false) #1 - call void @llvm.lifetime.start(i64 8, i8* %61) #1 - store i32 %72, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9 - store i32 %73, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9 - call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp42, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1 - call void @llvm.lifetime.end(i64 8, i8* %61) #1 - %call47 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %Gy, %"class.cv::Mat"* %ref.tmp42) - %u.i.i.i224 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 9 - %76 = load %"struct.cv::UMatData"** %u.i.i.i224, align 8, !tbaa !5 - %tobool.i.i.i225 = icmp eq %"struct.cv::UMatData"* %76, null - br i1 %tobool.i.i.i225, label %if.end.i.i.i233, label %land.lhs.true.i.i.i228 - -land.lhs.true.i.i.i228: ; preds = %_ZN2cv3MatD1Ev.exit - %refcount.i.i.i226 = getelementptr inbounds %"struct.cv::UMatData"* %76, i64 0, i32 3 - %77 = atomicrmw add i32* %refcount.i.i.i226, i32 -1 acq_rel - %cmp.i.i.i227 = icmp eq i32 %77, 1 - br i1 %cmp.i.i.i227, label %if.then.i.i.i229, label %if.end.i.i.i233 - -if.then.i.i.i229: ; preds = %land.lhs.true.i.i.i228 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp42) #1 - br label %if.end.i.i.i233 - -if.end.i.i.i233: ; preds = %if.then.i.i.i229, %land.lhs.true.i.i.i228, %_ZN2cv3MatD1Ev.exit - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i224, align 8, !tbaa !5 - %data.i.i.i230 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 4 - %78 = bitcast i8** %data.i.i.i230 to i8* - call void @llvm.memset.p0i8.i64(i8* %78, i8 0, i64 32, i32 8, i1 false) #1 - %79 = load i32* %dims.i.i217, align 4, !tbaa !9 - %cmp47.i.i.i232 = icmp sgt i32 %79, 0 - br i1 %cmp47.i.i.i232, label %for.body.lr.ph.i.i.i235, label %_ZN2cv3Mat7releaseEv.exit.i.i244 - -for.body.lr.ph.i.i.i235: ; preds = %if.end.i.i.i233 - %80 = load i32** %p.i.i.i.i219, align 8, !tbaa !5 - br label %for.body.i.i.i240 - -for.body.i.i.i240: ; preds = %for.body.i.i.i240, %for.body.lr.ph.i.i.i235 - %indvars.iv.i.i.i236 = phi i64 [ 0, %for.body.lr.ph.i.i.i235 ], [ %indvars.iv.next.i.i.i238, %for.body.i.i.i240 ] - %arrayidx.i.i.i237 = getelementptr inbounds i32* %80, i64 %indvars.iv.i.i.i236 - store i32 0, i32* %arrayidx.i.i.i237, align 4, !tbaa !9 - %indvars.iv.next.i.i.i238 = add i64 %indvars.iv.i.i.i236, 1 - %81 = load i32* %dims.i.i217, align 4, !tbaa !9 - %82 = trunc i64 %indvars.iv.next.i.i.i238 to i32 - %cmp4.i.i.i239 = icmp slt i32 %82, %81 - br i1 %cmp4.i.i.i239, label %for.body.i.i.i240, label %_ZN2cv3Mat7releaseEv.exit.i.i244 - -_ZN2cv3Mat7releaseEv.exit.i.i244: ; preds = %for.body.i.i.i240, %if.end.i.i.i233 - %83 = load i64** %p.i.i3.i.i221, align 8, !tbaa !5 - %cmp.i.i243 = icmp eq i64* %83, %arraydecay.i.i.i.i220 - br i1 %cmp.i.i243, label %_ZN2cv3MatD1Ev.exit246, label %if.then.i.i245 - -if.then.i.i245: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i244 - %84 = bitcast i64* %83 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %84) #1 - br label %_ZN2cv3MatD1Ev.exit246 - -_ZN2cv3MatD1Ev.exit246: ; preds = %if.then.i.i245, %_ZN2cv3Mat7releaseEv.exit.i.i244 - %85 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %86 = load i32* %85, align 4, !tbaa !9 - %arrayidx.i249 = getelementptr inbounds i32* %85, i64 1 - %87 = load i32* %arrayidx.i249, align 4, !tbaa !9 - %flags.i.i251 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i251, align 8, !tbaa !9 - %dims.i.i252 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 1 - %rows.i.i253 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 2 - %p.i.i.i.i254 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 10, i32 0 - %88 = bitcast i32* %dims.i.i252 to i8* - call void @llvm.memset.p0i8.i64(i8* %88, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i253, i32** %p.i.i.i.i254, align 8, !tbaa !5 - %arraydecay.i.i.i.i255 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i256 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i255, i64** %p.i.i3.i.i256, align 8, !tbaa !5 - %89 = bitcast i64* %arraydecay.i.i.i.i255 to i8* - call void @llvm.memset.p0i8.i64(i8* %89, i8 0, i64 16, i32 8, i1 false) #1 - call void @llvm.lifetime.start(i64 8, i8* %61) #1 - store i32 %86, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9 - store i32 %87, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9 - call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp48, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1 - call void @llvm.lifetime.end(i64 8, i8* %61) #1 - %call53 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %G, %"class.cv::Mat"* %ref.tmp48) - %u.i.i.i259 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 9 - %90 = load %"struct.cv::UMatData"** %u.i.i.i259, align 8, !tbaa !5 - %tobool.i.i.i260 = icmp eq %"struct.cv::UMatData"* %90, null - br i1 %tobool.i.i.i260, label %if.end.i.i.i268, label %land.lhs.true.i.i.i263 - -land.lhs.true.i.i.i263: ; preds = %_ZN2cv3MatD1Ev.exit246 - %refcount.i.i.i261 = getelementptr inbounds %"struct.cv::UMatData"* %90, i64 0, i32 3 - %91 = atomicrmw add i32* %refcount.i.i.i261, i32 -1 acq_rel - %cmp.i.i.i262 = icmp eq i32 %91, 1 - br i1 %cmp.i.i.i262, label %if.then.i.i.i264, label %if.end.i.i.i268 - -if.then.i.i.i264: ; preds = %land.lhs.true.i.i.i263 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp48) #1 - br label %if.end.i.i.i268 - -if.end.i.i.i268: ; preds = %if.then.i.i.i264, %land.lhs.true.i.i.i263, %_ZN2cv3MatD1Ev.exit246 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i259, align 8, !tbaa !5 - %data.i.i.i265 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 4 - %92 = bitcast i8** %data.i.i.i265 to i8* - call void @llvm.memset.p0i8.i64(i8* %92, i8 0, i64 32, i32 8, i1 false) #1 - %93 = load i32* %dims.i.i252, align 4, !tbaa !9 - %cmp47.i.i.i267 = icmp sgt i32 %93, 0 - br i1 %cmp47.i.i.i267, label %for.body.lr.ph.i.i.i270, label %_ZN2cv3Mat7releaseEv.exit.i.i279 - -for.body.lr.ph.i.i.i270: ; preds = %if.end.i.i.i268 - %94 = load i32** %p.i.i.i.i254, align 8, !tbaa !5 - br label %for.body.i.i.i275 - -for.body.i.i.i275: ; preds = %for.body.i.i.i275, %for.body.lr.ph.i.i.i270 - %indvars.iv.i.i.i271 = phi i64 [ 0, %for.body.lr.ph.i.i.i270 ], [ %indvars.iv.next.i.i.i273, %for.body.i.i.i275 ] - %arrayidx.i.i.i272 = getelementptr inbounds i32* %94, i64 %indvars.iv.i.i.i271 - store i32 0, i32* %arrayidx.i.i.i272, align 4, !tbaa !9 - %indvars.iv.next.i.i.i273 = add i64 %indvars.iv.i.i.i271, 1 - %95 = load i32* %dims.i.i252, align 4, !tbaa !9 - %96 = trunc i64 %indvars.iv.next.i.i.i273 to i32 - %cmp4.i.i.i274 = icmp slt i32 %96, %95 - br i1 %cmp4.i.i.i274, label %for.body.i.i.i275, label %_ZN2cv3Mat7releaseEv.exit.i.i279 - -_ZN2cv3Mat7releaseEv.exit.i.i279: ; preds = %for.body.i.i.i275, %if.end.i.i.i268 - %97 = load i64** %p.i.i3.i.i256, align 8, !tbaa !5 - %cmp.i.i278 = icmp eq i64* %97, %arraydecay.i.i.i.i255 - br i1 %cmp.i.i278, label %_ZN2cv3MatD1Ev.exit281, label %if.then.i.i280 - -if.then.i.i280: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i279 - %98 = bitcast i64* %97 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %98) #1 - br label %_ZN2cv3MatD1Ev.exit281 - -_ZN2cv3MatD1Ev.exit281: ; preds = %if.then.i.i280, %_ZN2cv3Mat7releaseEv.exit.i.i279 - %99 = load i32* %flags.i.i, align 8, !tbaa !9 - %and.i283 = and i32 %99, 16384 - %cmp.i284 = icmp eq i32 %and.i283, 0 - br i1 %cmp.i284, label %cond.false, label %land.lhs.true - -land.lhs.true: ; preds = %_ZN2cv3MatD1Ev.exit281 - %100 = load i32* %flags.i.i169, align 8, !tbaa !9 - %and.i286 = and i32 %100, 16384 - %cmp.i287 = icmp eq i32 %and.i286, 0 - br i1 %cmp.i287, label %cond.false, label %land.lhs.true56 - -land.lhs.true56: ; preds = %land.lhs.true - %101 = load i32* %flags.i.i175, align 8, !tbaa !9 - %and.i289 = and i32 %101, 16384 - %cmp.i290 = icmp eq i32 %and.i289, 0 - br i1 %cmp.i290, label %cond.false, label %land.lhs.true58 - -land.lhs.true58: ; preds = %land.lhs.true56 - %102 = load i32* %flags.i.i181, align 8, !tbaa !9 - %and.i292 = and i32 %102, 16384 - %cmp.i293 = icmp eq i32 %and.i292, 0 - br i1 %cmp.i293, label %cond.false, label %cond.end - -cond.false: ; preds = %land.lhs.true58, %land.lhs.true56, %land.lhs.true, %_ZN2cv3MatD1Ev.exit281 - call void @__assert_fail(i8* getelementptr inbounds ([81 x i8]* @.str13, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8]* @.str14, i64 0, i64 0), i32 447, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #9 - unreachable - -cond.end: ; preds = %land.lhs.true58 - call void @pb_InitializeTimerSet(%struct.pb_TimerSet* %timers) #1 - call void @llvm.hpvm.init() - %103 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %104 = load i32* %103, align 4, !tbaa !9 - %arrayidx.i296 = getelementptr inbounds i32* %103, i64 1 - %105 = load i32* %arrayidx.i296, align 4, !tbaa !9 - %mul = mul nsw i32 %105, %104 - %conv64 = sext i32 %mul to i64 - %mul65 = shl nsw i64 %conv64, 2 - %106 = bitcast [9 x float]* %Sx to i8* - call void @llvm.lifetime.start(i64 36, i8* %106) #1 - call void @llvm.memset.p0i8.i64(i8* %106, i8 0, i64 32, i32 16, i1 false) - %107 = getelementptr [9 x float]* %Sx, i64 0, i64 0 - store float -1.000000e+00, float* %107, align 16 - %108 = getelementptr [9 x float]* %Sx, i64 0, i64 2 - store float 1.000000e+00, float* %108, align 8 - %109 = getelementptr [9 x float]* %Sx, i64 0, i64 3 - store float -2.000000e+00, float* %109, align 4 - %110 = getelementptr [9 x float]* %Sx, i64 0, i64 5 - store float 2.000000e+00, float* %110, align 4 - %111 = getelementptr [9 x float]* %Sx, i64 0, i64 6 - store float -1.000000e+00, float* %111, align 8 - %112 = getelementptr [9 x float]* %Sx, i64 0, i64 8 - store float 1.000000e+00, float* %112, align 16 - %113 = bitcast [9 x float]* %Sy to i8* - call void @llvm.lifetime.start(i64 36, i8* %113) #1 - call void @llvm.memset.p0i8.i64(i8* %113, i8 0, i64 32, i32 16, i1 false) - %114 = getelementptr [9 x float]* %Sy, i64 0, i64 0 - store float -1.000000e+00, float* %114, align 16 - %115 = getelementptr [9 x float]* %Sy, i64 0, i64 1 - store float -2.000000e+00, float* %115, align 4 - %116 = getelementptr [9 x float]* %Sy, i64 0, i64 2 - store float -1.000000e+00, float* %116, align 8 - %117 = getelementptr [9 x float]* %Sy, i64 0, i64 6 - store float 1.000000e+00, float* %117, align 8 - %118 = getelementptr [9 x float]* %Sy, i64 0, i64 7 - store float 2.000000e+00, float* %118, align 4 - %119 = getelementptr [9 x float]* %Sy, i64 0, i64 8 - store float 1.000000e+00, float* %119, align 16 - %120 = bitcast %"class.cv::Mat"* %in to i8* - call void @llvm.lifetime.start(i64 96, i8* %120) #1 - %flags.i.i297 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i297, align 8, !tbaa !9 - %dims.i.i298 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 1 - %rows.i.i299 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 2 - %p.i.i.i.i300 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 10, i32 0 - %121 = bitcast i32* %dims.i.i298 to i8* - call void @llvm.memset.p0i8.i64(i8* %121, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i299, i32** %p.i.i.i.i300, align 8, !tbaa !5 - %arraydecay.i.i.i.i301 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i302 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i301, i64** %p.i.i3.i.i302, align 8, !tbaa !5 - %122 = bitcast i64* %arraydecay.i.i.i.i301 to i8* - call void @llvm.memset.p0i8.i64(i8* %122, i8 0, i64 16, i32 8, i1 false) #1 - %123 = bitcast %"class.cv::Mat"* %out to i8* - call void @llvm.lifetime.start(i64 96, i8* %123) #1 - %flags.i.i303 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i303, align 8, !tbaa !9 - %dims.i.i304 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 1 - %rows.i.i305 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 2 - %p.i.i.i.i306 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 10, i32 0 - %124 = bitcast i32* %dims.i.i304 to i8* - call void @llvm.memset.p0i8.i64(i8* %124, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i305, i32** %p.i.i.i.i306, align 8, !tbaa !5 - %arraydecay.i.i.i.i307 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i308 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i307, i64** %p.i.i3.i.i308, align 8, !tbaa !5 - %125 = bitcast i64* %arraydecay.i.i.i.i307 to i8* - call void @llvm.memset.p0i8.i64(i8* %125, i8 0, i64 16, i32 8, i1 false) #1 - %call66 = call noalias i8* @malloc(i64 104) #1 - %126 = load i8*** %inpFiles, align 8, !tbaa !5 - %127 = load i8** %126, align 8, !tbaa !5 - %tobool.i.i309 = icmp eq i8* %127, null - %128 = bitcast %"class.cv::String"* %ref.tmp68 to i8* - call void @llvm.memset.p0i8.i64(i8* %128, i8 0, i64 16, i32 8, i1 false) #1 - br i1 %tobool.i.i309, label %_ZN2cv6StringC1EPKc.exit313, label %if.end.i.i312 - -if.end.i.i312: ; preds = %cond.end - %call.i.i310 = call i64 @strlen(i8* %127) #8 - %call2.i.i311 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp68, i64 %call.i.i310) #1 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i311, i8* %127, i64 %call.i.i310, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1EPKc.exit313 - -_ZN2cv6StringC1EPKc.exit313: ; preds = %if.end.i.i312, %cond.end - call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %ref.tmp67, %"class.cv::String"* %ref.tmp68) #1 - %owner2.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 1, i32 0 - %129 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i.i, align 8, !tbaa !5 - %stored3.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 1, i32 1 - %130 = load %struct.CvCapture** %stored3.i.i.i.i, align 8, !tbaa !5 - %tobool.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %129, null - br i1 %tobool.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %_ZN2cv6StringC1EPKc.exit313 - %refCount.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %129, i64 0, i32 1 - %131 = atomicrmw add i32* %refCount.i.i.i.i.i, i32 1 acq_rel - br label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i - -_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i: ; preds = %if.then.i.i.i.i, %_ZN2cv6StringC1EPKc.exit313 - %owner2.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 0 - %132 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5 - store %"struct.cv::detail::PtrOwner"* %129, %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5 - %stored3.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 1 - store %struct.CvCapture* %130, %struct.CvCapture** %stored3.i.i.i, align 8, !tbaa !5 - %tobool.i.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %132, null - br i1 %tobool.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i, label %if.then.i.i.i.i.i - -if.then.i.i.i.i.i: ; preds = %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i - %refCount.i.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %132, i64 0, i32 1 - %133 = atomicrmw add i32* %refCount.i.i.i.i.i.i, i32 -1 acq_rel - %cmp.i.i.i.i.i.i = icmp eq i32 %133, 1 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - -if.then.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i - %134 = bitcast %"struct.cv::detail::PtrOwner"* %132 to void (%"struct.cv::detail::PtrOwner"*)*** - %vtable.i.i.i.i.i.i = load void (%"struct.cv::detail::PtrOwner"*)*** %134, align 8, !tbaa !12 - %vfn.i.i.i.i.i.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i.i, i64 2 - %135 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i.i, align 8 - call void %135(%"struct.cv::detail::PtrOwner"* %132) #1 - br label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - -_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i: ; preds = %if.then.i.i.i.i.i.i, %if.then.i.i.i.i.i, %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i - %owner2.i.i.i6.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 2, i32 0 - %136 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i6.i, align 8, !tbaa !5 - %stored3.i.i.i7.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 2, i32 1 - %137 = load %"class.cv::IVideoCapture"** %stored3.i.i.i7.i, align 8, !tbaa !5 - %tobool.i.i.i8.i = icmp eq %"struct.cv::detail::PtrOwner"* %136, null - br i1 %tobool.i.i.i8.i, label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i, label %if.then.i.i.i10.i - -if.then.i.i.i10.i: ; preds = %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - %refCount.i.i.i.i9.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %136, i64 0, i32 1 - %138 = atomicrmw add i32* %refCount.i.i.i.i9.i, i32 1 acq_rel - br label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i - -_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i: ; preds = %if.then.i.i.i10.i, %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - %owner2.i.i11.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 0 - %139 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5 - store %"struct.cv::detail::PtrOwner"* %136, %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5 - %stored3.i.i12.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 1 - store %"class.cv::IVideoCapture"* %137, %"class.cv::IVideoCapture"** %stored3.i.i12.i, align 8, !tbaa !5 - %tobool.i.i.i.i13.i = icmp eq %"struct.cv::detail::PtrOwner"* %139, null - br i1 %tobool.i.i.i.i13.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit, label %if.then.i.i.i.i16.i - -if.then.i.i.i.i16.i: ; preds = %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i - %refCount.i.i.i.i.i14.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %139, i64 0, i32 1 - %140 = atomicrmw add i32* %refCount.i.i.i.i.i14.i, i32 -1 acq_rel - %cmp.i.i.i.i.i15.i = icmp eq i32 %140, 1 - br i1 %cmp.i.i.i.i.i15.i, label %if.then.i.i.i.i.i19.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit - -if.then.i.i.i.i.i19.i: ; preds = %if.then.i.i.i.i16.i - %141 = bitcast %"struct.cv::detail::PtrOwner"* %139 to void (%"struct.cv::detail::PtrOwner"*)*** - %vtable.i.i.i.i.i17.i = load void (%"struct.cv::detail::PtrOwner"*)*** %141, align 8, !tbaa !12 - %vfn.i.i.i.i.i18.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i17.i, i64 2 - %142 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i18.i, align 8 - call void %142(%"struct.cv::detail::PtrOwner"* %139) #1 - br label %_ZN2cv12VideoCaptureaSERKS0_.exit - -_ZN2cv12VideoCaptureaSERKS0_.exit: ; preds = %if.then.i.i.i.i.i19.i, %if.then.i.i.i.i16.i, %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i - call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %ref.tmp67) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp68) #1 - %143 = bitcast %"class.cv::_InputArray"* %ref.tmp.i314 to i8* - call void @llvm.lifetime.start(i64 24, i8* %143) #1 - %144 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i315 to i8* - call void @llvm.lifetime.start(i64 24, i8* %144) #1 - %145 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i316 to i8* - call void @llvm.lifetime.start(i64 24, i8* %145) #1 - %vtable.i317 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12 - %vfn.i318 = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i317, i64 8 - %146 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i318, align 8 - %call.i319 = call %"class.cv::VideoCapture"* %146(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1 - %147 = load i32* %flags.i.i, align 8, !tbaa !9 - %shr2.i.i321 = and i32 %147, 4088 - %cmp.i322 = icmp eq i32 %shr2.i.i321, 16 - br i1 %cmp.i322, label %if.then.i331, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335 - -if.then.i331: ; preds = %_ZN2cv12VideoCaptureaSERKS0_.exit - %width.i.i.i.i.i325 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 2, i32 0 - store i32 0, i32* %width.i.i.i.i.i325, align 8, !tbaa !9 - %height.i.i.i.i.i326 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 2, i32 1 - store i32 0, i32* %height.i.i.i.i.i326, align 4, !tbaa !9 - %flags.i.i.i.i327 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 0 - store i32 16842752, i32* %flags.i.i.i.i327, align 8, !tbaa !9 - %obj.i.i.i.i328 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 1 - store i8* %32, i8** %obj.i.i.i.i328, align 8, !tbaa !5 - %flags.i.i.i.i9.i329 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i315, i64 0, i32 0, i32 0 - %obj.i.i.i.i10.i330 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i315, i64 0, i32 0, i32 1 - %148 = bitcast i8** %obj.i.i.i.i10.i330 to i8* - call void @llvm.memset.p0i8.i64(i8* %148, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i9.i329, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i10.i330, align 8, !tbaa !5 - call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i314, %"class.cv::_OutputArray"* %ref.tmp2.i315, i32 6, i32 0) #1 - br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335 - -_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335: ; preds = %if.then.i331, %_ZN2cv12VideoCaptureaSERKS0_.exit - %flags.i.i.i.i.i333 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i316, i64 0, i32 0, i32 0 - %obj.i.i.i.i.i334 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i316, i64 0, i32 0, i32 1 - %149 = bitcast i8** %obj.i.i.i.i.i334 to i8* - call void @llvm.memset.p0i8.i64(i8* %149, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i.i333, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i.i334, align 8, !tbaa !5 - call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i316, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1 - call void @llvm.lifetime.end(i64 24, i8* %143) #1 - call void @llvm.lifetime.end(i64 24, i8* %144) #1 - call void @llvm.lifetime.end(i64 24, i8* %145) #1 - %data = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 4 - %150 = load i8** %data, align 8, !tbaa !5 - %151 = bitcast i8* %150 to float* - %data73 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 4 - %152 = load i8** %data73, align 8, !tbaa !5 - %153 = bitcast i8* %152 to float* - %data74 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 4 - %154 = load i8** %data74, align 8, !tbaa !5 - %155 = bitcast i8* %154 to float* - %data75 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 4 - %156 = load i8** %data75, align 8, !tbaa !5 - %157 = bitcast i8* %156 to float* - %158 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %159 = load i32* %158, align 4, !tbaa !9 - %arrayidx.i338 = getelementptr inbounds i32* %158, i64 1 - %160 = load i32* %arrayidx.i338, align 4, !tbaa !9 - %I1.i = bitcast i8* %call66 to float** - store float* %151, float** %I1.i, align 1, !tbaa !5 - %bytesI2.i = getelementptr inbounds i8* %call66, i64 8 - %161 = bitcast i8* %bytesI2.i to i64* - store i64 %mul65, i64* %161, align 1, !tbaa !10 - %Sx3.i = getelementptr inbounds i8* %call66, i64 16 - %162 = bitcast i8* %Sx3.i to float** - store float* %107, float** %162, align 1, !tbaa !5 - %bytesSx4.i = getelementptr inbounds i8* %call66, i64 24 - %163 = bitcast i8* %bytesSx4.i to i64* - store i64 36, i64* %163, align 1, !tbaa !10 - %Sy5.i = getelementptr inbounds i8* %call66, i64 32 - %164 = bitcast i8* %Sy5.i to float** - store float* %114, float** %164, align 1, !tbaa !5 - %bytesSy6.i = getelementptr inbounds i8* %call66, i64 40 - %165 = bitcast i8* %bytesSy6.i to i64* - store i64 36, i64* %165, align 1, !tbaa !10 - %Gx7.i = getelementptr inbounds i8* %call66, i64 48 - %166 = bitcast i8* %Gx7.i to float** - store float* %153, float** %166, align 1, !tbaa !5 - %bytesGx8.i = getelementptr inbounds i8* %call66, i64 56 - %167 = bitcast i8* %bytesGx8.i to i64* - store i64 %mul65, i64* %167, align 1, !tbaa !10 - %Gy9.i = getelementptr inbounds i8* %call66, i64 64 - %168 = bitcast i8* %Gy9.i to float** - store float* %155, float** %168, align 1, !tbaa !5 - %bytesGy10.i = getelementptr inbounds i8* %call66, i64 72 - %169 = bitcast i8* %bytesGy10.i to i64* - store i64 %mul65, i64* %169, align 1, !tbaa !10 - %G11.i = getelementptr inbounds i8* %call66, i64 80 - %170 = bitcast i8* %G11.i to float** - store float* %157, float** %170, align 1, !tbaa !5 - %bytesG12.i = getelementptr inbounds i8* %call66, i64 88 - %171 = bitcast i8* %bytesG12.i to i64* - store i64 %mul65, i64* %171, align 1, !tbaa !10 - %m13.i = getelementptr inbounds i8* %call66, i64 96 - %172 = bitcast i8* %m13.i to i32* - store i32 %159, i32* %172, align 1, !tbaa !9 - %n14.i = getelementptr inbounds i8* %call66, i64 100 - %173 = bitcast i8* %n14.i to i32* - store i32 %160, i32* %173, align 1, !tbaa !9 - %174 = load i32* %158, align 4, !tbaa !9 - %175 = load i32* %arrayidx.i338, align 4, !tbaa !9 - %mul84 = mul nsw i32 %175, %174 - %rem126 = and i32 %mul84, 255 - %cmp85 = icmp eq i32 %rem126, 0 - br i1 %cmp85, label %cond.end88, label %cond.false87 - -cond.false87: ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335 - call void @__assert_fail(i8* getelementptr inbounds ([39 x i8]* @.str15, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8]* @.str14, i64 0, i64 0), i32 494, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #9 - unreachable - -cond.end88: ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335 - call void @llvm_hpvm_track_mem(i8* %150, i64 %mul65) #1 - call void @llvm_hpvm_track_mem(i8* %106, i64 36) #1 - call void @llvm_hpvm_track_mem(i8* %113, i64 36) #1 - %176 = load i8** %data73, align 8, !tbaa !5 - call void @llvm_hpvm_track_mem(i8* %176, i64 %mul65) #1 - %177 = load i8** %data74, align 8, !tbaa !5 - call void @llvm_hpvm_track_mem(i8* %177, i64 %mul65) #1 - %178 = load i8** %data75, align 8, !tbaa !5 - call void @llvm_hpvm_track_mem(i8* %178, i64 %mul65) #1 - %179 = load i8** %data, align 8, !tbaa !5 - %180 = bitcast i8* %179 to float* - store float* %180, float** %I1.i, align 1, !tbaa !5 - call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 21) #1 - br label %for.body - -for.body: ; preds = %for.body, %cond.end88 - %j.0480 = phi i32 [ 0, %cond.end88 ], [ %inc, %for.body ] - %graphID = call i8* @llvm.hpvm.launch(i8* bitcast (%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @Gradient to i8*), i8* %call66, i1 false) - call void @llvm.hpvm.wait(i8* %graphID) - %inc = add i32 %j.0480, 1 - %exitcond = icmp eq i32 %inc, 2994 - br i1 %exitcond, label %for.end, label %for.body - -for.end: ; preds = %for.body - call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 0) #1 - %181 = load i8** %data75, align 8, !tbaa !5 - call void @llvm_hpvm_request_mem(i8* %181, i64 %mul65) #1 - %182 = load i8** %data, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %182) #1 - call void @llvm_hpvm_untrack_mem(i8* %106) #1 - call void @llvm_hpvm_untrack_mem(i8* %113) #1 - %183 = load i8** %data73, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %183) #1 - %184 = load i8** %data74, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %184) #1 - %185 = load i8** %data75, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %185) #1 - call void @pb_PrintTimerSet(%struct.pb_TimerSet* %timers) #1 - call void @llvm.hpvm.cleanup() - call void @pb_FreeParameters(%struct.pb_Parameters* %call3) #1 - %u.i.i.i342 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 9 - %186 = load %"struct.cv::UMatData"** %u.i.i.i342, align 8, !tbaa !5 - %tobool.i.i.i343 = icmp eq %"struct.cv::UMatData"* %186, null - br i1 %tobool.i.i.i343, label %if.end.i.i.i351, label %land.lhs.true.i.i.i346 - -land.lhs.true.i.i.i346: ; preds = %for.end - %refcount.i.i.i344 = getelementptr inbounds %"struct.cv::UMatData"* %186, i64 0, i32 3 - %187 = atomicrmw add i32* %refcount.i.i.i344, i32 -1 acq_rel - %cmp.i.i.i345 = icmp eq i32 %187, 1 - br i1 %cmp.i.i.i345, label %if.then.i.i.i347, label %if.end.i.i.i351 - -if.then.i.i.i347: ; preds = %land.lhs.true.i.i.i346 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %out) #1 - br label %if.end.i.i.i351 - -if.end.i.i.i351: ; preds = %if.then.i.i.i347, %land.lhs.true.i.i.i346, %for.end - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i342, align 8, !tbaa !5 - %data.i.i.i348 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 4 - %188 = bitcast i8** %data.i.i.i348 to i8* - call void @llvm.memset.p0i8.i64(i8* %188, i8 0, i64 32, i32 8, i1 false) #1 - %189 = load i32* %dims.i.i304, align 4, !tbaa !9 - %cmp47.i.i.i350 = icmp sgt i32 %189, 0 - br i1 %cmp47.i.i.i350, label %for.body.lr.ph.i.i.i353, label %_ZN2cv3Mat7releaseEv.exit.i.i362 - -for.body.lr.ph.i.i.i353: ; preds = %if.end.i.i.i351 - %190 = load i32** %p.i.i.i.i306, align 8, !tbaa !5 - br label %for.body.i.i.i358 - -for.body.i.i.i358: ; preds = %for.body.i.i.i358, %for.body.lr.ph.i.i.i353 - %indvars.iv.i.i.i354 = phi i64 [ 0, %for.body.lr.ph.i.i.i353 ], [ %indvars.iv.next.i.i.i356, %for.body.i.i.i358 ] - %arrayidx.i.i.i355 = getelementptr inbounds i32* %190, i64 %indvars.iv.i.i.i354 - store i32 0, i32* %arrayidx.i.i.i355, align 4, !tbaa !9 - %indvars.iv.next.i.i.i356 = add i64 %indvars.iv.i.i.i354, 1 - %191 = load i32* %dims.i.i304, align 4, !tbaa !9 - %192 = trunc i64 %indvars.iv.next.i.i.i356 to i32 - %cmp4.i.i.i357 = icmp slt i32 %192, %191 - br i1 %cmp4.i.i.i357, label %for.body.i.i.i358, label %_ZN2cv3Mat7releaseEv.exit.i.i362 - -_ZN2cv3Mat7releaseEv.exit.i.i362: ; preds = %for.body.i.i.i358, %if.end.i.i.i351 - %193 = load i64** %p.i.i3.i.i308, align 8, !tbaa !5 - %cmp.i.i361 = icmp eq i64* %193, %arraydecay.i.i.i.i307 - br i1 %cmp.i.i361, label %_ZN2cv3MatD1Ev.exit364, label %if.then.i.i363 - -if.then.i.i363: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i362 - %194 = bitcast i64* %193 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %194) #1 - br label %_ZN2cv3MatD1Ev.exit364 - -_ZN2cv3MatD1Ev.exit364: ; preds = %if.then.i.i363, %_ZN2cv3Mat7releaseEv.exit.i.i362 - call void @llvm.lifetime.end(i64 96, i8* %123) #1 - %u.i.i.i365 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 9 - %195 = load %"struct.cv::UMatData"** %u.i.i.i365, align 8, !tbaa !5 - %tobool.i.i.i366 = icmp eq %"struct.cv::UMatData"* %195, null - br i1 %tobool.i.i.i366, label %if.end.i.i.i374, label %land.lhs.true.i.i.i369 - -land.lhs.true.i.i.i369: ; preds = %_ZN2cv3MatD1Ev.exit364 - %refcount.i.i.i367 = getelementptr inbounds %"struct.cv::UMatData"* %195, i64 0, i32 3 - %196 = atomicrmw add i32* %refcount.i.i.i367, i32 -1 acq_rel - %cmp.i.i.i368 = icmp eq i32 %196, 1 - br i1 %cmp.i.i.i368, label %if.then.i.i.i370, label %if.end.i.i.i374 - -if.then.i.i.i370: ; preds = %land.lhs.true.i.i.i369 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %in) #1 - br label %if.end.i.i.i374 - -if.end.i.i.i374: ; preds = %if.then.i.i.i370, %land.lhs.true.i.i.i369, %_ZN2cv3MatD1Ev.exit364 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i365, align 8, !tbaa !5 - %data.i.i.i371 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 4 - %197 = bitcast i8** %data.i.i.i371 to i8* - call void @llvm.memset.p0i8.i64(i8* %197, i8 0, i64 32, i32 8, i1 false) #1 - %198 = load i32* %dims.i.i298, align 4, !tbaa !9 - %cmp47.i.i.i373 = icmp sgt i32 %198, 0 - br i1 %cmp47.i.i.i373, label %for.body.lr.ph.i.i.i376, label %_ZN2cv3Mat7releaseEv.exit.i.i385 - -for.body.lr.ph.i.i.i376: ; preds = %if.end.i.i.i374 - %199 = load i32** %p.i.i.i.i300, align 8, !tbaa !5 - br label %for.body.i.i.i381 - -for.body.i.i.i381: ; preds = %for.body.i.i.i381, %for.body.lr.ph.i.i.i376 - %indvars.iv.i.i.i377 = phi i64 [ 0, %for.body.lr.ph.i.i.i376 ], [ %indvars.iv.next.i.i.i379, %for.body.i.i.i381 ] - %arrayidx.i.i.i378 = getelementptr inbounds i32* %199, i64 %indvars.iv.i.i.i377 - store i32 0, i32* %arrayidx.i.i.i378, align 4, !tbaa !9 - %indvars.iv.next.i.i.i379 = add i64 %indvars.iv.i.i.i377, 1 - %200 = load i32* %dims.i.i298, align 4, !tbaa !9 - %201 = trunc i64 %indvars.iv.next.i.i.i379 to i32 - %cmp4.i.i.i380 = icmp slt i32 %201, %200 - br i1 %cmp4.i.i.i380, label %for.body.i.i.i381, label %_ZN2cv3Mat7releaseEv.exit.i.i385 - -_ZN2cv3Mat7releaseEv.exit.i.i385: ; preds = %for.body.i.i.i381, %if.end.i.i.i374 - %202 = load i64** %p.i.i3.i.i302, align 8, !tbaa !5 - %cmp.i.i384 = icmp eq i64* %202, %arraydecay.i.i.i.i301 - br i1 %cmp.i.i384, label %_ZN2cv3MatD1Ev.exit387, label %if.then.i.i386 - -if.then.i.i386: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i385 - %203 = bitcast i64* %202 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %203) #1 - br label %_ZN2cv3MatD1Ev.exit387 - -_ZN2cv3MatD1Ev.exit387: ; preds = %if.then.i.i386, %_ZN2cv3Mat7releaseEv.exit.i.i385 - call void @llvm.lifetime.end(i64 96, i8* %120) #1 - call void @llvm.lifetime.end(i64 36, i8* %113) #1 - call void @llvm.lifetime.end(i64 36, i8* %106) #1 - %u.i.i.i388 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 9 - %204 = load %"struct.cv::UMatData"** %u.i.i.i388, align 8, !tbaa !5 - %tobool.i.i.i389 = icmp eq %"struct.cv::UMatData"* %204, null - br i1 %tobool.i.i.i389, label %if.end.i.i.i397, label %land.lhs.true.i.i.i392 - -land.lhs.true.i.i.i392: ; preds = %_ZN2cv3MatD1Ev.exit387 - %refcount.i.i.i390 = getelementptr inbounds %"struct.cv::UMatData"* %204, i64 0, i32 3 - %205 = atomicrmw add i32* %refcount.i.i.i390, i32 -1 acq_rel - %cmp.i.i.i391 = icmp eq i32 %205, 1 - br i1 %cmp.i.i.i391, label %if.then.i.i.i393, label %if.end.i.i.i397 - -if.then.i.i.i393: ; preds = %land.lhs.true.i.i.i392 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %G) #1 - br label %if.end.i.i.i397 - -if.end.i.i.i397: ; preds = %if.then.i.i.i393, %land.lhs.true.i.i.i392, %_ZN2cv3MatD1Ev.exit387 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i388, align 8, !tbaa !5 - %206 = bitcast i8** %data75 to i8* - call void @llvm.memset.p0i8.i64(i8* %206, i8 0, i64 32, i32 8, i1 false) #1 - %207 = load i32* %dims.i.i182, align 4, !tbaa !9 - %cmp47.i.i.i396 = icmp sgt i32 %207, 0 - br i1 %cmp47.i.i.i396, label %for.body.lr.ph.i.i.i399, label %_ZN2cv3Mat7releaseEv.exit.i.i408 - -for.body.lr.ph.i.i.i399: ; preds = %if.end.i.i.i397 - %208 = load i32** %p.i.i.i.i184, align 8, !tbaa !5 - br label %for.body.i.i.i404 - -for.body.i.i.i404: ; preds = %for.body.i.i.i404, %for.body.lr.ph.i.i.i399 - %indvars.iv.i.i.i400 = phi i64 [ 0, %for.body.lr.ph.i.i.i399 ], [ %indvars.iv.next.i.i.i402, %for.body.i.i.i404 ] - %arrayidx.i.i.i401 = getelementptr inbounds i32* %208, i64 %indvars.iv.i.i.i400 - store i32 0, i32* %arrayidx.i.i.i401, align 4, !tbaa !9 - %indvars.iv.next.i.i.i402 = add i64 %indvars.iv.i.i.i400, 1 - %209 = load i32* %dims.i.i182, align 4, !tbaa !9 - %210 = trunc i64 %indvars.iv.next.i.i.i402 to i32 - %cmp4.i.i.i403 = icmp slt i32 %210, %209 - br i1 %cmp4.i.i.i403, label %for.body.i.i.i404, label %_ZN2cv3Mat7releaseEv.exit.i.i408 - -_ZN2cv3Mat7releaseEv.exit.i.i408: ; preds = %for.body.i.i.i404, %if.end.i.i.i397 - %211 = load i64** %p.i.i3.i.i186, align 8, !tbaa !5 - %cmp.i.i407 = icmp eq i64* %211, %arraydecay.i.i.i.i185 - br i1 %cmp.i.i407, label %_ZN2cv3MatD1Ev.exit410, label %if.then.i.i409 - -if.then.i.i409: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i408 - %212 = bitcast i64* %211 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %212) #1 - br label %_ZN2cv3MatD1Ev.exit410 - -_ZN2cv3MatD1Ev.exit410: ; preds = %if.then.i.i409, %_ZN2cv3Mat7releaseEv.exit.i.i408 - call void @llvm.lifetime.end(i64 96, i8* %41) #1 - %u.i.i.i411 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 9 - %213 = load %"struct.cv::UMatData"** %u.i.i.i411, align 8, !tbaa !5 - %tobool.i.i.i412 = icmp eq %"struct.cv::UMatData"* %213, null - br i1 %tobool.i.i.i412, label %if.end.i.i.i420, label %land.lhs.true.i.i.i415 - -land.lhs.true.i.i.i415: ; preds = %_ZN2cv3MatD1Ev.exit410 - %refcount.i.i.i413 = getelementptr inbounds %"struct.cv::UMatData"* %213, i64 0, i32 3 - %214 = atomicrmw add i32* %refcount.i.i.i413, i32 -1 acq_rel - %cmp.i.i.i414 = icmp eq i32 %214, 1 - br i1 %cmp.i.i.i414, label %if.then.i.i.i416, label %if.end.i.i.i420 - -if.then.i.i.i416: ; preds = %land.lhs.true.i.i.i415 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %Gy) #1 - br label %if.end.i.i.i420 - -if.end.i.i.i420: ; preds = %if.then.i.i.i416, %land.lhs.true.i.i.i415, %_ZN2cv3MatD1Ev.exit410 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i411, align 8, !tbaa !5 - %215 = bitcast i8** %data74 to i8* - call void @llvm.memset.p0i8.i64(i8* %215, i8 0, i64 32, i32 8, i1 false) #1 - %216 = load i32* %dims.i.i176, align 4, !tbaa !9 - %cmp47.i.i.i419 = icmp sgt i32 %216, 0 - br i1 %cmp47.i.i.i419, label %for.body.lr.ph.i.i.i422, label %_ZN2cv3Mat7releaseEv.exit.i.i431 - -for.body.lr.ph.i.i.i422: ; preds = %if.end.i.i.i420 - %217 = load i32** %p.i.i.i.i178, align 8, !tbaa !5 - br label %for.body.i.i.i427 - -for.body.i.i.i427: ; preds = %for.body.i.i.i427, %for.body.lr.ph.i.i.i422 - %indvars.iv.i.i.i423 = phi i64 [ 0, %for.body.lr.ph.i.i.i422 ], [ %indvars.iv.next.i.i.i425, %for.body.i.i.i427 ] - %arrayidx.i.i.i424 = getelementptr inbounds i32* %217, i64 %indvars.iv.i.i.i423 - store i32 0, i32* %arrayidx.i.i.i424, align 4, !tbaa !9 - %indvars.iv.next.i.i.i425 = add i64 %indvars.iv.i.i.i423, 1 - %218 = load i32* %dims.i.i176, align 4, !tbaa !9 - %219 = trunc i64 %indvars.iv.next.i.i.i425 to i32 - %cmp4.i.i.i426 = icmp slt i32 %219, %218 - br i1 %cmp4.i.i.i426, label %for.body.i.i.i427, label %_ZN2cv3Mat7releaseEv.exit.i.i431 - -_ZN2cv3Mat7releaseEv.exit.i.i431: ; preds = %for.body.i.i.i427, %if.end.i.i.i420 - %220 = load i64** %p.i.i3.i.i180, align 8, !tbaa !5 - %cmp.i.i430 = icmp eq i64* %220, %arraydecay.i.i.i.i179 - br i1 %cmp.i.i430, label %_ZN2cv3MatD1Ev.exit433, label %if.then.i.i432 - -if.then.i.i432: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i431 - %221 = bitcast i64* %220 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %221) #1 - br label %_ZN2cv3MatD1Ev.exit433 - -_ZN2cv3MatD1Ev.exit433: ; preds = %if.then.i.i432, %_ZN2cv3Mat7releaseEv.exit.i.i431 - call void @llvm.lifetime.end(i64 96, i8* %38) #1 - %u.i.i.i434 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 9 - %222 = load %"struct.cv::UMatData"** %u.i.i.i434, align 8, !tbaa !5 - %tobool.i.i.i435 = icmp eq %"struct.cv::UMatData"* %222, null - br i1 %tobool.i.i.i435, label %if.end.i.i.i443, label %land.lhs.true.i.i.i438 - -land.lhs.true.i.i.i438: ; preds = %_ZN2cv3MatD1Ev.exit433 - %refcount.i.i.i436 = getelementptr inbounds %"struct.cv::UMatData"* %222, i64 0, i32 3 - %223 = atomicrmw add i32* %refcount.i.i.i436, i32 -1 acq_rel - %cmp.i.i.i437 = icmp eq i32 %223, 1 - br i1 %cmp.i.i.i437, label %if.then.i.i.i439, label %if.end.i.i.i443 - -if.then.i.i.i439: ; preds = %land.lhs.true.i.i.i438 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %Gx) #1 - br label %if.end.i.i.i443 - -if.end.i.i.i443: ; preds = %if.then.i.i.i439, %land.lhs.true.i.i.i438, %_ZN2cv3MatD1Ev.exit433 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i434, align 8, !tbaa !5 - %224 = bitcast i8** %data73 to i8* - call void @llvm.memset.p0i8.i64(i8* %224, i8 0, i64 32, i32 8, i1 false) #1 - %225 = load i32* %dims.i.i170, align 4, !tbaa !9 - %cmp47.i.i.i442 = icmp sgt i32 %225, 0 - br i1 %cmp47.i.i.i442, label %for.body.lr.ph.i.i.i445, label %_ZN2cv3Mat7releaseEv.exit.i.i454 - -for.body.lr.ph.i.i.i445: ; preds = %if.end.i.i.i443 - %226 = load i32** %p.i.i.i.i172, align 8, !tbaa !5 - br label %for.body.i.i.i450 - -for.body.i.i.i450: ; preds = %for.body.i.i.i450, %for.body.lr.ph.i.i.i445 - %indvars.iv.i.i.i446 = phi i64 [ 0, %for.body.lr.ph.i.i.i445 ], [ %indvars.iv.next.i.i.i448, %for.body.i.i.i450 ] - %arrayidx.i.i.i447 = getelementptr inbounds i32* %226, i64 %indvars.iv.i.i.i446 - store i32 0, i32* %arrayidx.i.i.i447, align 4, !tbaa !9 - %indvars.iv.next.i.i.i448 = add i64 %indvars.iv.i.i.i446, 1 - %227 = load i32* %dims.i.i170, align 4, !tbaa !9 - %228 = trunc i64 %indvars.iv.next.i.i.i448 to i32 - %cmp4.i.i.i449 = icmp slt i32 %228, %227 - br i1 %cmp4.i.i.i449, label %for.body.i.i.i450, label %_ZN2cv3Mat7releaseEv.exit.i.i454 - -_ZN2cv3Mat7releaseEv.exit.i.i454: ; preds = %for.body.i.i.i450, %if.end.i.i.i443 - %229 = load i64** %p.i.i3.i.i174, align 8, !tbaa !5 - %cmp.i.i453 = icmp eq i64* %229, %arraydecay.i.i.i.i173 - br i1 %cmp.i.i453, label %_ZN2cv3MatD1Ev.exit456, label %if.then.i.i455 - -if.then.i.i455: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i454 - %230 = bitcast i64* %229 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %230) #1 - br label %_ZN2cv3MatD1Ev.exit456 - -_ZN2cv3MatD1Ev.exit456: ; preds = %if.then.i.i455, %_ZN2cv3Mat7releaseEv.exit.i.i454 - call void @llvm.lifetime.end(i64 96, i8* %35) #1 - %u.i.i.i457 = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 9 - %231 = load %"struct.cv::UMatData"** %u.i.i.i457, align 8, !tbaa !5 - %tobool.i.i.i458 = icmp eq %"struct.cv::UMatData"* %231, null - br i1 %tobool.i.i.i458, label %if.end.i.i.i466, label %land.lhs.true.i.i.i461 - -land.lhs.true.i.i.i461: ; preds = %_ZN2cv3MatD1Ev.exit456 - %refcount.i.i.i459 = getelementptr inbounds %"struct.cv::UMatData"* %231, i64 0, i32 3 - %232 = atomicrmw add i32* %refcount.i.i.i459, i32 -1 acq_rel - %cmp.i.i.i460 = icmp eq i32 %232, 1 - br i1 %cmp.i.i.i460, label %if.then.i.i.i462, label %if.end.i.i.i466 - -if.then.i.i.i462: ; preds = %land.lhs.true.i.i.i461 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %src) #1 - br label %if.end.i.i.i466 - -if.end.i.i.i466: ; preds = %if.then.i.i.i462, %land.lhs.true.i.i.i461, %_ZN2cv3MatD1Ev.exit456 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i457, align 8, !tbaa !5 - %233 = bitcast i8** %data to i8* - call void @llvm.memset.p0i8.i64(i8* %233, i8 0, i64 32, i32 8, i1 false) #1 - %234 = load i32* %dims.i.i, align 4, !tbaa !9 - %cmp47.i.i.i465 = icmp sgt i32 %234, 0 - br i1 %cmp47.i.i.i465, label %for.body.lr.ph.i.i.i468, label %_ZN2cv3Mat7releaseEv.exit.i.i477 - -for.body.lr.ph.i.i.i468: ; preds = %if.end.i.i.i466 - %235 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - br label %for.body.i.i.i473 - -for.body.i.i.i473: ; preds = %for.body.i.i.i473, %for.body.lr.ph.i.i.i468 - %indvars.iv.i.i.i469 = phi i64 [ 0, %for.body.lr.ph.i.i.i468 ], [ %indvars.iv.next.i.i.i471, %for.body.i.i.i473 ] - %arrayidx.i.i.i470 = getelementptr inbounds i32* %235, i64 %indvars.iv.i.i.i469 - store i32 0, i32* %arrayidx.i.i.i470, align 4, !tbaa !9 - %indvars.iv.next.i.i.i471 = add i64 %indvars.iv.i.i.i469, 1 - %236 = load i32* %dims.i.i, align 4, !tbaa !9 - %237 = trunc i64 %indvars.iv.next.i.i.i471 to i32 - %cmp4.i.i.i472 = icmp slt i32 %237, %236 - br i1 %cmp4.i.i.i472, label %for.body.i.i.i473, label %_ZN2cv3Mat7releaseEv.exit.i.i477 - -_ZN2cv3Mat7releaseEv.exit.i.i477: ; preds = %for.body.i.i.i473, %if.end.i.i.i466 - %238 = load i64** %p.i.i3.i.i, align 8, !tbaa !5 - %cmp.i.i476 = icmp eq i64* %238, %arraydecay.i.i.i.i - br i1 %cmp.i.i476, label %cleanup, label %if.then.i.i478 - -if.then.i.i478: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i477 - %239 = bitcast i64* %238 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %239) #1 - br label %cleanup - -cleanup: ; preds = %if.then.i.i478, %_ZN2cv3Mat7releaseEv.exit.i.i477, %if.then16 - %retval.0 = phi i32 [ -1, %if.then16 ], [ 0, %_ZN2cv3Mat7releaseEv.exit.i.i477 ], [ 0, %if.then.i.i478 ] - call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %cap) #1 - call void @llvm.lifetime.end(i64 40, i8* %12) #1 - call void @llvm.lifetime.end(i64 800, i8* %0) #1 - ret i32 %retval.0 -} - -; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 - -declare %struct.pb_Parameters* @pb_ReadParameters(i32*, i8**) #0 - -; Function Attrs: noreturn nounwind -declare void @exit(i32) #3 - -declare void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"*, %"class.cv::String"*) #0 - -declare zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"*) #0 - -declare double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"*, i32) #0 - -declare %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"*, i32) #0 - -declare void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"*, i32) #0 - -declare void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"*, i32, i32) #0 - -; Function Attrs: inlinehint nounwind uwtable -define linkonce_odr %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #4 align 2 { -entry: - %cmp = icmp eq %"class.cv::Mat"* %this, %m - br i1 %cmp, label %if.end27, label %if.then - -if.then: ; preds = %entry - %u = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 9 - %0 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5 - %tobool = icmp eq %"struct.cv::UMatData"* %0, null - br i1 %tobool, label %if.end, label %if.then2 - -if.then2: ; preds = %if.then - %refcount = getelementptr inbounds %"struct.cv::UMatData"* %0, i64 0, i32 3 - %1 = atomicrmw add i32* %refcount, i32 1 acq_rel - br label %if.end - -if.end: ; preds = %if.then2, %if.then - %u.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 9 - %2 = load %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5 - %tobool.i = icmp eq %"struct.cv::UMatData"* %2, null - br i1 %tobool.i, label %if.end.i, label %land.lhs.true.i - -land.lhs.true.i: ; preds = %if.end - %refcount.i = getelementptr inbounds %"struct.cv::UMatData"* %2, i64 0, i32 3 - %3 = atomicrmw add i32* %refcount.i, i32 -1 acq_rel - %cmp.i = icmp eq i32 %3, 1 - br i1 %cmp.i, label %if.then.i, label %if.end.i - -if.then.i: ; preds = %land.lhs.true.i - tail call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %this) #1 - br label %if.end.i - -if.end.i: ; preds = %if.then.i, %land.lhs.true.i, %if.end - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5 - %data.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 4 - %dims.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 1 - %4 = bitcast i8** %data.i to i8* - tail call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 32, i32 8, i1 false) #1 - %5 = load i32* %dims.i, align 4, !tbaa !9 - %cmp47.i = icmp sgt i32 %5, 0 - br i1 %cmp47.i, label %for.body.lr.ph.i, label %_ZN2cv3Mat7releaseEv.exit.thread - -_ZN2cv3Mat7releaseEv.exit.thread: ; preds = %if.end.i - %flags50 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0 - %6 = load i32* %flags50, align 4, !tbaa !9 - %flags451 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0 - store i32 %6, i32* %flags451, align 4, !tbaa !9 - br label %land.lhs.true - -for.body.lr.ph.i: ; preds = %if.end.i - %p.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 10, i32 0 - %7 = load i32** %p.i, align 8, !tbaa !5 - br label %for.body.i - -for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i - %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %for.body.i ] - %arrayidx.i = getelementptr inbounds i32* %7, i64 %indvars.iv.i - store i32 0, i32* %arrayidx.i, align 4, !tbaa !9 - %indvars.iv.next.i = add i64 %indvars.iv.i, 1 - %8 = load i32* %dims.i, align 4, !tbaa !9 - %9 = trunc i64 %indvars.iv.next.i to i32 - %cmp4.i = icmp slt i32 %9, %8 - br i1 %cmp4.i, label %for.body.i, label %_ZN2cv3Mat7releaseEv.exit - -_ZN2cv3Mat7releaseEv.exit: ; preds = %for.body.i - %flags = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0 - %10 = load i32* %flags, align 4, !tbaa !9 - %flags4 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0 - store i32 %10, i32* %flags4, align 4, !tbaa !9 - %cmp5 = icmp slt i32 %8, 3 - br i1 %cmp5, label %land.lhs.true, label %if.else - -land.lhs.true: ; preds = %_ZN2cv3Mat7releaseEv.exit, %_ZN2cv3Mat7releaseEv.exit.thread - %dims6 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 1 - %11 = load i32* %dims6, align 4, !tbaa !9 - %cmp7 = icmp slt i32 %11, 3 - br i1 %cmp7, label %if.then8, label %if.else - -if.then8: ; preds = %land.lhs.true - store i32 %11, i32* %dims.i, align 4, !tbaa !9 - %rows = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 2 - %12 = load i32* %rows, align 4, !tbaa !9 - %rows11 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 2 - store i32 %12, i32* %rows11, align 4, !tbaa !9 - %cols = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 3 - %13 = load i32* %cols, align 4, !tbaa !9 - %cols12 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 3 - store i32 %13, i32* %cols12, align 4, !tbaa !9 - %p.i44 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 11, i32 0 - %14 = load i64** %p.i44, align 8, !tbaa !5 - %15 = load i64* %14, align 8, !tbaa !10 - %p.i49 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 11, i32 0 - %16 = load i64** %p.i49, align 8, !tbaa !5 - store i64 %15, i64* %16, align 8, !tbaa !10 - %arrayidx.i48 = getelementptr inbounds i64* %14, i64 1 - %17 = load i64* %arrayidx.i48, align 8, !tbaa !10 - %arrayidx.i46 = getelementptr inbounds i64* %16, i64 1 - store i64 %17, i64* %arrayidx.i46, align 8, !tbaa !10 - br label %if.end19 - -if.else: ; preds = %land.lhs.true, %_ZN2cv3Mat7releaseEv.exit - tail call void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #1 - br label %if.end19 - -if.end19: ; preds = %if.else, %if.then8 - %data = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 4 - %18 = load i8** %data, align 8, !tbaa !5 - store i8* %18, i8** %data.i, align 8, !tbaa !5 - %datastart = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 5 - %19 = load i8** %datastart, align 8, !tbaa !5 - %datastart21 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 5 - store i8* %19, i8** %datastart21, align 8, !tbaa !5 - %dataend = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 6 - %20 = load i8** %dataend, align 8, !tbaa !5 - %dataend22 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 6 - store i8* %20, i8** %dataend22, align 8, !tbaa !5 - %datalimit = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 7 - %21 = load i8** %datalimit, align 8, !tbaa !5 - %datalimit23 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 7 - store i8* %21, i8** %datalimit23, align 8, !tbaa !5 - %allocator = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 8 - %22 = load %"class.cv::MatAllocator"** %allocator, align 8, !tbaa !5 - %allocator24 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 8 - store %"class.cv::MatAllocator"* %22, %"class.cv::MatAllocator"** %allocator24, align 8, !tbaa !5 - %23 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5 - store %"struct.cv::UMatData"* %23, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5 - br label %if.end27 - -if.end27: ; preds = %if.end19, %entry - ret %"class.cv::Mat"* %this -} - -; Function Attrs: noreturn nounwind -declare void @__assert_fail(i8*, i8*, i32, i8*) #3 - -declare void @pb_InitializeTimerSet(%struct.pb_TimerSet*) #0 - -; Function Attrs: nounwind -declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1 - -; Function Attrs: nounwind -declare noalias i8* @malloc(i64) #5 - -declare void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"*) #0 - -declare void @llvm_hpvm_track_mem(i8*, i64) #0 - -declare void @pb_SwitchToTimer(%struct.pb_TimerSet*, i32) #0 - -declare void @llvm_hpvm_request_mem(i8*, i64) #0 - -declare void @llvm_hpvm_untrack_mem(i8*) #0 - -declare void @pb_PrintTimerSet(%struct.pb_TimerSet*) #0 - -declare void @pb_FreeParameters(%struct.pb_Parameters*) #0 - -; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 - -declare %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"*, i8*, i64) #0 - -; Function Attrs: nounwind readonly -declare i64 @strlen(i8* nocapture) #6 - -declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"*, i32) #0 - -; Function Attrs: nounwind -declare void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"*, %"class.std::allocator"*) #5 - -declare extern_weak i32 @pthread_cancel(i64) #0 - -declare void @_ZN2cv8fastFreeEPv(i8*) #0 - -declare void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"*) #0 - -declare void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"*, i32, i32*, i32) #0 - -declare void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"*, %"class.cv::Mat"*) #0 - -declare i8* @_ZN2cv6String8allocateEm(%"class.cv::String"*, i64) #0 - -; Function Attrs: nounwind -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #1 - -declare void @_ZN2cv6String10deallocateEv(%"class.cv::String"*) #0 - -; Function Attrs: nounwind -define internal void @_GLOBAL__I_a() #1 section ".text.startup" { -entry: - %ref.tmp.i1 = alloca %"class.std::allocator", align 1 - %ref.tmp.i = alloca %"class.std::allocator", align 1 - call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* @_ZStL8__ioinit) #1 - %0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init"* @_ZStL8__ioinit, i64 0, i32 0), i8* @__dso_handle) #1 - %1 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %1) #1 - call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @input_window, i8* getelementptr inbounds ([27 x i8]* @.str, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i) #1 - %2 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @input_window to i8*), i8* @__dso_handle) #1 - call void @llvm.lifetime.end(i64 1, i8* %1) #1 - %3 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i1, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %3) #1 - call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @output_window, i8* getelementptr inbounds ([28 x i8]* @.str3, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i1) #1 - %4 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @output_window to i8*), i8* @__dso_handle) #1 - call void @llvm.lifetime.end(i64 1, i8* %3) #1 - ret void -} - -; Function Attrs: nounwind -declare i64 @fwrite(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) #1 - -; Function Attrs: nounwind readnone -declare i8* @llvm.hpvm.getNode() #7 - -; Function Attrs: nounwind readnone -declare i32 @llvm.hpvm.getNodeInstanceID.x(i8*) #7 - -; Function Attrs: nounwind readnone -declare i32 @llvm.hpvm.getNodeInstanceID.y(i8*) #7 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.createNode2D(i8*, i32, i32) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.bind.input(i8*, i32, i32, i1) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.bind.output(i8*, i32, i32, i1) #1 - -; Function Attrs: nounwind readonly -declare float @llvm.sqrt.f32(float) #8 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.createNode(i8*) #1 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.createEdge(i8*, i8*, i1, i32, i32, i1) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.init() #1 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.launch(i8*, i8*, i1) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.wait(i8*) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.cleanup() #1 - -; Function Attrs: nounwind -define %horizontal.vertical.ty @horizontal_vertical(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_Sx, i64 %n1_bytesSx, float* nocapture out %n1_Gx, i64 %n1_bytesGx, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_Sy, i64 %n2_bytesSy, float* nocapture out %n2_Gy, i64 %n2_bytesGy, i32 %n2_m, i32 %n2_n) #1 { -entry: - %call3.i = tail call i8* @llvm.hpvm.getNode() #1 - %call14.i = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3.i) #1 - %call25.i = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3.i) #1 - %mul.i = mul nsw i32 %call25.i, %n1_n - %add.i = add nsw i32 %mul.i, %call14.i - %cmp.i = icmp slt i32 %call14.i, %n1_n - %cmp3.i = icmp slt i32 %call25.i, %n1_m - %or.cond.i = and i1 %cmp.i, %cmp3.i - br i1 %or.cond.i, label %for.cond.preheader.i, label %horizontal.exit - -for.cond.preheader.i: ; preds = %entry - %sub34.i = add i32 %n1_n, -1 - %sub38.i = sub i32 %sub34.i, %call14.i - %sub.i = add nsw i32 %n1_m, -1 - %mul19.i = mul nsw i32 %sub.i, %n1_n - %add20.i = add nsw i32 %call14.i, %mul19.i - %0 = zext i32 %call25.i to i64 - %loadOffset.0.us.us.i = add i32 %call14.i, -1 - %cmp28.us.us.i = icmp slt i32 %loadOffset.0.us.us.i, 0 - %cmp28.us.us.1.i = icmp slt i32 %call14.i, 0 - %1 = add i32 %call14.i, 1 - %cmp28.us.us.2.i = icmp slt i32 %1, 0 - %cmp35.us.us.2.i = icmp sgt i32 %1, %sub34.i - %sub40.us.us.2.loadOffset.0.us.us.2.i = select i1 %cmp35.us.us.2.i, i32 %sub34.i, i32 %1 - %phitmp162.i = sext i32 %sub40.us.us.2.loadOffset.0.us.us.2.i to i64 - %cmp35.us.us.1.i = icmp sgt i32 %call14.i, %sub34.i - %sub40.us.us.1.call1.i = select i1 %cmp35.us.us.1.i, i32 %sub34.i, i32 %call14.i - %phitmp161.i = sext i32 %sub40.us.us.1.call1.i to i64 - %cmp35.us.us.i = icmp sgt i32 %loadOffset.0.us.us.i, %sub34.i - %sub40.us.us.loadOffset.0.us.us.i = select i1 %cmp35.us.us.i, i32 %sub34.i, i32 %loadOffset.0.us.us.i - %phitmp160.i = sext i32 %sub40.us.us.loadOffset.0.us.us.i to i64 - %loadOffset.0.us108.2.i = add nsw i32 %add20.i, 1 - %sub40.us116.2.i = add i32 %sub34.i, %mul19.i - %sub40.us116.2.loadOffset.0.us108.2.i = select i1 %cmp35.us.us.2.i, i32 %sub40.us116.2.i, i32 %loadOffset.0.us108.2.i - %sub40.us116.1.add20.i = select i1 %cmp35.us.us.1.i, i32 %sub40.us116.2.i, i32 %add20.i - %loadOffset.0.us108.i = add nsw i32 %add20.i, -1 - %sub40.us116.loadOffset.0.us108.i = select i1 %cmp35.us.us.i, i32 %sub40.us116.2.i, i32 %loadOffset.0.us108.i - %sub40.1.i = select i1 %cmp35.us.us.1.i, i32 %sub38.i, i32 0 - br label %for.cond5.preheader.i - -for.cond5.preheader.i: ; preds = %for.inc51.i, %for.cond.preheader.i - %indvars.iv152.i = phi i64 [ -1, %for.cond.preheader.i ], [ %indvars.iv.next153.i, %for.inc51.i ] - %Val.0130.i = phi float [ 0.000000e+00, %for.cond.preheader.i ], [ %Val.1.lcssa.i, %for.inc51.i ] - %2 = add nsw i64 %indvars.iv152.i, %0 - %3 = trunc i64 %2 to i32 - %cmp12.i = icmp slt i32 %3, 0 - %4 = mul i64 %indvars.iv152.i, 3 - %5 = add i64 %4, 4 - %6 = trunc i64 %indvars.iv152.i to i32 - %mul8.i = mul nsw i32 %6, %n1_n - %add9.i = add nsw i32 %mul8.i, %add.i - br i1 %cmp12.i, label %for.cond5.preheader.split.us.i, label %for.cond5.preheader.for.cond5.preheader.split_crit_edge.i - -for.cond5.preheader.for.cond5.preheader.split_crit_edge.i: ; preds = %for.cond5.preheader.i - %cmp16.i = icmp sgt i32 %3, %sub.i - br i1 %cmp16.i, label %if.end26.us106.i, label %if.end26.i - -for.cond5.preheader.split.us.i: ; preds = %for.cond5.preheader.i - %.phitmp160.i = select i1 %cmp28.us.us.i, i64 0, i64 %phitmp160.i - %arrayidx.us.us.i = getelementptr inbounds float* %n1_Is, i64 %.phitmp160.i - %7 = load float* %arrayidx.us.us.i, align 4, !tbaa !11 - %8 = add i64 %4, 3 - %arrayidx48.us.us.i = getelementptr inbounds float* %n1_Sx, i64 %8 - %9 = load float* %arrayidx48.us.us.i, align 4, !tbaa !11 - %mul49.us.us.i = fmul fast float %7, %9 - %add50.us.us.i = fadd fast float %Val.0130.i, %mul49.us.us.i - %loadOffset.1.us.us.1.i = select i1 %cmp28.us.us.1.i, i64 0, i64 %phitmp161.i - %arrayidx.us.us.1.i = getelementptr inbounds float* %n1_Is, i64 %loadOffset.1.us.us.1.i - %10 = load float* %arrayidx.us.us.1.i, align 4, !tbaa !11 - %arrayidx48.us.us.1.i = getelementptr inbounds float* %n1_Sx, i64 %5 - %11 = load float* %arrayidx48.us.us.1.i, align 4, !tbaa !11 - %mul49.us.us.1.i = fmul fast float %10, %11 - %add50.us.us.1.i = fadd fast float %add50.us.us.i, %mul49.us.us.1.i - %.phitmp162.i75 = select i1 %cmp28.us.us.2.i, i64 0, i64 %phitmp162.i - %arrayidx.us.us.2.i = getelementptr inbounds float* %n1_Is, i64 %.phitmp162.i75 - %12 = load float* %arrayidx.us.us.2.i, align 4, !tbaa !11 - %13 = add i64 %4, 5 - %arrayidx48.us.us.2.i = getelementptr inbounds float* %n1_Sx, i64 %13 - %14 = load float* %arrayidx48.us.us.2.i, align 4, !tbaa !11 - %mul49.us.us.2.i = fmul fast float %12, %14 - %add50.us.us.2.i = fadd fast float %add50.us.us.1.i, %mul49.us.us.2.i - br label %for.inc51.i - -if.end26.us106.i: ; preds = %for.cond5.preheader.for.cond5.preheader.split_crit_edge.i - %mul19.i.sub40.us116.loadOffset.0.us108.i = select i1 %cmp28.us.us.i, i32 %mul19.i, i32 %sub40.us116.loadOffset.0.us108.i - %idxprom.us121.i = sext i32 %mul19.i.sub40.us116.loadOffset.0.us108.i to i64 - %arrayidx.us122.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.us121.i - %15 = load float* %arrayidx.us122.i, align 4, !tbaa !11 - %16 = add i64 %4, 3 - %arrayidx48.us125.i = getelementptr inbounds float* %n1_Sx, i64 %16 - %17 = load float* %arrayidx48.us125.i, align 4, !tbaa !11 - %mul49.us126.i = fmul fast float %15, %17 - %add50.us127.i = fadd fast float %Val.0130.i, %mul49.us126.i - %loadOffset.1.us120.1.i = select i1 %cmp28.us.us.1.i, i32 %mul19.i, i32 %sub40.us116.1.add20.i - %idxprom.us121.1.i = sext i32 %loadOffset.1.us120.1.i to i64 - %arrayidx.us122.1.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.us121.1.i - %18 = load float* %arrayidx.us122.1.i, align 4, !tbaa !11 - %arrayidx48.us125.1.i = getelementptr inbounds float* %n1_Sx, i64 %5 - %19 = load float* %arrayidx48.us125.1.i, align 4, !tbaa !11 - %mul49.us126.1.i = fmul fast float %18, %19 - %add50.us127.1.i = fadd fast float %add50.us127.i, %mul49.us126.1.i - %mul19.i.sub40.us116.2.loadOffset.0.us108.2.i = select i1 %cmp28.us.us.2.i, i32 %mul19.i, i32 %sub40.us116.2.loadOffset.0.us108.2.i - %idxprom.us121.2.i = sext i32 %mul19.i.sub40.us116.2.loadOffset.0.us108.2.i to i64 - %arrayidx.us122.2.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.us121.2.i - %20 = load float* %arrayidx.us122.2.i, align 4, !tbaa !11 - %21 = add i64 %4, 5 - %arrayidx48.us125.2.i = getelementptr inbounds float* %n1_Sx, i64 %21 - %22 = load float* %arrayidx48.us125.2.i, align 4, !tbaa !11 - %mul49.us126.2.i = fmul fast float %20, %22 - %add50.us127.2.i = fadd fast float %add50.us127.1.i, %mul49.us126.2.i - br label %for.inc51.i - -if.end26.i: ; preds = %for.cond5.preheader.for.cond5.preheader.split_crit_edge.i - %loadOffset.0.i = add nsw i32 %add9.i, -1 - br i1 %cmp28.us.us.i, label %if.then29.i, label %if.else32.i - -if.then29.i: ; preds = %if.end26.i - %sub31.i = sub nsw i32 %loadOffset.0.i, %loadOffset.0.us.us.i - br label %if.end26.1.i - -if.else32.i: ; preds = %if.end26.i - %sub40.i = add i32 %add9.i, %sub38.i - %sub40.loadOffset.0.i = select i1 %cmp35.us.us.i, i32 %sub40.i, i32 %loadOffset.0.i - br label %if.end26.1.i - -for.inc51.i: ; preds = %for.cond5.preheader.split.us.i, %if.end26.us106.i, %if.end42.2.i - %Val.1.lcssa.i = phi float [ %add50.2.i, %if.end42.2.i ], [ %add50.us127.2.i, %if.end26.us106.i ], [ %add50.us.us.2.i, %for.cond5.preheader.split.us.i ] - %indvars.iv.next153.i = add i64 %indvars.iv152.i, 1 - %lftr.wideiv70 = trunc i64 %indvars.iv.next153.i to i32 - %exitcond71 = icmp eq i32 %lftr.wideiv70, 2 - br i1 %exitcond71, label %horizontal.exit, label %for.cond5.preheader.i - -if.end26.1.i: ; preds = %if.else32.i, %if.then29.i - %loadOffset.1.i = phi i32 [ %sub31.i, %if.then29.i ], [ %sub40.loadOffset.0.i, %if.else32.i ] - %idxprom.i = sext i32 %loadOffset.1.i to i64 - %arrayidx.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.i - %23 = load float* %arrayidx.i, align 4, !tbaa !11 - %24 = add i64 %4, 3 - %arrayidx48.i = getelementptr inbounds float* %n1_Sx, i64 %24 - %25 = load float* %arrayidx48.i, align 4, !tbaa !11 - %mul49.i = fmul fast float %23, %25 - %add50.i = fadd fast float %Val.0130.i, %mul49.i - %26 = sub i32 0, %call14.i - %loadOffset.1.1.i.p = select i1 %cmp28.us.us.1.i, i32 %26, i32 %sub40.1.i - %loadOffset.1.1.i = add i32 %add9.i, %loadOffset.1.1.i.p - %idxprom.1.i = sext i32 %loadOffset.1.1.i to i64 - %arrayidx.1.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.1.i - %27 = load float* %arrayidx.1.i, align 4, !tbaa !11 - %arrayidx48.1.i = getelementptr inbounds float* %n1_Sx, i64 %5 - %28 = load float* %arrayidx48.1.i, align 4, !tbaa !11 - %mul49.1.i = fmul fast float %27, %28 - %add50.1.i = fadd fast float %add50.i, %mul49.1.i - %loadOffset.0.2.i = add nsw i32 %add9.i, 1 - br i1 %cmp28.us.us.2.i, label %if.then29.2.i, label %if.else32.2.i - -if.else32.2.i: ; preds = %if.end26.1.i - %sub40.2.i = add i32 %add9.i, %sub38.i - %sub40.2.loadOffset.0.2.i = select i1 %cmp35.us.us.2.i, i32 %sub40.2.i, i32 %loadOffset.0.2.i - br label %if.end42.2.i - -if.then29.2.i: ; preds = %if.end26.1.i - %sub31.2.i = sub nsw i32 %loadOffset.0.2.i, %1 - br label %if.end42.2.i - -if.end42.2.i: ; preds = %if.then29.2.i, %if.else32.2.i - %loadOffset.1.2.i = phi i32 [ %sub31.2.i, %if.then29.2.i ], [ %sub40.2.loadOffset.0.2.i, %if.else32.2.i ] - %idxprom.2.i = sext i32 %loadOffset.1.2.i to i64 - %arrayidx.2.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.2.i - %29 = load float* %arrayidx.2.i, align 4, !tbaa !11 - %30 = add i64 %4, 5 - %arrayidx48.2.i = getelementptr inbounds float* %n1_Sx, i64 %30 - %31 = load float* %arrayidx48.2.i, align 4, !tbaa !11 - %mul49.2.i = fmul fast float %29, %31 - %add50.2.i = fadd fast float %add50.1.i, %mul49.2.i - br label %for.inc51.i - -horizontal.exit: ; preds = %for.inc51.i, %entry - %Val.2.i = phi float [ 0.000000e+00, %entry ], [ %Val.1.lcssa.i, %for.inc51.i ] - %idxprom55.i = sext i32 %add.i to i64 - %arrayidx56.i = getelementptr inbounds float* %n1_Gx, i64 %idxprom55.i - store float %Val.2.i, float* %arrayidx56.i, align 4, !tbaa !11 - %mul.i4 = mul nsw i32 %call25.i, %n2_n - %add.i5 = add nsw i32 %mul.i4, %call14.i - %cmp.i6 = icmp slt i32 %call14.i, %n2_n - %cmp3.i7 = icmp slt i32 %call25.i, %n2_m - %or.cond.i8 = and i1 %cmp.i6, %cmp3.i7 - br i1 %or.cond.i8, label %for.cond.preheader.i14, label %vertical.exit - -for.cond.preheader.i14: ; preds = %horizontal.exit - %sub34.i9 = add i32 %n2_n, -1 - %sub38.i10 = sub i32 %sub34.i9, %call14.i - %sub.i11 = add nsw i32 %n2_m, -1 - %mul19.i12 = mul nsw i32 %sub.i11, %n2_n - %add20.i13 = add nsw i32 %call14.i, %mul19.i12 - %32 = zext i32 %call25.i to i64 - %33 = add i32 %call14.i, -1 - %cmp28.i21 = icmp slt i32 %33, 0 - %cmp28.1.i39 = icmp slt i32 %call14.i, 0 - %34 = add i32 %call14.i, 1 - %cmp28.2.i53 = icmp slt i32 %34, 0 - %cmp35.2.i55 = icmp sgt i32 %34, %sub34.i9 - %cmp35.1.i41 = icmp sgt i32 %call14.i, %sub34.i9 - %sub40.1.i42 = select i1 %cmp35.1.i41, i32 %sub38.i10, i32 0 - %cmp35.i25 = icmp sgt i32 %33, %sub34.i9 - br i1 %cmp28.i21, label %for.cond5.preheader.i19.us, label %for.cond5.preheader.i19 - -for.cond5.preheader.i19.us: ; preds = %for.cond.preheader.i14, %if.end42.2.i67.us - %indvars.iv105.i.us = phi i64 [ %indvars.iv.next106.i.us, %if.end42.2.i67.us ], [ -1, %for.cond.preheader.i14 ] - %Val.0101.i.us = phi float [ %add50.2.i66.us, %if.end42.2.i67.us ], [ 0.000000e+00, %for.cond.preheader.i14 ] - %35 = add nsw i64 %indvars.iv105.i.us, %32 - %36 = trunc i64 %35 to i32 - %cmp12.i15.us = icmp slt i32 %36, 0 - %37 = mul i64 %indvars.iv105.i.us, 3 - %38 = add i64 %37, 4 - %39 = trunc i64 %indvars.iv105.i.us to i32 - %mul8.i16.us = mul nsw i32 %39, %n2_n - %add9.i17.us = add nsw i32 %mul8.i16.us, %add.i5 - %cmp16.i18.us = icmp sgt i32 %36, %sub.i11 - br i1 %cmp12.i15.us, label %if.end42.i.us, label %if.else.i.us - -if.else.i.us: ; preds = %for.cond5.preheader.i19.us - %add20.add9.i.us = select i1 %cmp16.i18.us, i32 %add20.i13, i32 %add9.i17.us - br label %if.end42.i.us - -if.end42.i.us: ; preds = %if.else.i.us, %for.cond5.preheader.i19.us - %call1.pn.i.us = phi i32 [ %call14.i, %for.cond5.preheader.i19.us ], [ %add20.add9.i.us, %if.else.i.us ] - %loadOffset.0.i20.us = add nsw i32 %call1.pn.i.us, -1 - %sub31.i23.us = sub nsw i32 %loadOffset.0.i20.us, %33 - %phitmp68 = sext i32 %sub31.i23.us to i64 - %arrayidx.i31.us = getelementptr inbounds float* %n2_Is, i64 %phitmp68 - %40 = load float* %arrayidx.i31.us, align 4, !tbaa !11 - %41 = add i64 %37, 3 - %arrayidx48.i32.us = getelementptr inbounds float* %n2_Sy, i64 %41 - %42 = load float* %arrayidx48.i32.us, align 4, !tbaa !11 - %mul49.i33.us = fmul fast float %40, %42 - %add50.i34.us = fadd fast float %Val.0101.i.us, %mul49.i33.us - br i1 %cmp12.i15.us, label %if.end26.1.i40.us, label %if.else.1.i.us - -if.else.1.i.us: ; preds = %if.end42.i.us - %add20.add9111.i.us = select i1 %cmp16.i18.us, i32 %add20.i13, i32 %add9.i17.us - br label %if.end26.1.i40.us - -if.end26.1.i40.us: ; preds = %if.else.1.i.us, %if.end42.i.us - %call1.pn.1.i.us = phi i32 [ %call14.i, %if.end42.i.us ], [ %add20.add9111.i.us, %if.else.1.i.us ] - %43 = sub i32 0, %call14.i - %loadOffset.1.1.i46.us.p = select i1 %cmp28.1.i39, i32 %43, i32 %sub40.1.i42 - %loadOffset.1.1.i46.us = add i32 %call1.pn.1.i.us, %loadOffset.1.1.i46.us.p - %idxprom.1.i47.us = sext i32 %loadOffset.1.1.i46.us to i64 - %arrayidx.1.i48.us = getelementptr inbounds float* %n2_Is, i64 %idxprom.1.i47.us - %44 = load float* %arrayidx.1.i48.us, align 4, !tbaa !11 - %arrayidx48.1.i49.us = getelementptr inbounds float* %n2_Sy, i64 %38 - %45 = load float* %arrayidx48.1.i49.us, align 4, !tbaa !11 - %mul49.1.i50.us = fmul fast float %44, %45 - %add50.1.i51.us = fadd fast float %add50.i34.us, %mul49.1.i50.us - br i1 %cmp12.i15.us, label %if.end26.2.i54.us, label %if.else.2.i.us - -if.else.2.i.us: ; preds = %if.end26.1.i40.us - %add20.add9112.i.us = select i1 %cmp16.i18.us, i32 %add20.i13, i32 %add9.i17.us - br label %if.end26.2.i54.us - -if.end26.2.i54.us: ; preds = %if.else.2.i.us, %if.end26.1.i40.us - %call1.pn.2.i.us = phi i32 [ %call14.i, %if.end26.1.i40.us ], [ %add20.add9112.i.us, %if.else.2.i.us ] - %loadOffset.0.2.i52.us = add nsw i32 %call1.pn.2.i.us, 1 - br i1 %cmp28.2.i53, label %if.then29.2.i60.us, label %if.else32.2.i58.us - -if.else32.2.i58.us: ; preds = %if.end26.2.i54.us - %sub40.2.i56.us = add i32 %call1.pn.2.i.us, %sub38.i10 - %sub40.2.loadOffset.0.2.i57.us = select i1 %cmp35.2.i55, i32 %sub40.2.i56.us, i32 %loadOffset.0.2.i52.us - br label %if.end42.2.i67.us - -if.then29.2.i60.us: ; preds = %if.end26.2.i54.us - %sub31.2.i59.us = sub nsw i32 %loadOffset.0.2.i52.us, %34 - br label %if.end42.2.i67.us - -if.end42.2.i67.us: ; preds = %if.then29.2.i60.us, %if.else32.2.i58.us - %loadOffset.1.2.i61.us = phi i32 [ %sub31.2.i59.us, %if.then29.2.i60.us ], [ %sub40.2.loadOffset.0.2.i57.us, %if.else32.2.i58.us ] - %idxprom.2.i62.us = sext i32 %loadOffset.1.2.i61.us to i64 - %arrayidx.2.i63.us = getelementptr inbounds float* %n2_Is, i64 %idxprom.2.i62.us - %46 = load float* %arrayidx.2.i63.us, align 4, !tbaa !11 - %47 = add i64 %37, 5 - %arrayidx48.2.i64.us = getelementptr inbounds float* %n2_Sy, i64 %47 - %48 = load float* %arrayidx48.2.i64.us, align 4, !tbaa !11 - %mul49.2.i65.us = fmul fast float %46, %48 - %add50.2.i66.us = fadd fast float %add50.1.i51.us, %mul49.2.i65.us - %indvars.iv.next106.i.us = add i64 %indvars.iv105.i.us, 1 - %lftr.wideiv72 = trunc i64 %indvars.iv.next106.i.us to i32 - %exitcond73 = icmp eq i32 %lftr.wideiv72, 2 - br i1 %exitcond73, label %vertical.exit, label %for.cond5.preheader.i19.us - -for.cond5.preheader.i19: ; preds = %for.cond.preheader.i14, %if.end42.2.i67 - %indvars.iv105.i = phi i64 [ %indvars.iv.next106.i, %if.end42.2.i67 ], [ -1, %for.cond.preheader.i14 ] - %Val.0101.i = phi float [ %add50.2.i66, %if.end42.2.i67 ], [ 0.000000e+00, %for.cond.preheader.i14 ] - %49 = add nsw i64 %indvars.iv105.i, %32 - %50 = trunc i64 %49 to i32 - %cmp12.i15 = icmp slt i32 %50, 0 - %51 = mul i64 %indvars.iv105.i, 3 - %52 = add i64 %51, 4 - %53 = trunc i64 %indvars.iv105.i to i32 - %mul8.i16 = mul nsw i32 %53, %n2_n - %add9.i17 = add nsw i32 %mul8.i16, %add.i5 - %cmp16.i18 = icmp sgt i32 %50, %sub.i11 - br i1 %cmp12.i15, label %if.end42.i, label %if.else.i - -if.else.i: ; preds = %for.cond5.preheader.i19 - %add20.add9.i = select i1 %cmp16.i18, i32 %add20.i13, i32 %add9.i17 - br label %if.end42.i - -if.end42.i: ; preds = %if.else.i, %for.cond5.preheader.i19 - %call1.pn.i = phi i32 [ %call14.i, %for.cond5.preheader.i19 ], [ %add20.add9.i, %if.else.i ] - %sub40.loadOffset.0.i27.v = select i1 %cmp35.i25, i32 %sub38.i10, i32 -1 - %sub40.loadOffset.0.i27 = add i32 %call1.pn.i, %sub40.loadOffset.0.i27.v - %phitmp = sext i32 %sub40.loadOffset.0.i27 to i64 - %arrayidx.i31 = getelementptr inbounds float* %n2_Is, i64 %phitmp - %54 = load float* %arrayidx.i31, align 4, !tbaa !11 - %55 = add i64 %51, 3 - %arrayidx48.i32 = getelementptr inbounds float* %n2_Sy, i64 %55 - %56 = load float* %arrayidx48.i32, align 4, !tbaa !11 - %mul49.i33 = fmul fast float %54, %56 - %add50.i34 = fadd fast float %Val.0101.i, %mul49.i33 - br i1 %cmp12.i15, label %if.end26.1.i40, label %if.else.1.i - -if.else.1.i: ; preds = %if.end42.i - %add20.add9111.i = select i1 %cmp16.i18, i32 %add20.i13, i32 %add9.i17 - br label %if.end26.1.i40 - -if.end26.1.i40: ; preds = %if.else.1.i, %if.end42.i - %call1.pn.1.i = phi i32 [ %call14.i, %if.end42.i ], [ %add20.add9111.i, %if.else.1.i ] - %57 = sub i32 0, %call14.i - %loadOffset.1.1.i46.p = select i1 %cmp28.1.i39, i32 %57, i32 %sub40.1.i42 - %loadOffset.1.1.i46 = add i32 %call1.pn.1.i, %loadOffset.1.1.i46.p - %idxprom.1.i47 = sext i32 %loadOffset.1.1.i46 to i64 - %arrayidx.1.i48 = getelementptr inbounds float* %n2_Is, i64 %idxprom.1.i47 - %58 = load float* %arrayidx.1.i48, align 4, !tbaa !11 - %arrayidx48.1.i49 = getelementptr inbounds float* %n2_Sy, i64 %52 - %59 = load float* %arrayidx48.1.i49, align 4, !tbaa !11 - %mul49.1.i50 = fmul fast float %58, %59 - %add50.1.i51 = fadd fast float %add50.i34, %mul49.1.i50 - br i1 %cmp12.i15, label %if.end26.2.i54, label %if.else.2.i - -if.else.2.i: ; preds = %if.end26.1.i40 - %add20.add9112.i = select i1 %cmp16.i18, i32 %add20.i13, i32 %add9.i17 - br label %if.end26.2.i54 - -if.end26.2.i54: ; preds = %if.else.2.i, %if.end26.1.i40 - %call1.pn.2.i = phi i32 [ %call14.i, %if.end26.1.i40 ], [ %add20.add9112.i, %if.else.2.i ] - %loadOffset.0.2.i52 = add nsw i32 %call1.pn.2.i, 1 - br i1 %cmp28.2.i53, label %if.then29.2.i60, label %if.else32.2.i58 - -if.else32.2.i58: ; preds = %if.end26.2.i54 - %sub40.2.i56 = add i32 %call1.pn.2.i, %sub38.i10 - %sub40.2.loadOffset.0.2.i57 = select i1 %cmp35.2.i55, i32 %sub40.2.i56, i32 %loadOffset.0.2.i52 - br label %if.end42.2.i67 - -if.then29.2.i60: ; preds = %if.end26.2.i54 - %sub31.2.i59 = sub nsw i32 %loadOffset.0.2.i52, %34 - br label %if.end42.2.i67 - -if.end42.2.i67: ; preds = %if.then29.2.i60, %if.else32.2.i58 - %loadOffset.1.2.i61 = phi i32 [ %sub31.2.i59, %if.then29.2.i60 ], [ %sub40.2.loadOffset.0.2.i57, %if.else32.2.i58 ] - %idxprom.2.i62 = sext i32 %loadOffset.1.2.i61 to i64 - %arrayidx.2.i63 = getelementptr inbounds float* %n2_Is, i64 %idxprom.2.i62 - %60 = load float* %arrayidx.2.i63, align 4, !tbaa !11 - %61 = add i64 %51, 5 - %arrayidx48.2.i64 = getelementptr inbounds float* %n2_Sy, i64 %61 - %62 = load float* %arrayidx48.2.i64, align 4, !tbaa !11 - %mul49.2.i65 = fmul fast float %60, %62 - %add50.2.i66 = fadd fast float %add50.1.i51, %mul49.2.i65 - %indvars.iv.next106.i = add i64 %indvars.iv105.i, 1 - %lftr.wideiv = trunc i64 %indvars.iv.next106.i to i32 - %exitcond = icmp eq i32 %lftr.wideiv, 2 - br i1 %exitcond, label %vertical.exit, label %for.cond5.preheader.i19 - -vertical.exit: ; preds = %if.end42.2.i67.us, %if.end42.2.i67, %horizontal.exit - %Val.2.i35 = phi float [ 0.000000e+00, %horizontal.exit ], [ %add50.2.i66.us, %if.end42.2.i67.us ], [ %add50.2.i66, %if.end42.2.i67 ] - %idxprom55.i36 = sext i32 %add.i5 to i64 - %arrayidx56.i37 = getelementptr inbounds float* %n2_Gy, i64 %idxprom55.i36 - store float %Val.2.i35, float* %arrayidx56.i37, align 4, !tbaa !11 - %63 = insertvalue %horizontal.vertical.ty undef, i32 %add.i, 0 - %64 = insertvalue %horizontal.vertical.ty %63, i32 %add.i5, 1 - ret %horizontal.vertical.ty %64 -} - -; Function Attrs: nounwind -define %WrapperHorizontal.WrapperVertical.ty @WrapperHorizontal_WrapperVertical(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_Sx, i64 %n1_bytesSx, float* nocapture out %n1_Gx, i64 %n1_bytesGx, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_Sy, i64 %n2_bytesSy, float* nocapture out %n2_Gy, i64 %n2_bytesGy, i32 %n2_m, i32 %n2_n) #1 { -entry: - %horizontal_vertical.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%horizontal.vertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @horizontal_vertical to i8*), i32 %n1_m, i32 %n1_n) - tail call void @llvm.hpvm.bind.output(i8* %horizontal_vertical.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 7, i32 7, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 6, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 5, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 4, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 3, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 2, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.output(i8* %horizontal_vertical.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 15, i32 15, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 14, i32 14, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 13, i32 13, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 12, i32 12, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 11, i32 11, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 10, i32 10, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 9, i32 9, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 8, i32 8, i1 false) - ret %WrapperHorizontal.WrapperVertical.ty undef -} - -attributes #0 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #1 = { nounwind } -attributes #2 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #3 = { noreturn nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #4 = { inlinehint nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #5 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #6 = { nounwind readonly "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #7 = { nounwind readnone } -attributes #8 = { nounwind readonly } -attributes #9 = { noreturn nounwind } - -!hpvm_hint_gpu = !{!0, !1} -!hpvm_hint_cpu = !{!2, !3, !4} -!hpvm_hint_spir = !{} - -!0 = metadata !{%emptyStruct (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @squareRoot} -!1 = metadata !{%horizontal.vertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @horizontal_vertical} -!2 = metadata !{%emptyStruct.23 (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperSquareRoot} -!3 = metadata !{%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @Gradient} -!4 = metadata !{%WrapperHorizontal.WrapperVertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperHorizontal_WrapperVertical} -!5 = metadata !{metadata !"any pointer", metadata !6} -!6 = metadata !{metadata !"omnipotent char", metadata !7} -!7 = metadata !{metadata !"Simple C/C++ TBAA"} -!8 = metadata !{metadata !"branch_weights", i32 64, i32 4} -!9 = metadata !{metadata !"int", metadata !6} -!10 = metadata !{metadata !"long", metadata !6} -!11 = metadata !{metadata !"float", metadata !6} -!12 = metadata !{metadata !"vtable pointer", metadata !7} -!13 = metadata !{metadata !"_ZTSSt12_Ios_Iostate", metadata !6} diff --git a/hpvm/test/pipeline/laplacian.hpvm.merged.experiments.notimer.ll b/hpvm/test/pipeline/laplacian.hpvm.merged.experiments.notimer.ll deleted file mode 100644 index aa4a0d19a0ec80910b8d82b03de018ad41470a22..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/laplacian.hpvm.merged.experiments.notimer.ll +++ /dev/null @@ -1,2123 +0,0 @@ -; ModuleID = 'build/Laplacian_default/main.hpvm.ll' -target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" - -%"class.std::ios_base::Init" = type { i8 } -%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" } -%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* } -%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" } -%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* } -%"class.std::ios_base" = type { i32 (...)**, i64, i64, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" } -%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 } -%"struct.std::ios_base::_Words" = type { i8*, i64 } -%"class.std::locale" = type { %"class.std::locale::_Impl"* } -%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i64, %"class.std::locale::facet"**, i8** } -%"class.std::locale::facet" = type { i32 (...)**, i32 } -%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" } -%"class.std::ctype" = type { %"class.std::locale::facet", %struct.__locale_struct*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 } -%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] } -%struct.__locale_data = type opaque -%"class.std::num_put" = type { %"class.std::locale::facet" } -%"class.std::num_get" = type { %"class.std::locale::facet" } -%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] } -%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 } -%"class.std::allocator" = type { i8 } -%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" } -%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" = type { i64, i64, i32 } -%struct.InStruct = type <{ float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32 }> -%emptyStruct = type <{}> -%emptyStruct.23 = type <{}> -%emptyStruct.24 = type <{}> -%"class.cv::VideoCapture" = type { i32 (...)**, %"struct.cv::Ptr", %"struct.cv::Ptr.0" } -%"struct.cv::Ptr" = type { %"struct.cv::detail::PtrOwner"*, %struct.CvCapture* } -%"struct.cv::detail::PtrOwner" = type { i32 (...)**, i32 } -%struct.CvCapture = type opaque -%"struct.cv::Ptr.0" = type { %"struct.cv::detail::PtrOwner"*, %"class.cv::IVideoCapture"* } -%"class.cv::IVideoCapture" = type opaque -%"class.cv::Mat" = type { i32, i32, i32, i32, i8*, i8*, i8*, i8*, %"class.cv::MatAllocator"*, %"struct.cv::UMatData"*, %"struct.cv::MatSize", %"struct.cv::MatStep" } -%"class.cv::MatAllocator" = type { i32 (...)** } -%"struct.cv::UMatData" = type { %"class.cv::MatAllocator"*, %"class.cv::MatAllocator"*, i32, i32, i8*, i8*, i64, i32, i8*, i8*, i32 } -%"struct.cv::MatSize" = type { i32* } -%"struct.cv::MatStep" = type { i64*, [2 x i64] } -%"class.cv::_InputArray" = type { i32, i8*, %"class.cv::Size_" } -%"class.cv::Size_" = type { i32, i32 } -%"class.cv::_OutputArray" = type { %"class.cv::_InputArray" } -%struct.pb_TimerSet = type { i32, %struct.pb_async_time_marker_list*, i64, i64, [24 x %struct.pb_Timer], [24 x %struct.pb_SubTimerList*] } -%struct.pb_async_time_marker_list = type { i8*, i32, i8*, %struct.pb_async_time_marker_list* } -%struct.pb_Timer = type { i32, i64, i64 } -%struct.pb_SubTimerList = type { %struct.pb_SubTimer*, %struct.pb_SubTimer* } -%struct.pb_SubTimer = type { i8*, %struct.pb_Timer, %struct.pb_SubTimer* } -%"class.cv::String" = type { i8*, i64 } -%struct.pb_Parameters = type { i8*, i8** } -%dilate.erode.ty = type <{ i32, i32 }> -%WrapperDilate.WrapperErode.ty = type <{ i32, i32 }> - -@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1 -@__dso_handle = external unnamed_addr global i8 -@input_window = global %"class.std::basic_string" zeroinitializer, align 8 -@.str = private unnamed_addr constant [27 x i8] c"GPU Pipeline - Input Video\00", align 1 -@output_window = global %"class.std::basic_string" zeroinitializer, align 8 -@.str3 = private unnamed_addr constant [28 x i8] c"GPU Pipeline - Edge Mapping\00", align 1 -@_ZSt4cout = external global %"class.std::basic_ostream" -@.str4 = private unnamed_addr constant [13 x i8] c"Using OpenCV\00", align 1 -@.str5 = private unnamed_addr constant [10 x i8] c"3.0.0-dev\00", align 1 -@.str6 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 -@stderr = external global %struct._IO_FILE* -@.str7 = private unnamed_addr constant [32 x i8] c"Expecting input image filename\0A\00", align 1 -@.str8 = private unnamed_addr constant [21 x i8] c"Reading video file: \00", align 1 -@.str9 = private unnamed_addr constant [26 x i8] c"Could not open video file\00", align 1 -@.str10 = private unnamed_addr constant [20 x i8] c"Number of frames = \00", align 1 -@.str11 = private unnamed_addr constant [19 x i8] c"Image dimension = \00", align 1 -@.str12 = private unnamed_addr constant [50 x i8] c"Expecting contiguous storage of image in memory!\0A\00", align 1 -@.str13 = private unnamed_addr constant [79 x i8] c"src.isContinuous() && L.isContinuous() && D.isContinuous() && E.isContinuous()\00", align 1 -@.str14 = private unnamed_addr constant [22 x i8] c"src/Laplacian/main.cc\00", align 1 -@__PRETTY_FUNCTION__.main = private unnamed_addr constant [23 x i8] c"int main(int, char **)\00", align 1 -@_ZZ4mainE1B = private unnamed_addr constant [9 x float] [float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00], align 16 -@.str15 = private unnamed_addr constant [39 x i8] c"src.size[0]*src.size[1] % block_x == 0\00", align 1 -@.str16 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@.str17 = private unnamed_addr constant [4 x i8] c" x \00", align 1 -@.str18 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@_ZNSs4_Rep20_S_empty_rep_storageE = external global [0 x i64] -@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }] - -declare void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*) #0 - -declare void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*) #0 - -; Function Attrs: nounwind -declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #1 - -declare void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"*, i8*, %"class.std::allocator"*) #0 - -; Function Attrs: nounwind uwtable -define available_externally void @_ZNSsD1Ev(%"class.std::basic_string"* nocapture %this) unnamed_addr #2 align 2 { -entry: - %ref.tmp.i = alloca %"class.std::allocator", align 1 - %0 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %0) #1 - %_M_p.i.i.i = getelementptr inbounds %"class.std::basic_string"* %this, i64 0, i32 0, i32 0 - %1 = load i8** %_M_p.i.i.i, align 8, !tbaa !5 - %arrayidx.i.i = getelementptr inbounds i8* %1, i64 -24 - %2 = bitcast i8* %arrayidx.i.i to %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"* - %cmp.i.i = icmp eq i8* %arrayidx.i.i, bitcast ([0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*) - br i1 %cmp.i.i, label %_ZNSsD2Ev.exit, label %if.then.i.i, !prof !8 - -if.then.i.i: ; preds = %entry - %_M_refcount.i.i = getelementptr inbounds i8* %1, i64 -8 - %3 = bitcast i8* %_M_refcount.i.i to i32* - br i1 icmp ne (i8* bitcast (i32 (i64)* @pthread_cancel to i8*), i8* null), label %if.then.i.i.i, label %if.else.i.i.i - -if.then.i.i.i: ; preds = %if.then.i.i - %4 = atomicrmw add i32* %3, i32 -1 seq_cst - br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i - -if.else.i.i.i: ; preds = %if.then.i.i - %5 = load i32* %3, align 4, !tbaa !9 - %add.i.i.i.i = add nsw i32 %5, -1 - store i32 %add.i.i.i.i, i32* %3, align 4, !tbaa !9 - br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i - -_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i: ; preds = %if.else.i.i.i, %if.then.i.i.i - %retval.0.i.i.i = phi i32 [ %4, %if.then.i.i.i ], [ %5, %if.else.i.i.i ] - %cmp3.i.i = icmp slt i32 %retval.0.i.i.i, 1 - br i1 %cmp3.i.i, label %if.then4.i.i, label %_ZNSsD2Ev.exit - -if.then4.i.i: ; preds = %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i - call void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"* %2, %"class.std::allocator"* %ref.tmp.i) #1 - br label %_ZNSsD2Ev.exit - -_ZNSsD2Ev.exit: ; preds = %if.then4.i.i, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i, %entry - call void @llvm.lifetime.end(i64 1, i8* %0) #1 - ret void -} - -; Function Attrs: nounwind uwtable -define void @packData(%struct.InStruct* nocapture %args, float* %I, i64 %bytesI, float* %B, i64 %bytesB, float* %D, i64 %bytesD, float* %E, i64 %bytesE, float* %L, i64 %bytesL, i32 %m, i32 %n) #2 { -entry: - %I1 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 0 - store float* %I, float** %I1, align 1, !tbaa !5 - %bytesI2 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 1 - store i64 %bytesI, i64* %bytesI2, align 1, !tbaa !10 - %B3 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 2 - store float* %B, float** %B3, align 1, !tbaa !5 - %bytesB4 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 3 - store i64 %bytesB, i64* %bytesB4, align 1, !tbaa !10 - %D5 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 4 - store float* %D, float** %D5, align 1, !tbaa !5 - %bytesD6 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 5 - store i64 %bytesD, i64* %bytesD6, align 1, !tbaa !10 - %E7 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 6 - store float* %E, float** %E7, align 1, !tbaa !5 - %bytesE8 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 7 - store i64 %bytesE, i64* %bytesE8, align 1, !tbaa !10 - %L9 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 8 - store float* %L, float** %L9, align 1, !tbaa !5 - %bytesL10 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 9 - store i64 %bytesL, i64* %bytesL10, align 1, !tbaa !10 - %m11 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 10 - store i32 %m, i32* %m11, align 1, !tbaa !9 - %n12 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 11 - store i32 %n, i32* %n12, align 1, !tbaa !9 - ret void -} - -; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 - -; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 - -; Function Attrs: nounwind uwtable -define %emptyStruct @lincomb(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %D, i64 %bytesD, float* nocapture in %E, i64 %bytesE, float* nocapture out %L, i64 %bytesL, i32 %m, i32 %n, i32 %dummyD, i32 %dummyE) #2 { -entry: - %call3 = tail call i8* @llvm.hpvm.getNode() - %call14 = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3) - %call25 = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3) - %cmp = icmp slt i32 %call14, %n - %cmp3 = icmp slt i32 %call25, %m - %or.cond = and i1 %cmp, %cmp3 - br i1 %or.cond, label %if.then, label %if.end - -if.then: ; preds = %entry - %mul = mul nsw i32 %call25, %n - %add = add nsw i32 %mul, %call14 - %idxprom = sext i32 %add to i64 - %arrayidx = getelementptr inbounds float* %D, i64 %idxprom - %0 = load float* %arrayidx, align 4, !tbaa !11 - %arrayidx5 = getelementptr inbounds float* %E, i64 %idxprom - %1 = load float* %arrayidx5, align 4, !tbaa !11 - %add6 = fadd fast float %0, %1 - %arrayidx8 = getelementptr inbounds float* %Is, i64 %idxprom - %2 = load float* %arrayidx8, align 4, !tbaa !11 - %mul9 = fmul fast float %2, 2.000000e+00 - %sub = fsub fast float %add6, %mul9 - %arrayidx11 = getelementptr inbounds float* %L, i64 %idxprom - store float %sub, float* %arrayidx11, align 4, !tbaa !11 - br label %if.end - -if.end: ; preds = %if.then, %entry - ret %emptyStruct undef -} - -; Function Attrs: nounwind uwtable -define %emptyStruct.23 @WrapperLincomb(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %D, i64 %bytesD, float* nocapture in %E, i64 %bytesE, float* nocapture out %L, i64 %bytesL, i32 %m, i32 %n, i32 %dummyD, i32 %dummyE) #2 { -entry: - %lincomb.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%emptyStruct (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @lincomb to i8*), i32 %m, i32 %n) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 2, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 3, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 4, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 5, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 6, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 7, i32 7, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 8, i32 8, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 9, i32 9, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 10, i32 10, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 11, i32 11, i1 false) - ret %emptyStruct.23 undef -} - -; Function Attrs: nounwind uwtable -define %emptyStruct.24 @LaplacianEstimate(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %B, i64 %bytesB, float* nocapture out %D, i64 %bytesD, float* nocapture out %E, i64 %bytesE, float* nocapture out %L, i64 %bytesL, i32 %m, i32 %n) #2 { -entry: - %WrapperDilate_WrapperErode.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%WrapperDilate.WrapperErode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperDilate_WrapperErode to i8*)) - %WrapperLincomb.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%emptyStruct.23 (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperLincomb to i8*)) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 2, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 3, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 4, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 5, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 10, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 11, i32 7, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 0, i32 8, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 1, i32 9, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 2, i32 10, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 3, i32 11, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 6, i32 12, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 7, i32 13, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 10, i32 14, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 11, i32 15, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 4, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 5, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 6, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 7, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 8, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 9, i32 7, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 10, i32 8, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 11, i32 9, i1 false) - %output.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperDilate_WrapperErode.node, i8* %WrapperLincomb.node, i1 false, i32 0, i32 10, i1 false) - %output1.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperDilate_WrapperErode.node, i8* %WrapperLincomb.node, i1 false, i32 1, i32 11, i1 false) - ret %emptyStruct.24 undef -} - -; Function Attrs: nounwind uwtable -define void @_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #2 { -entry: - %ref.tmp = alloca %"class.cv::_InputArray", align 8 - %ref.tmp2 = alloca %"class.cv::_OutputArray", align 8 - %ref.tmp3 = alloca %"class.cv::_OutputArray", align 8 - %0 = bitcast %"class.cv::VideoCapture"* %VC to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** - %vtable = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %0, align 8, !tbaa !12 - %vfn = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable, i64 8 - %1 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn, align 8 - %call = call %"class.cv::VideoCapture"* %1(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #1 - %flags.i = getelementptr inbounds %"class.cv::Mat"* %F, i64 0, i32 0 - %2 = load i32* %flags.i, align 4, !tbaa !9 - %shr2.i = and i32 %2, 4088 - %cmp = icmp eq i32 %shr2.i, 16 - br i1 %cmp, label %if.then, label %entry.if.end_crit_edge - -entry.if.end_crit_edge: ; preds = %entry - %.pre = bitcast %"class.cv::Mat"* %F to i8* - br label %if.end - -if.then: ; preds = %entry - %width.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 0 - store i32 0, i32* %width.i.i.i.i, align 8, !tbaa !9 - %height.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 1 - store i32 0, i32* %height.i.i.i.i, align 4, !tbaa !9 - %3 = bitcast %"class.cv::Mat"* %F to i8* - %flags.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 0 - store i32 16842752, i32* %flags.i.i.i, align 8, !tbaa !9 - %obj.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 1 - store i8* %3, i8** %obj.i.i.i, align 8, !tbaa !5 - %flags.i.i.i.i9 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 0 - %obj.i.i.i.i10 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 1 - %4 = bitcast i8** %obj.i.i.i.i10 to i8* - call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i9, align 8, !tbaa !9 - store i8* %3, i8** %obj.i.i.i.i10, align 8, !tbaa !5 - call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp, %"class.cv::_OutputArray"* %ref.tmp2, i32 6, i32 0) #1 - br label %if.end - -if.end: ; preds = %if.then, %entry.if.end_crit_edge - %.pre-phi = phi i8* [ %.pre, %entry.if.end_crit_edge ], [ %3, %if.then ] - %flags.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 0 - %obj.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 1 - %5 = bitcast i8** %obj.i.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %5, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i, align 8, !tbaa !9 - store i8* %.pre-phi, i8** %obj.i.i.i.i, align 8, !tbaa !5 - call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %F, %"class.cv::_OutputArray"* %ref.tmp3, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1 - ret void -} - -declare void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"*, %"class.cv::_OutputArray"*, i32, i32) #0 - -declare void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"*, %"class.cv::_OutputArray"*, i32, double, double) #0 - -; Function Attrs: nounwind uwtable -define i32 @main(i32 %argc, i8** %argv) #2 { -entry: - %ref.tmp.i311 = alloca %"class.cv::_InputArray", align 8 - %ref.tmp2.i312 = alloca %"class.cv::_OutputArray", align 8 - %ref.tmp3.i313 = alloca %"class.cv::_OutputArray", align 8 - %sz.i.i.i = alloca [2 x i32], align 4 - %ref.tmp.i = alloca %"class.cv::_InputArray", align 8 - %ref.tmp2.i = alloca %"class.cv::_OutputArray", align 8 - %ref.tmp3.i = alloca %"class.cv::_OutputArray", align 8 - %argc.addr = alloca i32, align 4 - %timers = alloca %struct.pb_TimerSet, align 8 - %cap = alloca %"class.cv::VideoCapture", align 8 - %ref.tmp = alloca %"class.cv::String", align 8 - %ref.tmp24 = alloca %"class.cv::String", align 8 - %ref.tmp25 = alloca %"class.cv::String", align 8 - %ref.tmp26 = alloca %"class.cv::String", align 8 - %ref.tmp27 = alloca %"class.cv::String", align 8 - %src = alloca %"class.cv::Mat", align 8 - %D = alloca %"class.cv::Mat", align 8 - %E = alloca %"class.cv::Mat", align 8 - %L = alloca %"class.cv::Mat", align 8 - %ref.tmp36 = alloca %"class.cv::Mat", align 8 - %ref.tmp42 = alloca %"class.cv::Mat", align 8 - %ref.tmp48 = alloca %"class.cv::Mat", align 8 - %B = alloca [9 x float], align 16 - %in = alloca %"class.cv::Mat", align 8 - %out = alloca %"class.cv::Mat", align 8 - %ref.tmp76 = alloca %"class.cv::VideoCapture", align 8 - %ref.tmp77 = alloca %"class.cv::String", align 8 - store i32 %argc, i32* %argc.addr, align 4, !tbaa !9 - %0 = bitcast %struct.pb_TimerSet* %timers to i8* - call void @llvm.lifetime.start(i64 800, i8* %0) #1 - %call1.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([13 x i8]* @.str4, i64 0, i64 0), i64 12) #1 - %call1.i122 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([10 x i8]* @.str5, i64 0, i64 0), i64 9) #1 - %call1.i124 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %call3 = call %struct.pb_Parameters* @pb_ReadParameters(i32* %argc.addr, i8** %argv) #1 - %inpFiles = getelementptr inbounds %struct.pb_Parameters* %call3, i64 0, i32 1 - %1 = load i8*** %inpFiles, align 8, !tbaa !5 - %2 = load i8** %1, align 8, !tbaa !5 - %cmp = icmp eq i8* %2, null - br i1 %cmp, label %if.then, label %lor.lhs.false - -lor.lhs.false: ; preds = %entry - %arrayidx5 = getelementptr inbounds i8** %1, i64 1 - %3 = load i8** %arrayidx5, align 8, !tbaa !5 - %cmp6 = icmp eq i8* %3, null - br i1 %cmp6, label %if.end, label %if.then - -if.then: ; preds = %lor.lhs.false, %entry - %4 = load %struct._IO_FILE** @stderr, align 8, !tbaa !5 - %5 = call i64 @fwrite(i8* getelementptr inbounds ([32 x i8]* @.str7, i64 0, i64 0), i64 31, i64 1, %struct._IO_FILE* %4) - call void @exit(i32 -1) #8 - unreachable - -if.end: ; preds = %lor.lhs.false - %call1.i126 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([21 x i8]* @.str8, i64 0, i64 0), i64 20) #1 - %6 = load i8*** %inpFiles, align 8, !tbaa !5 - %7 = load i8** %6, align 8, !tbaa !5 - %tobool.i = icmp eq i8* %7, null - br i1 %tobool.i, label %if.then.i, label %if.else.i - -if.then.i: ; preds = %if.end - %vtable.i = load i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !12 - %vbase.offset.ptr.i = getelementptr i8* %vtable.i, i64 -24 - %8 = bitcast i8* %vbase.offset.ptr.i to i64* - %vbase.offset.i = load i64* %8, align 8 - %add.ptr.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i - %9 = bitcast i8* %add.ptr.i to %"class.std::basic_ios"* - %add.ptr.sum.i = add i64 %vbase.offset.i, 32 - %_M_streambuf_state.i.i.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %add.ptr.sum.i - %10 = bitcast i8* %_M_streambuf_state.i.i.i to i32* - %11 = load i32* %10, align 4, !tbaa !13 - %or.i.i.i = or i32 %11, 1 - call void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"* %9, i32 %or.i.i.i) #1 - br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - -if.else.i: ; preds = %if.end - %call.i.i127 = call i64 @strlen(i8* %7) #1 - %call1.i128 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* %7, i64 %call.i.i127) #1 - br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - -_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit: ; preds = %if.else.i, %if.then.i - %call1.i130 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %12 = bitcast %"class.cv::VideoCapture"* %cap to i8* - call void @llvm.lifetime.start(i64 40, i8* %12) #1 - %13 = load i8*** %inpFiles, align 8, !tbaa !5 - %14 = load i8** %13, align 8, !tbaa !5 - %tobool.i.i = icmp eq i8* %14, null - %15 = bitcast %"class.cv::String"* %ref.tmp to i8* - call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false) #1 - br i1 %tobool.i.i, label %_ZN2cv6StringC1EPKc.exit, label %if.end.i.i - -if.end.i.i: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - %call.i.i132 = call i64 @strlen(i8* %14) #9 - %call2.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp, i64 %call.i.i132) #1 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i, i8* %14, i64 %call.i.i132, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1EPKc.exit - -_ZN2cv6StringC1EPKc.exit: ; preds = %if.end.i.i, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %cap, %"class.cv::String"* %ref.tmp) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp) #1 - %call15 = call zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"* %cap) #1 - br i1 %call15, label %if.end19, label %if.then16 - -if.then16: ; preds = %_ZN2cv6StringC1EPKc.exit - %call1.i134 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([26 x i8]* @.str9, i64 0, i64 0), i64 25) #1 - %call1.i137 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - br label %cleanup - -if.end19: ; preds = %_ZN2cv6StringC1EPKc.exit - %call20 = call double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"* %cap, i32 7) #1 - %conv = fptosi double %call20 to i32 - %call1.i140 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([20 x i8]* @.str10, i64 0, i64 0), i64 19) #1 - %call22 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %conv) #1 - %call1.i143 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call22, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %16 = bitcast %"class.cv::String"* %ref.tmp24 to i8* - call void @llvm.memset.p0i8.i64(i8* %16, i8 0, i64 16, i32 8, i1 false) #1 - %17 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i = getelementptr inbounds i8* %17, i64 -24 - %_M_length.i.i.i.i = bitcast i8* %arrayidx.i.i.i.i.i to i64* - %18 = load i64* %_M_length.i.i.i.i, align 8, !tbaa !10 - %cmp.i.i.i = icmp eq i64 %18, 0 - br i1 %cmp.i.i.i, label %_ZN2cv6StringC1ERKSs.exit, label %if.then.i.i - -if.then.i.i: ; preds = %if.end19 - %call3.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp24, i64 %18) #1 - %19 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i, i8* %19, i64 %18, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit - -_ZN2cv6StringC1ERKSs.exit: ; preds = %if.then.i.i, %if.end19 - call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp24, i32 1) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp24) #1 - %20 = bitcast %"class.cv::String"* %ref.tmp25 to i8* - call void @llvm.memset.p0i8.i64(i8* %20, i8 0, i64 16, i32 8, i1 false) #1 - %21 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i145 = getelementptr inbounds i8* %21, i64 -24 - %_M_length.i.i.i.i146 = bitcast i8* %arrayidx.i.i.i.i.i145 to i64* - %22 = load i64* %_M_length.i.i.i.i146, align 8, !tbaa !10 - %cmp.i.i.i147 = icmp eq i64 %22, 0 - br i1 %cmp.i.i.i147, label %_ZN2cv6StringC1ERKSs.exit150, label %if.then.i.i149 - -if.then.i.i149: ; preds = %_ZN2cv6StringC1ERKSs.exit - %call3.i.i148 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp25, i64 %22) #1 - %23 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i148, i8* %23, i64 %22, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit150 - -_ZN2cv6StringC1ERKSs.exit150: ; preds = %if.then.i.i149, %_ZN2cv6StringC1ERKSs.exit - call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp25, i32 1) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp25) #1 - %24 = bitcast %"class.cv::String"* %ref.tmp26 to i8* - call void @llvm.memset.p0i8.i64(i8* %24, i8 0, i64 16, i32 8, i1 false) #1 - %25 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i151 = getelementptr inbounds i8* %25, i64 -24 - %_M_length.i.i.i.i152 = bitcast i8* %arrayidx.i.i.i.i.i151 to i64* - %26 = load i64* %_M_length.i.i.i.i152, align 8, !tbaa !10 - %cmp.i.i.i153 = icmp eq i64 %26, 0 - br i1 %cmp.i.i.i153, label %_ZN2cv6StringC1ERKSs.exit156, label %if.then.i.i155 - -if.then.i.i155: ; preds = %_ZN2cv6StringC1ERKSs.exit150 - %call3.i.i154 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp26, i64 %26) #1 - %27 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i154, i8* %27, i64 %26, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit156 - -_ZN2cv6StringC1ERKSs.exit156: ; preds = %if.then.i.i155, %_ZN2cv6StringC1ERKSs.exit150 - call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp26, i32 0, i32 0) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp26) #1 - %28 = bitcast %"class.cv::String"* %ref.tmp27 to i8* - call void @llvm.memset.p0i8.i64(i8* %28, i8 0, i64 16, i32 8, i1 false) #1 - %29 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - %arrayidx.i.i.i.i.i157 = getelementptr inbounds i8* %29, i64 -24 - %_M_length.i.i.i.i158 = bitcast i8* %arrayidx.i.i.i.i.i157 to i64* - %30 = load i64* %_M_length.i.i.i.i158, align 8, !tbaa !10 - %cmp.i.i.i159 = icmp eq i64 %30, 0 - br i1 %cmp.i.i.i159, label %_ZN2cv6StringC1ERKSs.exit162, label %if.then.i.i161 - -if.then.i.i161: ; preds = %_ZN2cv6StringC1ERKSs.exit156 - %call3.i.i160 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp27, i64 %30) #1 - %31 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i160, i8* %31, i64 %30, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1ERKSs.exit162 - -_ZN2cv6StringC1ERKSs.exit162: ; preds = %if.then.i.i161, %_ZN2cv6StringC1ERKSs.exit156 - call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp27, i32 0, i32 540) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp27) #1 - %32 = bitcast %"class.cv::Mat"* %src to i8* - call void @llvm.lifetime.start(i64 96, i8* %32) #1 - %flags.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i, align 8, !tbaa !9 - %dims.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 1 - %rows.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 2 - %p.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 10, i32 0 - %33 = bitcast i32* %dims.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %33, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i, i32** %p.i.i.i.i, align 8, !tbaa !5 - %arraydecay.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i, i64** %p.i.i3.i.i, align 8, !tbaa !5 - %34 = bitcast i64* %arraydecay.i.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %34, i8 0, i64 16, i32 8, i1 false) #1 - %35 = bitcast %"class.cv::Mat"* %D to i8* - call void @llvm.lifetime.start(i64 96, i8* %35) #1 - %flags.i.i163 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i163, align 8, !tbaa !9 - %dims.i.i164 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 1 - %rows.i.i165 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 2 - %p.i.i.i.i166 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 10, i32 0 - %36 = bitcast i32* %dims.i.i164 to i8* - call void @llvm.memset.p0i8.i64(i8* %36, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i165, i32** %p.i.i.i.i166, align 8, !tbaa !5 - %arraydecay.i.i.i.i167 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i168 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i167, i64** %p.i.i3.i.i168, align 8, !tbaa !5 - %37 = bitcast i64* %arraydecay.i.i.i.i167 to i8* - call void @llvm.memset.p0i8.i64(i8* %37, i8 0, i64 16, i32 8, i1 false) #1 - %38 = bitcast %"class.cv::Mat"* %E to i8* - call void @llvm.lifetime.start(i64 96, i8* %38) #1 - %flags.i.i169 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i169, align 8, !tbaa !9 - %dims.i.i170 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 1 - %rows.i.i171 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 2 - %p.i.i.i.i172 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 10, i32 0 - %39 = bitcast i32* %dims.i.i170 to i8* - call void @llvm.memset.p0i8.i64(i8* %39, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i171, i32** %p.i.i.i.i172, align 8, !tbaa !5 - %arraydecay.i.i.i.i173 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i174 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i173, i64** %p.i.i3.i.i174, align 8, !tbaa !5 - %40 = bitcast i64* %arraydecay.i.i.i.i173 to i8* - call void @llvm.memset.p0i8.i64(i8* %40, i8 0, i64 16, i32 8, i1 false) #1 - %41 = bitcast %"class.cv::Mat"* %L to i8* - call void @llvm.lifetime.start(i64 96, i8* %41) #1 - %flags.i.i175 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i175, align 8, !tbaa !9 - %dims.i.i176 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 1 - %rows.i.i177 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 2 - %p.i.i.i.i178 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 10, i32 0 - %42 = bitcast i32* %dims.i.i176 to i8* - call void @llvm.memset.p0i8.i64(i8* %42, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i177, i32** %p.i.i.i.i178, align 8, !tbaa !5 - %arraydecay.i.i.i.i179 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i180 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i179, i64** %p.i.i3.i.i180, align 8, !tbaa !5 - %43 = bitcast i64* %arraydecay.i.i.i.i179 to i8* - call void @llvm.memset.p0i8.i64(i8* %43, i8 0, i64 16, i32 8, i1 false) #1 - %44 = bitcast %"class.cv::_InputArray"* %ref.tmp.i to i8* - call void @llvm.lifetime.start(i64 24, i8* %44) #1 - %45 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i to i8* - call void @llvm.lifetime.start(i64 24, i8* %45) #1 - %46 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i to i8* - call void @llvm.lifetime.start(i64 24, i8* %46) #1 - %47 = bitcast %"class.cv::VideoCapture"* %cap to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** - %vtable.i181 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12 - %vfn.i = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i181, i64 8 - %48 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i, align 8 - %call.i = call %"class.cv::VideoCapture"* %48(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1 - %49 = load i32* %flags.i.i, align 8, !tbaa !9 - %shr2.i.i = and i32 %49, 4088 - %cmp.i = icmp eq i32 %shr2.i.i, 16 - br i1 %cmp.i, label %if.then.i183, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - -if.then.i183: ; preds = %_ZN2cv6StringC1ERKSs.exit162 - %width.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 0 - store i32 0, i32* %width.i.i.i.i.i, align 8, !tbaa !9 - %height.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 1 - store i32 0, i32* %height.i.i.i.i.i, align 4, !tbaa !9 - %flags.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 0 - store i32 16842752, i32* %flags.i.i.i.i, align 8, !tbaa !9 - %obj.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 1 - store i8* %32, i8** %obj.i.i.i.i, align 8, !tbaa !5 - %flags.i.i.i.i9.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 0 - %obj.i.i.i.i10.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 1 - %50 = bitcast i8** %obj.i.i.i.i10.i to i8* - call void @llvm.memset.p0i8.i64(i8* %50, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i9.i, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i10.i, align 8, !tbaa !5 - call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i, %"class.cv::_OutputArray"* %ref.tmp2.i, i32 6, i32 0) #1 - br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - -_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit: ; preds = %if.then.i183, %_ZN2cv6StringC1ERKSs.exit162 - %flags.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 0 - %obj.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 1 - %51 = bitcast i8** %obj.i.i.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %51, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i.i, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i.i, align 8, !tbaa !5 - call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1 - call void @llvm.lifetime.end(i64 24, i8* %44) #1 - call void @llvm.lifetime.end(i64 24, i8* %45) #1 - call void @llvm.lifetime.end(i64 24, i8* %46) #1 - %call1.i185 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([19 x i8]* @.str11, i64 0, i64 0), i64 18) #1 - %52 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %arrayidx.i = getelementptr inbounds i32* %52, i64 1 - %53 = load i32* %arrayidx.i, align 4, !tbaa !9 - %54 = load i32* %52, align 4, !tbaa !9 - %call1.i.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str16, i64 0, i64 0), i64 1) #1 - %call1.i187 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %53) #1 - %call1.i7.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call1.i187, i8* getelementptr inbounds ([4 x i8]* @.str17, i64 0, i64 0), i64 3) #1 - %call3.i = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call1.i187, i32 %54) #1 - %call1.i9.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str18, i64 0, i64 0), i64 1) #1 - %call1.i189 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1 - %55 = load i32* %flags.i.i, align 8, !tbaa !9 - %and.i = and i32 %55, 16384 - %cmp.i191 = icmp eq i32 %and.i, 0 - br i1 %cmp.i191, label %if.then33, label %if.end35 - -if.then33: ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - %call1.i193 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([50 x i8]* @.str12, i64 0, i64 0), i64 49) #1 - call void @exit(i32 -1) #8 - unreachable - -if.end35: ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit - %56 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %57 = load i32* %56, align 4, !tbaa !9 - %arrayidx.i197 = getelementptr inbounds i32* %56, i64 1 - %58 = load i32* %arrayidx.i197, align 4, !tbaa !9 - %flags.i.i198 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i198, align 8, !tbaa !9 - %dims.i.i199 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 1 - %rows.i.i200 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 2 - %p.i.i.i.i201 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 10, i32 0 - %59 = bitcast i32* %dims.i.i199 to i8* - call void @llvm.memset.p0i8.i64(i8* %59, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i200, i32** %p.i.i.i.i201, align 8, !tbaa !5 - %arraydecay.i.i.i.i202 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i203 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i202, i64** %p.i.i3.i.i203, align 8, !tbaa !5 - %60 = bitcast i64* %arraydecay.i.i.i.i202 to i8* - call void @llvm.memset.p0i8.i64(i8* %60, i8 0, i64 16, i32 8, i1 false) #1 - %61 = bitcast [2 x i32]* %sz.i.i.i to i8* - call void @llvm.lifetime.start(i64 8, i8* %61) #1 - %arrayinit.begin.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 0 - store i32 %57, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9 - %arrayinit.element.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 1 - store i32 %58, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9 - call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp36, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1 - call void @llvm.lifetime.end(i64 8, i8* %61) #1 - %call41 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %D, %"class.cv::Mat"* %ref.tmp36) - %u.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 9 - %62 = load %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5 - %tobool.i.i.i = icmp eq %"struct.cv::UMatData"* %62, null - br i1 %tobool.i.i.i, label %if.end.i.i.i, label %land.lhs.true.i.i.i - -land.lhs.true.i.i.i: ; preds = %if.end35 - %refcount.i.i.i = getelementptr inbounds %"struct.cv::UMatData"* %62, i64 0, i32 3 - %63 = atomicrmw add i32* %refcount.i.i.i, i32 -1 acq_rel - %cmp.i.i.i204 = icmp eq i32 %63, 1 - br i1 %cmp.i.i.i204, label %if.then.i.i.i, label %if.end.i.i.i - -if.then.i.i.i: ; preds = %land.lhs.true.i.i.i - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp36) #1 - br label %if.end.i.i.i - -if.end.i.i.i: ; preds = %if.then.i.i.i, %land.lhs.true.i.i.i, %if.end35 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5 - %data.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 4 - %64 = bitcast i8** %data.i.i.i to i8* - call void @llvm.memset.p0i8.i64(i8* %64, i8 0, i64 32, i32 8, i1 false) #1 - %65 = load i32* %dims.i.i199, align 4, !tbaa !9 - %cmp47.i.i.i = icmp sgt i32 %65, 0 - br i1 %cmp47.i.i.i, label %for.body.lr.ph.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i - -for.body.lr.ph.i.i.i: ; preds = %if.end.i.i.i - %66 = load i32** %p.i.i.i.i201, align 8, !tbaa !5 - br label %for.body.i.i.i - -for.body.i.i.i: ; preds = %for.body.i.i.i, %for.body.lr.ph.i.i.i - %indvars.iv.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i ], [ %indvars.iv.next.i.i.i, %for.body.i.i.i ] - %arrayidx.i.i.i = getelementptr inbounds i32* %66, i64 %indvars.iv.i.i.i - store i32 0, i32* %arrayidx.i.i.i, align 4, !tbaa !9 - %indvars.iv.next.i.i.i = add i64 %indvars.iv.i.i.i, 1 - %67 = load i32* %dims.i.i199, align 4, !tbaa !9 - %68 = trunc i64 %indvars.iv.next.i.i.i to i32 - %cmp4.i.i.i = icmp slt i32 %68, %67 - br i1 %cmp4.i.i.i, label %for.body.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i - -_ZN2cv3Mat7releaseEv.exit.i.i: ; preds = %for.body.i.i.i, %if.end.i.i.i - %69 = load i64** %p.i.i3.i.i203, align 8, !tbaa !5 - %cmp.i.i = icmp eq i64* %69, %arraydecay.i.i.i.i202 - br i1 %cmp.i.i, label %_ZN2cv3MatD1Ev.exit, label %if.then.i.i205 - -if.then.i.i205: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i - %70 = bitcast i64* %69 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %70) #1 - br label %_ZN2cv3MatD1Ev.exit - -_ZN2cv3MatD1Ev.exit: ; preds = %if.then.i.i205, %_ZN2cv3Mat7releaseEv.exit.i.i - %71 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %72 = load i32* %71, align 4, !tbaa !9 - %arrayidx.i208 = getelementptr inbounds i32* %71, i64 1 - %73 = load i32* %arrayidx.i208, align 4, !tbaa !9 - %flags.i.i210 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i210, align 8, !tbaa !9 - %dims.i.i211 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 1 - %rows.i.i212 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 2 - %p.i.i.i.i213 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 10, i32 0 - %74 = bitcast i32* %dims.i.i211 to i8* - call void @llvm.memset.p0i8.i64(i8* %74, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i212, i32** %p.i.i.i.i213, align 8, !tbaa !5 - %arraydecay.i.i.i.i214 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i215 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i214, i64** %p.i.i3.i.i215, align 8, !tbaa !5 - %75 = bitcast i64* %arraydecay.i.i.i.i214 to i8* - call void @llvm.memset.p0i8.i64(i8* %75, i8 0, i64 16, i32 8, i1 false) #1 - call void @llvm.lifetime.start(i64 8, i8* %61) #1 - store i32 %72, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9 - store i32 %73, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9 - call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp42, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1 - call void @llvm.lifetime.end(i64 8, i8* %61) #1 - %call47 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %E, %"class.cv::Mat"* %ref.tmp42) - %u.i.i.i218 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 9 - %76 = load %"struct.cv::UMatData"** %u.i.i.i218, align 8, !tbaa !5 - %tobool.i.i.i219 = icmp eq %"struct.cv::UMatData"* %76, null - br i1 %tobool.i.i.i219, label %if.end.i.i.i227, label %land.lhs.true.i.i.i222 - -land.lhs.true.i.i.i222: ; preds = %_ZN2cv3MatD1Ev.exit - %refcount.i.i.i220 = getelementptr inbounds %"struct.cv::UMatData"* %76, i64 0, i32 3 - %77 = atomicrmw add i32* %refcount.i.i.i220, i32 -1 acq_rel - %cmp.i.i.i221 = icmp eq i32 %77, 1 - br i1 %cmp.i.i.i221, label %if.then.i.i.i223, label %if.end.i.i.i227 - -if.then.i.i.i223: ; preds = %land.lhs.true.i.i.i222 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp42) #1 - br label %if.end.i.i.i227 - -if.end.i.i.i227: ; preds = %if.then.i.i.i223, %land.lhs.true.i.i.i222, %_ZN2cv3MatD1Ev.exit - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i218, align 8, !tbaa !5 - %data.i.i.i224 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 4 - %78 = bitcast i8** %data.i.i.i224 to i8* - call void @llvm.memset.p0i8.i64(i8* %78, i8 0, i64 32, i32 8, i1 false) #1 - %79 = load i32* %dims.i.i211, align 4, !tbaa !9 - %cmp47.i.i.i226 = icmp sgt i32 %79, 0 - br i1 %cmp47.i.i.i226, label %for.body.lr.ph.i.i.i229, label %_ZN2cv3Mat7releaseEv.exit.i.i238 - -for.body.lr.ph.i.i.i229: ; preds = %if.end.i.i.i227 - %80 = load i32** %p.i.i.i.i213, align 8, !tbaa !5 - br label %for.body.i.i.i234 - -for.body.i.i.i234: ; preds = %for.body.i.i.i234, %for.body.lr.ph.i.i.i229 - %indvars.iv.i.i.i230 = phi i64 [ 0, %for.body.lr.ph.i.i.i229 ], [ %indvars.iv.next.i.i.i232, %for.body.i.i.i234 ] - %arrayidx.i.i.i231 = getelementptr inbounds i32* %80, i64 %indvars.iv.i.i.i230 - store i32 0, i32* %arrayidx.i.i.i231, align 4, !tbaa !9 - %indvars.iv.next.i.i.i232 = add i64 %indvars.iv.i.i.i230, 1 - %81 = load i32* %dims.i.i211, align 4, !tbaa !9 - %82 = trunc i64 %indvars.iv.next.i.i.i232 to i32 - %cmp4.i.i.i233 = icmp slt i32 %82, %81 - br i1 %cmp4.i.i.i233, label %for.body.i.i.i234, label %_ZN2cv3Mat7releaseEv.exit.i.i238 - -_ZN2cv3Mat7releaseEv.exit.i.i238: ; preds = %for.body.i.i.i234, %if.end.i.i.i227 - %83 = load i64** %p.i.i3.i.i215, align 8, !tbaa !5 - %cmp.i.i237 = icmp eq i64* %83, %arraydecay.i.i.i.i214 - br i1 %cmp.i.i237, label %_ZN2cv3MatD1Ev.exit240, label %if.then.i.i239 - -if.then.i.i239: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i238 - %84 = bitcast i64* %83 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %84) #1 - br label %_ZN2cv3MatD1Ev.exit240 - -_ZN2cv3MatD1Ev.exit240: ; preds = %if.then.i.i239, %_ZN2cv3Mat7releaseEv.exit.i.i238 - %85 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %86 = load i32* %85, align 4, !tbaa !9 - %arrayidx.i243 = getelementptr inbounds i32* %85, i64 1 - %87 = load i32* %arrayidx.i243, align 4, !tbaa !9 - %flags.i.i245 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i245, align 8, !tbaa !9 - %dims.i.i246 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 1 - %rows.i.i247 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 2 - %p.i.i.i.i248 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 10, i32 0 - %88 = bitcast i32* %dims.i.i246 to i8* - call void @llvm.memset.p0i8.i64(i8* %88, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i247, i32** %p.i.i.i.i248, align 8, !tbaa !5 - %arraydecay.i.i.i.i249 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i250 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i249, i64** %p.i.i3.i.i250, align 8, !tbaa !5 - %89 = bitcast i64* %arraydecay.i.i.i.i249 to i8* - call void @llvm.memset.p0i8.i64(i8* %89, i8 0, i64 16, i32 8, i1 false) #1 - call void @llvm.lifetime.start(i64 8, i8* %61) #1 - store i32 %86, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9 - store i32 %87, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9 - call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp48, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1 - call void @llvm.lifetime.end(i64 8, i8* %61) #1 - %call53 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %L, %"class.cv::Mat"* %ref.tmp48) - %u.i.i.i253 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 9 - %90 = load %"struct.cv::UMatData"** %u.i.i.i253, align 8, !tbaa !5 - %tobool.i.i.i254 = icmp eq %"struct.cv::UMatData"* %90, null - br i1 %tobool.i.i.i254, label %if.end.i.i.i262, label %land.lhs.true.i.i.i257 - -land.lhs.true.i.i.i257: ; preds = %_ZN2cv3MatD1Ev.exit240 - %refcount.i.i.i255 = getelementptr inbounds %"struct.cv::UMatData"* %90, i64 0, i32 3 - %91 = atomicrmw add i32* %refcount.i.i.i255, i32 -1 acq_rel - %cmp.i.i.i256 = icmp eq i32 %91, 1 - br i1 %cmp.i.i.i256, label %if.then.i.i.i258, label %if.end.i.i.i262 - -if.then.i.i.i258: ; preds = %land.lhs.true.i.i.i257 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp48) #1 - br label %if.end.i.i.i262 - -if.end.i.i.i262: ; preds = %if.then.i.i.i258, %land.lhs.true.i.i.i257, %_ZN2cv3MatD1Ev.exit240 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i253, align 8, !tbaa !5 - %data.i.i.i259 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 4 - %92 = bitcast i8** %data.i.i.i259 to i8* - call void @llvm.memset.p0i8.i64(i8* %92, i8 0, i64 32, i32 8, i1 false) #1 - %93 = load i32* %dims.i.i246, align 4, !tbaa !9 - %cmp47.i.i.i261 = icmp sgt i32 %93, 0 - br i1 %cmp47.i.i.i261, label %for.body.lr.ph.i.i.i264, label %_ZN2cv3Mat7releaseEv.exit.i.i273 - -for.body.lr.ph.i.i.i264: ; preds = %if.end.i.i.i262 - %94 = load i32** %p.i.i.i.i248, align 8, !tbaa !5 - br label %for.body.i.i.i269 - -for.body.i.i.i269: ; preds = %for.body.i.i.i269, %for.body.lr.ph.i.i.i264 - %indvars.iv.i.i.i265 = phi i64 [ 0, %for.body.lr.ph.i.i.i264 ], [ %indvars.iv.next.i.i.i267, %for.body.i.i.i269 ] - %arrayidx.i.i.i266 = getelementptr inbounds i32* %94, i64 %indvars.iv.i.i.i265 - store i32 0, i32* %arrayidx.i.i.i266, align 4, !tbaa !9 - %indvars.iv.next.i.i.i267 = add i64 %indvars.iv.i.i.i265, 1 - %95 = load i32* %dims.i.i246, align 4, !tbaa !9 - %96 = trunc i64 %indvars.iv.next.i.i.i267 to i32 - %cmp4.i.i.i268 = icmp slt i32 %96, %95 - br i1 %cmp4.i.i.i268, label %for.body.i.i.i269, label %_ZN2cv3Mat7releaseEv.exit.i.i273 - -_ZN2cv3Mat7releaseEv.exit.i.i273: ; preds = %for.body.i.i.i269, %if.end.i.i.i262 - %97 = load i64** %p.i.i3.i.i250, align 8, !tbaa !5 - %cmp.i.i272 = icmp eq i64* %97, %arraydecay.i.i.i.i249 - br i1 %cmp.i.i272, label %_ZN2cv3MatD1Ev.exit275, label %if.then.i.i274 - -if.then.i.i274: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i273 - %98 = bitcast i64* %97 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %98) #1 - br label %_ZN2cv3MatD1Ev.exit275 - -_ZN2cv3MatD1Ev.exit275: ; preds = %if.then.i.i274, %_ZN2cv3Mat7releaseEv.exit.i.i273 - %99 = load i32* %flags.i.i, align 8, !tbaa !9 - %and.i277 = and i32 %99, 16384 - %cmp.i278 = icmp eq i32 %and.i277, 0 - br i1 %cmp.i278, label %cond.false, label %land.lhs.true - -land.lhs.true: ; preds = %_ZN2cv3MatD1Ev.exit275 - %100 = load i32* %flags.i.i175, align 8, !tbaa !9 - %and.i280 = and i32 %100, 16384 - %cmp.i281 = icmp eq i32 %and.i280, 0 - br i1 %cmp.i281, label %cond.false, label %land.lhs.true56 - -land.lhs.true56: ; preds = %land.lhs.true - %101 = load i32* %flags.i.i163, align 8, !tbaa !9 - %and.i283 = and i32 %101, 16384 - %cmp.i284 = icmp eq i32 %and.i283, 0 - br i1 %cmp.i284, label %cond.false, label %land.lhs.true58 - -land.lhs.true58: ; preds = %land.lhs.true56 - %102 = load i32* %flags.i.i169, align 8, !tbaa !9 - %and.i286 = and i32 %102, 16384 - %cmp.i287 = icmp eq i32 %and.i286, 0 - br i1 %cmp.i287, label %cond.false, label %cond.end - -cond.false: ; preds = %land.lhs.true58, %land.lhs.true56, %land.lhs.true, %_ZN2cv3MatD1Ev.exit275 - call void @__assert_fail(i8* getelementptr inbounds ([79 x i8]* @.str13, i64 0, i64 0), i8* getelementptr inbounds ([22 x i8]* @.str14, i64 0, i64 0), i32 452, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #8 - unreachable - -cond.end: ; preds = %land.lhs.true58 - call void @pb_InitializeTimerSet(%struct.pb_TimerSet* %timers) #1 - call void @llvm.hpvm.init() - %103 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %104 = load i32* %103, align 4, !tbaa !9 - %arrayidx.i290 = getelementptr inbounds i32* %103, i64 1 - %105 = load i32* %arrayidx.i290, align 4, !tbaa !9 - %mul = mul nsw i32 %105, %104 - %conv64 = sext i32 %mul to i64 - %mul65 = shl nsw i64 %conv64, 2 - %106 = bitcast [9 x float]* %B to i8* - call void @llvm.lifetime.start(i64 36, i8* %106) #1 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %106, i8* bitcast ([9 x float]* @_ZZ4mainE1B to i8*), i64 36, i32 16, i1 false) - %107 = bitcast %"class.cv::Mat"* %in to i8* - call void @llvm.lifetime.start(i64 96, i8* %107) #1 - %flags.i.i291 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i291, align 8, !tbaa !9 - %dims.i.i292 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 1 - %rows.i.i293 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 2 - %p.i.i.i.i294 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 10, i32 0 - %108 = bitcast i32* %dims.i.i292 to i8* - call void @llvm.memset.p0i8.i64(i8* %108, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i293, i32** %p.i.i.i.i294, align 8, !tbaa !5 - %arraydecay.i.i.i.i295 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i296 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i295, i64** %p.i.i3.i.i296, align 8, !tbaa !5 - %109 = bitcast i64* %arraydecay.i.i.i.i295 to i8* - call void @llvm.memset.p0i8.i64(i8* %109, i8 0, i64 16, i32 8, i1 false) #1 - %110 = bitcast %"class.cv::Mat"* %out to i8* - call void @llvm.lifetime.start(i64 96, i8* %110) #1 - %flags.i.i297 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 0 - store i32 1124007936, i32* %flags.i.i297, align 8, !tbaa !9 - %dims.i.i298 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 1 - %rows.i.i299 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 2 - %p.i.i.i.i300 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 10, i32 0 - %111 = bitcast i32* %dims.i.i298 to i8* - call void @llvm.memset.p0i8.i64(i8* %111, i8 0, i64 60, i32 4, i1 false) #1 - store i32* %rows.i.i299, i32** %p.i.i.i.i300, align 8, !tbaa !5 - %arraydecay.i.i.i.i301 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 1, i64 0 - %p.i.i3.i.i302 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 0 - store i64* %arraydecay.i.i.i.i301, i64** %p.i.i3.i.i302, align 8, !tbaa !5 - %112 = bitcast i64* %arraydecay.i.i.i.i301 to i8* - call void @llvm.memset.p0i8.i64(i8* %112, i8 0, i64 16, i32 8, i1 false) #1 - %call66 = call noalias i8* @malloc(i64 88) #1 - %113 = load i32* %103, align 4, !tbaa !9 - %114 = load i32* %arrayidx.i290, align 4, !tbaa !9 - %mul71 = mul nsw i32 %114, %113 - %rem120 = and i32 %mul71, 255 - %cmp72 = icmp eq i32 %rem120, 0 - br i1 %cmp72, label %cond.end75, label %cond.false74 - -cond.false74: ; preds = %cond.end - call void @__assert_fail(i8* getelementptr inbounds ([39 x i8]* @.str15, i64 0, i64 0), i8* getelementptr inbounds ([22 x i8]* @.str14, i64 0, i64 0), i32 482, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #8 - unreachable - -cond.end75: ; preds = %cond.end - %115 = load i8*** %inpFiles, align 8, !tbaa !5 - %116 = load i8** %115, align 8, !tbaa !5 - %tobool.i.i306 = icmp eq i8* %116, null - %117 = bitcast %"class.cv::String"* %ref.tmp77 to i8* - call void @llvm.memset.p0i8.i64(i8* %117, i8 0, i64 16, i32 8, i1 false) #1 - br i1 %tobool.i.i306, label %_ZN2cv6StringC1EPKc.exit310, label %if.end.i.i309 - -if.end.i.i309: ; preds = %cond.end75 - %call.i.i307 = call i64 @strlen(i8* %116) #9 - %call2.i.i308 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp77, i64 %call.i.i307) #1 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i308, i8* %116, i64 %call.i.i307, i32 1, i1 false) #1 - br label %_ZN2cv6StringC1EPKc.exit310 - -_ZN2cv6StringC1EPKc.exit310: ; preds = %if.end.i.i309, %cond.end75 - call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %ref.tmp76, %"class.cv::String"* %ref.tmp77) #1 - %owner2.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 1, i32 0 - %118 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i.i, align 8, !tbaa !5 - %stored3.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 1, i32 1 - %119 = load %struct.CvCapture** %stored3.i.i.i.i, align 8, !tbaa !5 - %tobool.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %118, null - br i1 %tobool.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %_ZN2cv6StringC1EPKc.exit310 - %refCount.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %118, i64 0, i32 1 - %120 = atomicrmw add i32* %refCount.i.i.i.i.i, i32 1 acq_rel - br label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i - -_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i: ; preds = %if.then.i.i.i.i, %_ZN2cv6StringC1EPKc.exit310 - %owner2.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 0 - %121 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5 - store %"struct.cv::detail::PtrOwner"* %118, %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5 - %stored3.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 1 - store %struct.CvCapture* %119, %struct.CvCapture** %stored3.i.i.i, align 8, !tbaa !5 - %tobool.i.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %121, null - br i1 %tobool.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i, label %if.then.i.i.i.i.i - -if.then.i.i.i.i.i: ; preds = %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i - %refCount.i.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %121, i64 0, i32 1 - %122 = atomicrmw add i32* %refCount.i.i.i.i.i.i, i32 -1 acq_rel - %cmp.i.i.i.i.i.i = icmp eq i32 %122, 1 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - -if.then.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i - %123 = bitcast %"struct.cv::detail::PtrOwner"* %121 to void (%"struct.cv::detail::PtrOwner"*)*** - %vtable.i.i.i.i.i.i = load void (%"struct.cv::detail::PtrOwner"*)*** %123, align 8, !tbaa !12 - %vfn.i.i.i.i.i.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i.i, i64 2 - %124 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i.i, align 8 - call void %124(%"struct.cv::detail::PtrOwner"* %121) #1 - br label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - -_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i: ; preds = %if.then.i.i.i.i.i.i, %if.then.i.i.i.i.i, %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i - %owner2.i.i.i6.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 2, i32 0 - %125 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i6.i, align 8, !tbaa !5 - %stored3.i.i.i7.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 2, i32 1 - %126 = load %"class.cv::IVideoCapture"** %stored3.i.i.i7.i, align 8, !tbaa !5 - %tobool.i.i.i8.i = icmp eq %"struct.cv::detail::PtrOwner"* %125, null - br i1 %tobool.i.i.i8.i, label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i, label %if.then.i.i.i10.i - -if.then.i.i.i10.i: ; preds = %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - %refCount.i.i.i.i9.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %125, i64 0, i32 1 - %127 = atomicrmw add i32* %refCount.i.i.i.i9.i, i32 1 acq_rel - br label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i - -_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i: ; preds = %if.then.i.i.i10.i, %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i - %owner2.i.i11.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 0 - %128 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5 - store %"struct.cv::detail::PtrOwner"* %125, %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5 - %stored3.i.i12.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 1 - store %"class.cv::IVideoCapture"* %126, %"class.cv::IVideoCapture"** %stored3.i.i12.i, align 8, !tbaa !5 - %tobool.i.i.i.i13.i = icmp eq %"struct.cv::detail::PtrOwner"* %128, null - br i1 %tobool.i.i.i.i13.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit, label %if.then.i.i.i.i16.i - -if.then.i.i.i.i16.i: ; preds = %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i - %refCount.i.i.i.i.i14.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %128, i64 0, i32 1 - %129 = atomicrmw add i32* %refCount.i.i.i.i.i14.i, i32 -1 acq_rel - %cmp.i.i.i.i.i15.i = icmp eq i32 %129, 1 - br i1 %cmp.i.i.i.i.i15.i, label %if.then.i.i.i.i.i19.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit - -if.then.i.i.i.i.i19.i: ; preds = %if.then.i.i.i.i16.i - %130 = bitcast %"struct.cv::detail::PtrOwner"* %128 to void (%"struct.cv::detail::PtrOwner"*)*** - %vtable.i.i.i.i.i17.i = load void (%"struct.cv::detail::PtrOwner"*)*** %130, align 8, !tbaa !12 - %vfn.i.i.i.i.i18.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i17.i, i64 2 - %131 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i18.i, align 8 - call void %131(%"struct.cv::detail::PtrOwner"* %128) #1 - br label %_ZN2cv12VideoCaptureaSERKS0_.exit - -_ZN2cv12VideoCaptureaSERKS0_.exit: ; preds = %if.then.i.i.i.i.i19.i, %if.then.i.i.i.i16.i, %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i - call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %ref.tmp76) #1 - call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp77) #1 - %132 = bitcast %"class.cv::_InputArray"* %ref.tmp.i311 to i8* - call void @llvm.lifetime.start(i64 24, i8* %132) #1 - %133 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i312 to i8* - call void @llvm.lifetime.start(i64 24, i8* %133) #1 - %134 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i313 to i8* - call void @llvm.lifetime.start(i64 24, i8* %134) #1 - %vtable.i314 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12 - %vfn.i315 = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i314, i64 8 - %135 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i315, align 8 - %call.i316 = call %"class.cv::VideoCapture"* %135(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1 - %136 = load i32* %flags.i.i, align 8, !tbaa !9 - %shr2.i.i318 = and i32 %136, 4088 - %cmp.i319 = icmp eq i32 %shr2.i.i318, 16 - br i1 %cmp.i319, label %if.then.i328, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332 - -if.then.i328: ; preds = %_ZN2cv12VideoCaptureaSERKS0_.exit - %width.i.i.i.i.i322 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 2, i32 0 - store i32 0, i32* %width.i.i.i.i.i322, align 8, !tbaa !9 - %height.i.i.i.i.i323 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 2, i32 1 - store i32 0, i32* %height.i.i.i.i.i323, align 4, !tbaa !9 - %flags.i.i.i.i324 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 0 - store i32 16842752, i32* %flags.i.i.i.i324, align 8, !tbaa !9 - %obj.i.i.i.i325 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 1 - store i8* %32, i8** %obj.i.i.i.i325, align 8, !tbaa !5 - %flags.i.i.i.i9.i326 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i312, i64 0, i32 0, i32 0 - %obj.i.i.i.i10.i327 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i312, i64 0, i32 0, i32 1 - %137 = bitcast i8** %obj.i.i.i.i10.i327 to i8* - call void @llvm.memset.p0i8.i64(i8* %137, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i9.i326, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i10.i327, align 8, !tbaa !5 - call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i311, %"class.cv::_OutputArray"* %ref.tmp2.i312, i32 6, i32 0) #1 - br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332 - -_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332: ; preds = %if.then.i328, %_ZN2cv12VideoCaptureaSERKS0_.exit - %flags.i.i.i.i.i330 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i313, i64 0, i32 0, i32 0 - %obj.i.i.i.i.i331 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i313, i64 0, i32 0, i32 1 - %138 = bitcast i8** %obj.i.i.i.i.i331 to i8* - call void @llvm.memset.p0i8.i64(i8* %138, i8 0, i64 16, i32 8, i1 false) #1 - store i32 33619968, i32* %flags.i.i.i.i.i330, align 8, !tbaa !9 - store i8* %32, i8** %obj.i.i.i.i.i331, align 8, !tbaa !5 - call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i313, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1 - call void @llvm.lifetime.end(i64 24, i8* %132) #1 - call void @llvm.lifetime.end(i64 24, i8* %133) #1 - call void @llvm.lifetime.end(i64 24, i8* %134) #1 - %data = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 4 - %139 = load i8** %data, align 8, !tbaa !5 - call void @llvm_hpvm_track_mem(i8* %139, i64 %mul65) #1 - %arraydecay = getelementptr inbounds [9 x float]* %B, i64 0, i64 0 - call void @llvm_hpvm_track_mem(i8* %106, i64 36) #1 - %data81 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 4 - %140 = load i8** %data81, align 8, !tbaa !5 - call void @llvm_hpvm_track_mem(i8* %140, i64 %mul65) #1 - %data82 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 4 - %141 = load i8** %data82, align 8, !tbaa !5 - call void @llvm_hpvm_track_mem(i8* %141, i64 %mul65) #1 - %data83 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 4 - %142 = load i8** %data83, align 8, !tbaa !5 - call void @llvm_hpvm_track_mem(i8* %142, i64 %mul65) #1 - %143 = load i8** %data, align 8, !tbaa !5 - %144 = bitcast i8* %143 to float* - %145 = load i8** %data81, align 8, !tbaa !5 - %146 = bitcast i8* %145 to float* - %147 = load i8** %data82, align 8, !tbaa !5 - %148 = bitcast i8* %147 to float* - %149 = load i8** %data83, align 8, !tbaa !5 - %150 = bitcast i8* %149 to float* - %151 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - %152 = load i32* %151, align 4, !tbaa !9 - %arrayidx.i335 = getelementptr inbounds i32* %151, i64 1 - %153 = load i32* %arrayidx.i335, align 4, !tbaa !9 - %I1.i = bitcast i8* %call66 to float** - store float* %144, float** %I1.i, align 1, !tbaa !5 - %bytesI2.i = getelementptr inbounds i8* %call66, i64 8 - %154 = bitcast i8* %bytesI2.i to i64* - store i64 %mul65, i64* %154, align 1, !tbaa !10 - %B3.i = getelementptr inbounds i8* %call66, i64 16 - %155 = bitcast i8* %B3.i to float** - store float* %arraydecay, float** %155, align 1, !tbaa !5 - %bytesB4.i = getelementptr inbounds i8* %call66, i64 24 - %156 = bitcast i8* %bytesB4.i to i64* - store i64 36, i64* %156, align 1, !tbaa !10 - %D5.i = getelementptr inbounds i8* %call66, i64 32 - %157 = bitcast i8* %D5.i to float** - store float* %146, float** %157, align 1, !tbaa !5 - %bytesD6.i = getelementptr inbounds i8* %call66, i64 40 - %158 = bitcast i8* %bytesD6.i to i64* - store i64 %mul65, i64* %158, align 1, !tbaa !10 - %E7.i = getelementptr inbounds i8* %call66, i64 48 - %159 = bitcast i8* %E7.i to float** - store float* %148, float** %159, align 1, !tbaa !5 - %bytesE8.i = getelementptr inbounds i8* %call66, i64 56 - %160 = bitcast i8* %bytesE8.i to i64* - store i64 %mul65, i64* %160, align 1, !tbaa !10 - %L9.i = getelementptr inbounds i8* %call66, i64 64 - %161 = bitcast i8* %L9.i to float** - store float* %150, float** %161, align 1, !tbaa !5 - %bytesL10.i = getelementptr inbounds i8* %call66, i64 72 - %162 = bitcast i8* %bytesL10.i to i64* - store i64 %mul65, i64* %162, align 1, !tbaa !10 - %m11.i = getelementptr inbounds i8* %call66, i64 80 - %163 = bitcast i8* %m11.i to i32* - store i32 %152, i32* %163, align 1, !tbaa !9 - %n12.i = getelementptr inbounds i8* %call66, i64 84 - %164 = bitcast i8* %n12.i to i32* - store i32 %153, i32* %164, align 1, !tbaa !9 - call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 21) #1 - br label %for.body - -for.body: ; preds = %for.body, %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332 - %j.0474 = phi i32 [ 0, %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332 ], [ %inc, %for.body ] - %graphID = call i8* @llvm.hpvm.launch(i8* bitcast (%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @LaplacianEstimate to i8*), i8* %call66, i1 false) - call void @llvm.hpvm.wait(i8* %graphID) - %inc = add nsw i32 %j.0474, 1 - %exitcond = icmp eq i32 %inc, 2994 - br i1 %exitcond, label %for.end, label %for.body - -for.end: ; preds = %for.body - call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 0) #1 - %165 = load i8** %data83, align 8, !tbaa !5 - call void @llvm_hpvm_request_mem(i8* %165, i64 %mul65) #1 - %166 = load i8** %data, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %166) #1 - call void @llvm_hpvm_untrack_mem(i8* %106) #1 - %167 = load i8** %data81, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %167) #1 - %168 = load i8** %data82, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %168) #1 - %169 = load i8** %data83, align 8, !tbaa !5 - call void @llvm_hpvm_untrack_mem(i8* %169) #1 - call void @pb_PrintTimerSet(%struct.pb_TimerSet* %timers) #1 - call void @llvm.hpvm.cleanup() - call void @pb_FreeParameters(%struct.pb_Parameters* %call3) #1 - %u.i.i.i336 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 9 - %170 = load %"struct.cv::UMatData"** %u.i.i.i336, align 8, !tbaa !5 - %tobool.i.i.i337 = icmp eq %"struct.cv::UMatData"* %170, null - br i1 %tobool.i.i.i337, label %if.end.i.i.i345, label %land.lhs.true.i.i.i340 - -land.lhs.true.i.i.i340: ; preds = %for.end - %refcount.i.i.i338 = getelementptr inbounds %"struct.cv::UMatData"* %170, i64 0, i32 3 - %171 = atomicrmw add i32* %refcount.i.i.i338, i32 -1 acq_rel - %cmp.i.i.i339 = icmp eq i32 %171, 1 - br i1 %cmp.i.i.i339, label %if.then.i.i.i341, label %if.end.i.i.i345 - -if.then.i.i.i341: ; preds = %land.lhs.true.i.i.i340 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %out) #1 - br label %if.end.i.i.i345 - -if.end.i.i.i345: ; preds = %if.then.i.i.i341, %land.lhs.true.i.i.i340, %for.end - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i336, align 8, !tbaa !5 - %data.i.i.i342 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 4 - %172 = bitcast i8** %data.i.i.i342 to i8* - call void @llvm.memset.p0i8.i64(i8* %172, i8 0, i64 32, i32 8, i1 false) #1 - %173 = load i32* %dims.i.i298, align 4, !tbaa !9 - %cmp47.i.i.i344 = icmp sgt i32 %173, 0 - br i1 %cmp47.i.i.i344, label %for.body.lr.ph.i.i.i347, label %_ZN2cv3Mat7releaseEv.exit.i.i356 - -for.body.lr.ph.i.i.i347: ; preds = %if.end.i.i.i345 - %174 = load i32** %p.i.i.i.i300, align 8, !tbaa !5 - br label %for.body.i.i.i352 - -for.body.i.i.i352: ; preds = %for.body.i.i.i352, %for.body.lr.ph.i.i.i347 - %indvars.iv.i.i.i348 = phi i64 [ 0, %for.body.lr.ph.i.i.i347 ], [ %indvars.iv.next.i.i.i350, %for.body.i.i.i352 ] - %arrayidx.i.i.i349 = getelementptr inbounds i32* %174, i64 %indvars.iv.i.i.i348 - store i32 0, i32* %arrayidx.i.i.i349, align 4, !tbaa !9 - %indvars.iv.next.i.i.i350 = add i64 %indvars.iv.i.i.i348, 1 - %175 = load i32* %dims.i.i298, align 4, !tbaa !9 - %176 = trunc i64 %indvars.iv.next.i.i.i350 to i32 - %cmp4.i.i.i351 = icmp slt i32 %176, %175 - br i1 %cmp4.i.i.i351, label %for.body.i.i.i352, label %_ZN2cv3Mat7releaseEv.exit.i.i356 - -_ZN2cv3Mat7releaseEv.exit.i.i356: ; preds = %for.body.i.i.i352, %if.end.i.i.i345 - %177 = load i64** %p.i.i3.i.i302, align 8, !tbaa !5 - %cmp.i.i355 = icmp eq i64* %177, %arraydecay.i.i.i.i301 - br i1 %cmp.i.i355, label %_ZN2cv3MatD1Ev.exit358, label %if.then.i.i357 - -if.then.i.i357: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i356 - %178 = bitcast i64* %177 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %178) #1 - br label %_ZN2cv3MatD1Ev.exit358 - -_ZN2cv3MatD1Ev.exit358: ; preds = %if.then.i.i357, %_ZN2cv3Mat7releaseEv.exit.i.i356 - call void @llvm.lifetime.end(i64 96, i8* %110) #1 - %u.i.i.i359 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 9 - %179 = load %"struct.cv::UMatData"** %u.i.i.i359, align 8, !tbaa !5 - %tobool.i.i.i360 = icmp eq %"struct.cv::UMatData"* %179, null - br i1 %tobool.i.i.i360, label %if.end.i.i.i368, label %land.lhs.true.i.i.i363 - -land.lhs.true.i.i.i363: ; preds = %_ZN2cv3MatD1Ev.exit358 - %refcount.i.i.i361 = getelementptr inbounds %"struct.cv::UMatData"* %179, i64 0, i32 3 - %180 = atomicrmw add i32* %refcount.i.i.i361, i32 -1 acq_rel - %cmp.i.i.i362 = icmp eq i32 %180, 1 - br i1 %cmp.i.i.i362, label %if.then.i.i.i364, label %if.end.i.i.i368 - -if.then.i.i.i364: ; preds = %land.lhs.true.i.i.i363 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %in) #1 - br label %if.end.i.i.i368 - -if.end.i.i.i368: ; preds = %if.then.i.i.i364, %land.lhs.true.i.i.i363, %_ZN2cv3MatD1Ev.exit358 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i359, align 8, !tbaa !5 - %data.i.i.i365 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 4 - %181 = bitcast i8** %data.i.i.i365 to i8* - call void @llvm.memset.p0i8.i64(i8* %181, i8 0, i64 32, i32 8, i1 false) #1 - %182 = load i32* %dims.i.i292, align 4, !tbaa !9 - %cmp47.i.i.i367 = icmp sgt i32 %182, 0 - br i1 %cmp47.i.i.i367, label %for.body.lr.ph.i.i.i370, label %_ZN2cv3Mat7releaseEv.exit.i.i379 - -for.body.lr.ph.i.i.i370: ; preds = %if.end.i.i.i368 - %183 = load i32** %p.i.i.i.i294, align 8, !tbaa !5 - br label %for.body.i.i.i375 - -for.body.i.i.i375: ; preds = %for.body.i.i.i375, %for.body.lr.ph.i.i.i370 - %indvars.iv.i.i.i371 = phi i64 [ 0, %for.body.lr.ph.i.i.i370 ], [ %indvars.iv.next.i.i.i373, %for.body.i.i.i375 ] - %arrayidx.i.i.i372 = getelementptr inbounds i32* %183, i64 %indvars.iv.i.i.i371 - store i32 0, i32* %arrayidx.i.i.i372, align 4, !tbaa !9 - %indvars.iv.next.i.i.i373 = add i64 %indvars.iv.i.i.i371, 1 - %184 = load i32* %dims.i.i292, align 4, !tbaa !9 - %185 = trunc i64 %indvars.iv.next.i.i.i373 to i32 - %cmp4.i.i.i374 = icmp slt i32 %185, %184 - br i1 %cmp4.i.i.i374, label %for.body.i.i.i375, label %_ZN2cv3Mat7releaseEv.exit.i.i379 - -_ZN2cv3Mat7releaseEv.exit.i.i379: ; preds = %for.body.i.i.i375, %if.end.i.i.i368 - %186 = load i64** %p.i.i3.i.i296, align 8, !tbaa !5 - %cmp.i.i378 = icmp eq i64* %186, %arraydecay.i.i.i.i295 - br i1 %cmp.i.i378, label %_ZN2cv3MatD1Ev.exit381, label %if.then.i.i380 - -if.then.i.i380: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i379 - %187 = bitcast i64* %186 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %187) #1 - br label %_ZN2cv3MatD1Ev.exit381 - -_ZN2cv3MatD1Ev.exit381: ; preds = %if.then.i.i380, %_ZN2cv3Mat7releaseEv.exit.i.i379 - call void @llvm.lifetime.end(i64 96, i8* %107) #1 - call void @llvm.lifetime.end(i64 36, i8* %106) #1 - %u.i.i.i382 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 9 - %188 = load %"struct.cv::UMatData"** %u.i.i.i382, align 8, !tbaa !5 - %tobool.i.i.i383 = icmp eq %"struct.cv::UMatData"* %188, null - br i1 %tobool.i.i.i383, label %if.end.i.i.i391, label %land.lhs.true.i.i.i386 - -land.lhs.true.i.i.i386: ; preds = %_ZN2cv3MatD1Ev.exit381 - %refcount.i.i.i384 = getelementptr inbounds %"struct.cv::UMatData"* %188, i64 0, i32 3 - %189 = atomicrmw add i32* %refcount.i.i.i384, i32 -1 acq_rel - %cmp.i.i.i385 = icmp eq i32 %189, 1 - br i1 %cmp.i.i.i385, label %if.then.i.i.i387, label %if.end.i.i.i391 - -if.then.i.i.i387: ; preds = %land.lhs.true.i.i.i386 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %L) #1 - br label %if.end.i.i.i391 - -if.end.i.i.i391: ; preds = %if.then.i.i.i387, %land.lhs.true.i.i.i386, %_ZN2cv3MatD1Ev.exit381 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i382, align 8, !tbaa !5 - %190 = bitcast i8** %data83 to i8* - call void @llvm.memset.p0i8.i64(i8* %190, i8 0, i64 32, i32 8, i1 false) #1 - %191 = load i32* %dims.i.i176, align 4, !tbaa !9 - %cmp47.i.i.i390 = icmp sgt i32 %191, 0 - br i1 %cmp47.i.i.i390, label %for.body.lr.ph.i.i.i393, label %_ZN2cv3Mat7releaseEv.exit.i.i402 - -for.body.lr.ph.i.i.i393: ; preds = %if.end.i.i.i391 - %192 = load i32** %p.i.i.i.i178, align 8, !tbaa !5 - br label %for.body.i.i.i398 - -for.body.i.i.i398: ; preds = %for.body.i.i.i398, %for.body.lr.ph.i.i.i393 - %indvars.iv.i.i.i394 = phi i64 [ 0, %for.body.lr.ph.i.i.i393 ], [ %indvars.iv.next.i.i.i396, %for.body.i.i.i398 ] - %arrayidx.i.i.i395 = getelementptr inbounds i32* %192, i64 %indvars.iv.i.i.i394 - store i32 0, i32* %arrayidx.i.i.i395, align 4, !tbaa !9 - %indvars.iv.next.i.i.i396 = add i64 %indvars.iv.i.i.i394, 1 - %193 = load i32* %dims.i.i176, align 4, !tbaa !9 - %194 = trunc i64 %indvars.iv.next.i.i.i396 to i32 - %cmp4.i.i.i397 = icmp slt i32 %194, %193 - br i1 %cmp4.i.i.i397, label %for.body.i.i.i398, label %_ZN2cv3Mat7releaseEv.exit.i.i402 - -_ZN2cv3Mat7releaseEv.exit.i.i402: ; preds = %for.body.i.i.i398, %if.end.i.i.i391 - %195 = load i64** %p.i.i3.i.i180, align 8, !tbaa !5 - %cmp.i.i401 = icmp eq i64* %195, %arraydecay.i.i.i.i179 - br i1 %cmp.i.i401, label %_ZN2cv3MatD1Ev.exit404, label %if.then.i.i403 - -if.then.i.i403: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i402 - %196 = bitcast i64* %195 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %196) #1 - br label %_ZN2cv3MatD1Ev.exit404 - -_ZN2cv3MatD1Ev.exit404: ; preds = %if.then.i.i403, %_ZN2cv3Mat7releaseEv.exit.i.i402 - call void @llvm.lifetime.end(i64 96, i8* %41) #1 - %u.i.i.i405 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 9 - %197 = load %"struct.cv::UMatData"** %u.i.i.i405, align 8, !tbaa !5 - %tobool.i.i.i406 = icmp eq %"struct.cv::UMatData"* %197, null - br i1 %tobool.i.i.i406, label %if.end.i.i.i414, label %land.lhs.true.i.i.i409 - -land.lhs.true.i.i.i409: ; preds = %_ZN2cv3MatD1Ev.exit404 - %refcount.i.i.i407 = getelementptr inbounds %"struct.cv::UMatData"* %197, i64 0, i32 3 - %198 = atomicrmw add i32* %refcount.i.i.i407, i32 -1 acq_rel - %cmp.i.i.i408 = icmp eq i32 %198, 1 - br i1 %cmp.i.i.i408, label %if.then.i.i.i410, label %if.end.i.i.i414 - -if.then.i.i.i410: ; preds = %land.lhs.true.i.i.i409 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %E) #1 - br label %if.end.i.i.i414 - -if.end.i.i.i414: ; preds = %if.then.i.i.i410, %land.lhs.true.i.i.i409, %_ZN2cv3MatD1Ev.exit404 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i405, align 8, !tbaa !5 - %199 = bitcast i8** %data82 to i8* - call void @llvm.memset.p0i8.i64(i8* %199, i8 0, i64 32, i32 8, i1 false) #1 - %200 = load i32* %dims.i.i170, align 4, !tbaa !9 - %cmp47.i.i.i413 = icmp sgt i32 %200, 0 - br i1 %cmp47.i.i.i413, label %for.body.lr.ph.i.i.i416, label %_ZN2cv3Mat7releaseEv.exit.i.i425 - -for.body.lr.ph.i.i.i416: ; preds = %if.end.i.i.i414 - %201 = load i32** %p.i.i.i.i172, align 8, !tbaa !5 - br label %for.body.i.i.i421 - -for.body.i.i.i421: ; preds = %for.body.i.i.i421, %for.body.lr.ph.i.i.i416 - %indvars.iv.i.i.i417 = phi i64 [ 0, %for.body.lr.ph.i.i.i416 ], [ %indvars.iv.next.i.i.i419, %for.body.i.i.i421 ] - %arrayidx.i.i.i418 = getelementptr inbounds i32* %201, i64 %indvars.iv.i.i.i417 - store i32 0, i32* %arrayidx.i.i.i418, align 4, !tbaa !9 - %indvars.iv.next.i.i.i419 = add i64 %indvars.iv.i.i.i417, 1 - %202 = load i32* %dims.i.i170, align 4, !tbaa !9 - %203 = trunc i64 %indvars.iv.next.i.i.i419 to i32 - %cmp4.i.i.i420 = icmp slt i32 %203, %202 - br i1 %cmp4.i.i.i420, label %for.body.i.i.i421, label %_ZN2cv3Mat7releaseEv.exit.i.i425 - -_ZN2cv3Mat7releaseEv.exit.i.i425: ; preds = %for.body.i.i.i421, %if.end.i.i.i414 - %204 = load i64** %p.i.i3.i.i174, align 8, !tbaa !5 - %cmp.i.i424 = icmp eq i64* %204, %arraydecay.i.i.i.i173 - br i1 %cmp.i.i424, label %_ZN2cv3MatD1Ev.exit427, label %if.then.i.i426 - -if.then.i.i426: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i425 - %205 = bitcast i64* %204 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %205) #1 - br label %_ZN2cv3MatD1Ev.exit427 - -_ZN2cv3MatD1Ev.exit427: ; preds = %if.then.i.i426, %_ZN2cv3Mat7releaseEv.exit.i.i425 - call void @llvm.lifetime.end(i64 96, i8* %38) #1 - %u.i.i.i428 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 9 - %206 = load %"struct.cv::UMatData"** %u.i.i.i428, align 8, !tbaa !5 - %tobool.i.i.i429 = icmp eq %"struct.cv::UMatData"* %206, null - br i1 %tobool.i.i.i429, label %if.end.i.i.i437, label %land.lhs.true.i.i.i432 - -land.lhs.true.i.i.i432: ; preds = %_ZN2cv3MatD1Ev.exit427 - %refcount.i.i.i430 = getelementptr inbounds %"struct.cv::UMatData"* %206, i64 0, i32 3 - %207 = atomicrmw add i32* %refcount.i.i.i430, i32 -1 acq_rel - %cmp.i.i.i431 = icmp eq i32 %207, 1 - br i1 %cmp.i.i.i431, label %if.then.i.i.i433, label %if.end.i.i.i437 - -if.then.i.i.i433: ; preds = %land.lhs.true.i.i.i432 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %D) #1 - br label %if.end.i.i.i437 - -if.end.i.i.i437: ; preds = %if.then.i.i.i433, %land.lhs.true.i.i.i432, %_ZN2cv3MatD1Ev.exit427 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i428, align 8, !tbaa !5 - %208 = bitcast i8** %data81 to i8* - call void @llvm.memset.p0i8.i64(i8* %208, i8 0, i64 32, i32 8, i1 false) #1 - %209 = load i32* %dims.i.i164, align 4, !tbaa !9 - %cmp47.i.i.i436 = icmp sgt i32 %209, 0 - br i1 %cmp47.i.i.i436, label %for.body.lr.ph.i.i.i439, label %_ZN2cv3Mat7releaseEv.exit.i.i448 - -for.body.lr.ph.i.i.i439: ; preds = %if.end.i.i.i437 - %210 = load i32** %p.i.i.i.i166, align 8, !tbaa !5 - br label %for.body.i.i.i444 - -for.body.i.i.i444: ; preds = %for.body.i.i.i444, %for.body.lr.ph.i.i.i439 - %indvars.iv.i.i.i440 = phi i64 [ 0, %for.body.lr.ph.i.i.i439 ], [ %indvars.iv.next.i.i.i442, %for.body.i.i.i444 ] - %arrayidx.i.i.i441 = getelementptr inbounds i32* %210, i64 %indvars.iv.i.i.i440 - store i32 0, i32* %arrayidx.i.i.i441, align 4, !tbaa !9 - %indvars.iv.next.i.i.i442 = add i64 %indvars.iv.i.i.i440, 1 - %211 = load i32* %dims.i.i164, align 4, !tbaa !9 - %212 = trunc i64 %indvars.iv.next.i.i.i442 to i32 - %cmp4.i.i.i443 = icmp slt i32 %212, %211 - br i1 %cmp4.i.i.i443, label %for.body.i.i.i444, label %_ZN2cv3Mat7releaseEv.exit.i.i448 - -_ZN2cv3Mat7releaseEv.exit.i.i448: ; preds = %for.body.i.i.i444, %if.end.i.i.i437 - %213 = load i64** %p.i.i3.i.i168, align 8, !tbaa !5 - %cmp.i.i447 = icmp eq i64* %213, %arraydecay.i.i.i.i167 - br i1 %cmp.i.i447, label %_ZN2cv3MatD1Ev.exit450, label %if.then.i.i449 - -if.then.i.i449: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i448 - %214 = bitcast i64* %213 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %214) #1 - br label %_ZN2cv3MatD1Ev.exit450 - -_ZN2cv3MatD1Ev.exit450: ; preds = %if.then.i.i449, %_ZN2cv3Mat7releaseEv.exit.i.i448 - call void @llvm.lifetime.end(i64 96, i8* %35) #1 - %u.i.i.i451 = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 9 - %215 = load %"struct.cv::UMatData"** %u.i.i.i451, align 8, !tbaa !5 - %tobool.i.i.i452 = icmp eq %"struct.cv::UMatData"* %215, null - br i1 %tobool.i.i.i452, label %if.end.i.i.i460, label %land.lhs.true.i.i.i455 - -land.lhs.true.i.i.i455: ; preds = %_ZN2cv3MatD1Ev.exit450 - %refcount.i.i.i453 = getelementptr inbounds %"struct.cv::UMatData"* %215, i64 0, i32 3 - %216 = atomicrmw add i32* %refcount.i.i.i453, i32 -1 acq_rel - %cmp.i.i.i454 = icmp eq i32 %216, 1 - br i1 %cmp.i.i.i454, label %if.then.i.i.i456, label %if.end.i.i.i460 - -if.then.i.i.i456: ; preds = %land.lhs.true.i.i.i455 - call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %src) #1 - br label %if.end.i.i.i460 - -if.end.i.i.i460: ; preds = %if.then.i.i.i456, %land.lhs.true.i.i.i455, %_ZN2cv3MatD1Ev.exit450 - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i451, align 8, !tbaa !5 - %217 = bitcast i8** %data to i8* - call void @llvm.memset.p0i8.i64(i8* %217, i8 0, i64 32, i32 8, i1 false) #1 - %218 = load i32* %dims.i.i, align 4, !tbaa !9 - %cmp47.i.i.i459 = icmp sgt i32 %218, 0 - br i1 %cmp47.i.i.i459, label %for.body.lr.ph.i.i.i462, label %_ZN2cv3Mat7releaseEv.exit.i.i471 - -for.body.lr.ph.i.i.i462: ; preds = %if.end.i.i.i460 - %219 = load i32** %p.i.i.i.i, align 8, !tbaa !5 - br label %for.body.i.i.i467 - -for.body.i.i.i467: ; preds = %for.body.i.i.i467, %for.body.lr.ph.i.i.i462 - %indvars.iv.i.i.i463 = phi i64 [ 0, %for.body.lr.ph.i.i.i462 ], [ %indvars.iv.next.i.i.i465, %for.body.i.i.i467 ] - %arrayidx.i.i.i464 = getelementptr inbounds i32* %219, i64 %indvars.iv.i.i.i463 - store i32 0, i32* %arrayidx.i.i.i464, align 4, !tbaa !9 - %indvars.iv.next.i.i.i465 = add i64 %indvars.iv.i.i.i463, 1 - %220 = load i32* %dims.i.i, align 4, !tbaa !9 - %221 = trunc i64 %indvars.iv.next.i.i.i465 to i32 - %cmp4.i.i.i466 = icmp slt i32 %221, %220 - br i1 %cmp4.i.i.i466, label %for.body.i.i.i467, label %_ZN2cv3Mat7releaseEv.exit.i.i471 - -_ZN2cv3Mat7releaseEv.exit.i.i471: ; preds = %for.body.i.i.i467, %if.end.i.i.i460 - %222 = load i64** %p.i.i3.i.i, align 8, !tbaa !5 - %cmp.i.i470 = icmp eq i64* %222, %arraydecay.i.i.i.i - br i1 %cmp.i.i470, label %cleanup, label %if.then.i.i472 - -if.then.i.i472: ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i471 - %223 = bitcast i64* %222 to i8* - call void @_ZN2cv8fastFreeEPv(i8* %223) #1 - br label %cleanup - -cleanup: ; preds = %if.then.i.i472, %_ZN2cv3Mat7releaseEv.exit.i.i471, %if.then16 - %retval.0 = phi i32 [ -1, %if.then16 ], [ 0, %_ZN2cv3Mat7releaseEv.exit.i.i471 ], [ 0, %if.then.i.i472 ] - call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %cap) #1 - call void @llvm.lifetime.end(i64 40, i8* %12) #1 - call void @llvm.lifetime.end(i64 800, i8* %0) #1 - ret i32 %retval.0 -} - -declare %struct.pb_Parameters* @pb_ReadParameters(i32*, i8**) #0 - -; Function Attrs: noreturn nounwind -declare void @exit(i32) #3 - -declare void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"*, %"class.cv::String"*) #0 - -declare zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"*) #0 - -declare double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"*, i32) #0 - -declare %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"*, i32) #0 - -declare void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"*, i32) #0 - -declare void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"*, i32, i32) #0 - -; Function Attrs: inlinehint nounwind uwtable -define linkonce_odr %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #4 align 2 { -entry: - %cmp = icmp eq %"class.cv::Mat"* %this, %m - br i1 %cmp, label %if.end27, label %if.then - -if.then: ; preds = %entry - %u = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 9 - %0 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5 - %tobool = icmp eq %"struct.cv::UMatData"* %0, null - br i1 %tobool, label %if.end, label %if.then2 - -if.then2: ; preds = %if.then - %refcount = getelementptr inbounds %"struct.cv::UMatData"* %0, i64 0, i32 3 - %1 = atomicrmw add i32* %refcount, i32 1 acq_rel - br label %if.end - -if.end: ; preds = %if.then2, %if.then - %u.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 9 - %2 = load %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5 - %tobool.i = icmp eq %"struct.cv::UMatData"* %2, null - br i1 %tobool.i, label %if.end.i, label %land.lhs.true.i - -land.lhs.true.i: ; preds = %if.end - %refcount.i = getelementptr inbounds %"struct.cv::UMatData"* %2, i64 0, i32 3 - %3 = atomicrmw add i32* %refcount.i, i32 -1 acq_rel - %cmp.i = icmp eq i32 %3, 1 - br i1 %cmp.i, label %if.then.i, label %if.end.i - -if.then.i: ; preds = %land.lhs.true.i - tail call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %this) #1 - br label %if.end.i - -if.end.i: ; preds = %if.then.i, %land.lhs.true.i, %if.end - store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5 - %data.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 4 - %dims.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 1 - %4 = bitcast i8** %data.i to i8* - tail call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 32, i32 8, i1 false) #1 - %5 = load i32* %dims.i, align 4, !tbaa !9 - %cmp47.i = icmp sgt i32 %5, 0 - br i1 %cmp47.i, label %for.body.lr.ph.i, label %_ZN2cv3Mat7releaseEv.exit.thread - -_ZN2cv3Mat7releaseEv.exit.thread: ; preds = %if.end.i - %flags50 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0 - %6 = load i32* %flags50, align 4, !tbaa !9 - %flags451 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0 - store i32 %6, i32* %flags451, align 4, !tbaa !9 - br label %land.lhs.true - -for.body.lr.ph.i: ; preds = %if.end.i - %p.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 10, i32 0 - %7 = load i32** %p.i, align 8, !tbaa !5 - br label %for.body.i - -for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i - %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %for.body.i ] - %arrayidx.i = getelementptr inbounds i32* %7, i64 %indvars.iv.i - store i32 0, i32* %arrayidx.i, align 4, !tbaa !9 - %indvars.iv.next.i = add i64 %indvars.iv.i, 1 - %8 = load i32* %dims.i, align 4, !tbaa !9 - %9 = trunc i64 %indvars.iv.next.i to i32 - %cmp4.i = icmp slt i32 %9, %8 - br i1 %cmp4.i, label %for.body.i, label %_ZN2cv3Mat7releaseEv.exit - -_ZN2cv3Mat7releaseEv.exit: ; preds = %for.body.i - %flags = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0 - %10 = load i32* %flags, align 4, !tbaa !9 - %flags4 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0 - store i32 %10, i32* %flags4, align 4, !tbaa !9 - %cmp5 = icmp slt i32 %8, 3 - br i1 %cmp5, label %land.lhs.true, label %if.else - -land.lhs.true: ; preds = %_ZN2cv3Mat7releaseEv.exit, %_ZN2cv3Mat7releaseEv.exit.thread - %dims6 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 1 - %11 = load i32* %dims6, align 4, !tbaa !9 - %cmp7 = icmp slt i32 %11, 3 - br i1 %cmp7, label %if.then8, label %if.else - -if.then8: ; preds = %land.lhs.true - store i32 %11, i32* %dims.i, align 4, !tbaa !9 - %rows = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 2 - %12 = load i32* %rows, align 4, !tbaa !9 - %rows11 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 2 - store i32 %12, i32* %rows11, align 4, !tbaa !9 - %cols = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 3 - %13 = load i32* %cols, align 4, !tbaa !9 - %cols12 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 3 - store i32 %13, i32* %cols12, align 4, !tbaa !9 - %p.i44 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 11, i32 0 - %14 = load i64** %p.i44, align 8, !tbaa !5 - %15 = load i64* %14, align 8, !tbaa !10 - %p.i49 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 11, i32 0 - %16 = load i64** %p.i49, align 8, !tbaa !5 - store i64 %15, i64* %16, align 8, !tbaa !10 - %arrayidx.i48 = getelementptr inbounds i64* %14, i64 1 - %17 = load i64* %arrayidx.i48, align 8, !tbaa !10 - %arrayidx.i46 = getelementptr inbounds i64* %16, i64 1 - store i64 %17, i64* %arrayidx.i46, align 8, !tbaa !10 - br label %if.end19 - -if.else: ; preds = %land.lhs.true, %_ZN2cv3Mat7releaseEv.exit - tail call void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #1 - br label %if.end19 - -if.end19: ; preds = %if.else, %if.then8 - %data = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 4 - %18 = load i8** %data, align 8, !tbaa !5 - store i8* %18, i8** %data.i, align 8, !tbaa !5 - %datastart = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 5 - %19 = load i8** %datastart, align 8, !tbaa !5 - %datastart21 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 5 - store i8* %19, i8** %datastart21, align 8, !tbaa !5 - %dataend = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 6 - %20 = load i8** %dataend, align 8, !tbaa !5 - %dataend22 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 6 - store i8* %20, i8** %dataend22, align 8, !tbaa !5 - %datalimit = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 7 - %21 = load i8** %datalimit, align 8, !tbaa !5 - %datalimit23 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 7 - store i8* %21, i8** %datalimit23, align 8, !tbaa !5 - %allocator = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 8 - %22 = load %"class.cv::MatAllocator"** %allocator, align 8, !tbaa !5 - %allocator24 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 8 - store %"class.cv::MatAllocator"* %22, %"class.cv::MatAllocator"** %allocator24, align 8, !tbaa !5 - %23 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5 - store %"struct.cv::UMatData"* %23, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5 - br label %if.end27 - -if.end27: ; preds = %if.end19, %entry - ret %"class.cv::Mat"* %this -} - -; Function Attrs: noreturn nounwind -declare void @__assert_fail(i8*, i8*, i32, i8*) #3 - -declare void @pb_InitializeTimerSet(%struct.pb_TimerSet*) #0 - -; Function Attrs: nounwind -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #1 - -; Function Attrs: nounwind -declare noalias i8* @malloc(i64) #5 - -declare void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"*) #0 - -declare void @llvm_hpvm_track_mem(i8*, i64) #0 - -declare void @pb_SwitchToTimer(%struct.pb_TimerSet*, i32) #0 - -declare void @llvm_hpvm_request_mem(i8*, i64) #0 - -declare void @llvm_hpvm_untrack_mem(i8*) #0 - -declare void @pb_PrintTimerSet(%struct.pb_TimerSet*) #0 - -declare void @pb_FreeParameters(%struct.pb_Parameters*) #0 - -declare %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"*, i8*, i64) #0 - -; Function Attrs: nounwind readonly -declare i64 @strlen(i8* nocapture) #6 - -declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"*, i32) #0 - -; Function Attrs: nounwind -declare void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"*, %"class.std::allocator"*) #5 - -declare extern_weak i32 @pthread_cancel(i64) #0 - -declare void @_ZN2cv8fastFreeEPv(i8*) #0 - -declare void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"*) #0 - -declare void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"*, i32, i32*, i32) #0 - -declare void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"*, %"class.cv::Mat"*) #0 - -declare i8* @_ZN2cv6String8allocateEm(%"class.cv::String"*, i64) #0 - -declare void @_ZN2cv6String10deallocateEv(%"class.cv::String"*) #0 - -; Function Attrs: nounwind -define internal void @_GLOBAL__I_a() #1 section ".text.startup" { -entry: - %ref.tmp.i1 = alloca %"class.std::allocator", align 1 - %ref.tmp.i = alloca %"class.std::allocator", align 1 - call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* @_ZStL8__ioinit) #1 - %0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init"* @_ZStL8__ioinit, i64 0, i32 0), i8* @__dso_handle) #1 - %1 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %1) #1 - call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @input_window, i8* getelementptr inbounds ([27 x i8]* @.str, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i) #1 - %2 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @input_window to i8*), i8* @__dso_handle) #1 - call void @llvm.lifetime.end(i64 1, i8* %1) #1 - %3 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i1, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %3) #1 - call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @output_window, i8* getelementptr inbounds ([28 x i8]* @.str3, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i1) #1 - %4 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @output_window to i8*), i8* @__dso_handle) #1 - call void @llvm.lifetime.end(i64 1, i8* %3) #1 - ret void -} - -; Function Attrs: nounwind -declare i64 @fwrite(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) #1 - -; Function Attrs: nounwind -declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1 - -; Function Attrs: nounwind readnone -declare i8* @llvm.hpvm.getNode() #7 - -; Function Attrs: nounwind readnone -declare i32 @llvm.hpvm.getNodeInstanceID.x(i8*) #7 - -; Function Attrs: nounwind readnone -declare i32 @llvm.hpvm.getNodeInstanceID.y(i8*) #7 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.createNode2D(i8*, i32, i32) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.bind.input(i8*, i32, i32, i1) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.bind.output(i8*, i32, i32, i1) #1 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.createNode(i8*) #1 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.createEdge(i8*, i8*, i1, i32, i32, i1) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.init() #1 - -; Function Attrs: nounwind -declare i8* @llvm.hpvm.launch(i8*, i8*, i1) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.wait(i8*) #1 - -; Function Attrs: nounwind -declare void @llvm.hpvm.cleanup() #1 - -; Function Attrs: nounwind -define %dilate.erode.ty @dilate_erode(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_B, i64 %n1_bytesB, float* nocapture out %n1_D, i64 %n1_bytesD, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_B, i64 %n2_bytesB, float* nocapture out %n2_E, i64 %n2_bytesE, i32 %n2_m, i32 %n2_n) #1 { -entry: - %call3.i = tail call i8* @llvm.hpvm.getNode() #1 - %call14.i = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3.i) #1 - %call25.i = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3.i) #1 - %cmp.i = icmp slt i32 %call14.i, %n1_n - %cmp3.i = icmp slt i32 %call25.i, %n1_m - %or.cond.i = and i1 %cmp.i, %cmp3.i - br i1 %or.cond.i, label %if.then.i, label %dilate.exit - -if.then.i: ; preds = %entry - %mul.i = mul nsw i32 %call25.i, %n1_n - %add.i = add nsw i32 %mul.i, %call14.i - %idxprom.i = sext i32 %add.i to i64 - %arrayidx.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.i - %0 = load float* %arrayidx.i, align 4, !tbaa !11 - %cmp6.i = icmp eq i32 %call14.i, 0 - br i1 %cmp6.i, label %if.end.i, label %if.else.i - -if.else.i: ; preds = %if.then.i - %sub.i = add nsw i32 %add.i, -1 - %idxprom16.i = sext i32 %sub.i to i64 - %arrayidx17.i = getelementptr inbounds float* %n1_Is, i64 %idxprom16.i - %1 = load float* %arrayidx17.i, align 4, !tbaa !11 - %cmp20.i = icmp sgt i32 %call25.i, 0 - br i1 %cmp20.i, label %cond.true.i, label %cond.end.i - -cond.true.i: ; preds = %if.else.i - %sub21.i = add nsw i32 %call25.i, -1 - %mul22.i = mul nsw i32 %sub21.i, %n1_n - %add23.i = add i32 %call14.i, -1 - %sub24.i = add i32 %add23.i, %mul22.i - %idxprom25.i = sext i32 %sub24.i to i64 - %arrayidx26.i = getelementptr inbounds float* %n1_Is, i64 %idxprom25.i - %2 = load float* %arrayidx26.i, align 4, !tbaa !11 - br label %cond.end.i - -cond.end.i: ; preds = %cond.true.i, %if.else.i - %cond.i = phi float [ %2, %cond.true.i ], [ 0.000000e+00, %if.else.i ] - %sub29.i = add nsw i32 %n1_m, -1 - %cmp30.i = icmp slt i32 %call25.i, %sub29.i - br i1 %cmp30.i, label %cond.true31.i, label %if.end.i - -cond.true31.i: ; preds = %cond.end.i - %add32.i = add nsw i32 %call25.i, 1 - %mul33.i = mul nsw i32 %add32.i, %n1_n - %add34.i = add i32 %call14.i, -1 - %sub35.i = add i32 %add34.i, %mul33.i - %idxprom36.i = sext i32 %sub35.i to i64 - %arrayidx37.i = getelementptr inbounds float* %n1_Is, i64 %idxprom36.i - %3 = load float* %arrayidx37.i, align 4, !tbaa !11 - br label %if.end.i - -if.end.i: ; preds = %cond.true31.i, %cond.end.i, %if.then.i - %4 = phi float [ 0.000000e+00, %if.then.i ], [ %3, %cond.true31.i ], [ 0.000000e+00, %cond.end.i ] - %5 = phi float [ 0.000000e+00, %if.then.i ], [ %1, %cond.true31.i ], [ %1, %cond.end.i ] - %6 = phi float [ 0.000000e+00, %if.then.i ], [ %cond.i, %cond.true31.i ], [ %cond.i, %cond.end.i ] - %sub43.i = add nsw i32 %n1_n, -1 - %cmp44.i = icmp eq i32 %call14.i, %sub43.i - br i1 %cmp44.i, label %if.end87.i, label %if.else52.i - -if.else52.i: ; preds = %if.end.i - %add55.i = add nsw i32 %add.i, 1 - %idxprom56.i = sext i32 %add55.i to i64 - %arrayidx57.i = getelementptr inbounds float* %n1_Is, i64 %idxprom56.i - %7 = load float* %arrayidx57.i, align 4, !tbaa !11 - %cmp60.i = icmp sgt i32 %call25.i, 0 - br i1 %cmp60.i, label %cond.true61.i, label %cond.end69.i - -cond.true61.i: ; preds = %if.else52.i - %sub62.i = add nsw i32 %call25.i, -1 - %mul63.i = mul nsw i32 %sub62.i, %n1_n - %add64.i = add i32 %call14.i, 1 - %add65.i = add i32 %add64.i, %mul63.i - %idxprom66.i = sext i32 %add65.i to i64 - %arrayidx67.i = getelementptr inbounds float* %n1_Is, i64 %idxprom66.i - %8 = load float* %arrayidx67.i, align 4, !tbaa !11 - br label %cond.end69.i - -cond.end69.i: ; preds = %cond.true61.i, %if.else52.i - %cond70.i = phi float [ %8, %cond.true61.i ], [ 0.000000e+00, %if.else52.i ] - %sub73.i = add nsw i32 %n1_m, -1 - %cmp74.i = icmp slt i32 %call25.i, %sub73.i - br i1 %cmp74.i, label %cond.true75.i, label %if.end87.i - -cond.true75.i: ; preds = %cond.end69.i - %add76.i = add nsw i32 %call25.i, 1 - %mul77.i = mul nsw i32 %add76.i, %n1_n - %add78.i = add i32 %call14.i, 1 - %add79.i = add i32 %add78.i, %mul77.i - %idxprom80.i = sext i32 %add79.i to i64 - %arrayidx81.i = getelementptr inbounds float* %n1_Is, i64 %idxprom80.i - %9 = load float* %arrayidx81.i, align 4, !tbaa !11 - br label %if.end87.i - -if.end87.i: ; preds = %cond.true75.i, %cond.end69.i, %if.end.i - %10 = phi float [ 0.000000e+00, %if.end.i ], [ %9, %cond.true75.i ], [ 0.000000e+00, %cond.end69.i ] - %11 = phi float [ 0.000000e+00, %if.end.i ], [ %7, %cond.true75.i ], [ %7, %cond.end69.i ] - %12 = phi float [ 0.000000e+00, %if.end.i ], [ %cond70.i, %cond.true75.i ], [ %cond70.i, %cond.end69.i ] - %cmp88.i = icmp sgt i32 %call25.i, 0 - br i1 %cmp88.i, label %cond.true89.i, label %cond.end96.i - -cond.true89.i: ; preds = %if.end87.i - %sub90.i = add nsw i32 %call25.i, -1 - %mul91.i = mul nsw i32 %sub90.i, %n1_n - %add92.i = add nsw i32 %mul91.i, %call14.i - %idxprom93.i = sext i32 %add92.i to i64 - %arrayidx94.i = getelementptr inbounds float* %n1_Is, i64 %idxprom93.i - %13 = load float* %arrayidx94.i, align 4, !tbaa !11 - br label %cond.end96.i - -cond.end96.i: ; preds = %cond.true89.i, %if.end87.i - %14 = phi float [ %13, %cond.true89.i ], [ 0.000000e+00, %if.end87.i ] - %sub100.i = add nsw i32 %n1_m, -1 - %cmp101.i = icmp slt i32 %call25.i, %sub100.i - br i1 %cmp101.i, label %cond.true102.i, label %cond.end109.i - -cond.true102.i: ; preds = %cond.end96.i - %add103.i = add nsw i32 %call25.i, 1 - %mul104.i = mul nsw i32 %add103.i, %n1_n - %add105.i = add nsw i32 %mul104.i, %call14.i - %idxprom106.i = sext i32 %add105.i to i64 - %arrayidx107.i = getelementptr inbounds float* %n1_Is, i64 %idxprom106.i - %15 = load float* %arrayidx107.i, align 4, !tbaa !11 - br label %cond.end109.i - -cond.end109.i: ; preds = %cond.true102.i, %cond.end96.i - %cond110.i = phi float [ %15, %cond.true102.i ], [ 0.000000e+00, %cond.end96.i ] - %16 = load float* %n1_B, align 4, !tbaa !11 - %mul125.i = fmul fast float %6, %16 - %cmp126.i = fcmp olt float %mul125.i, 0.000000e+00 - %dilatedPixel.1.mul125.i = select i1 %cmp126.i, float 0.000000e+00, float %mul125.i - %arrayidx124.1.i = getelementptr inbounds float* %n1_B, i64 1 - %17 = load float* %arrayidx124.1.i, align 4, !tbaa !11 - %mul125.1.i = fmul fast float %14, %17 - %cmp126.1.i = fcmp ogt float %dilatedPixel.1.mul125.i, %mul125.1.i - %dilatedPixel.1.mul125.1.i = select i1 %cmp126.1.i, float %dilatedPixel.1.mul125.i, float %mul125.1.i - %arrayidx124.2.i = getelementptr inbounds float* %n1_B, i64 2 - %18 = load float* %arrayidx124.2.i, align 4, !tbaa !11 - %mul125.2.i = fmul fast float %12, %18 - %cmp126.2.i = fcmp ogt float %dilatedPixel.1.mul125.1.i, %mul125.2.i - %dilatedPixel.1.mul125.2.i = select i1 %cmp126.2.i, float %dilatedPixel.1.mul125.1.i, float %mul125.2.i - %arrayidx124.1227.i = getelementptr inbounds float* %n1_B, i64 3 - %19 = load float* %arrayidx124.1227.i, align 4, !tbaa !11 - %mul125.1228.i = fmul fast float %5, %19 - %cmp126.1229.i = fcmp ogt float %dilatedPixel.1.mul125.2.i, %mul125.1228.i - %dilatedPixel.1.mul125.1230.i = select i1 %cmp126.1229.i, float %dilatedPixel.1.mul125.2.i, float %mul125.1228.i - %arrayidx124.1.1.i = getelementptr inbounds float* %n1_B, i64 4 - %20 = load float* %arrayidx124.1.1.i, align 4, !tbaa !11 - %mul125.1.1.i = fmul fast float %0, %20 - %cmp126.1.1.i = fcmp ogt float %dilatedPixel.1.mul125.1230.i, %mul125.1.1.i - %dilatedPixel.1.mul125.1.1.i = select i1 %cmp126.1.1.i, float %dilatedPixel.1.mul125.1230.i, float %mul125.1.1.i - %arrayidx124.2.1.i = getelementptr inbounds float* %n1_B, i64 5 - %21 = load float* %arrayidx124.2.1.i, align 4, !tbaa !11 - %mul125.2.1.i = fmul fast float %11, %21 - %cmp126.2.1.i = fcmp ogt float %dilatedPixel.1.mul125.1.1.i, %mul125.2.1.i - %dilatedPixel.1.mul125.2.1.i = select i1 %cmp126.2.1.i, float %dilatedPixel.1.mul125.1.1.i, float %mul125.2.1.i - %arrayidx124.2232.i = getelementptr inbounds float* %n1_B, i64 6 - %22 = load float* %arrayidx124.2232.i, align 4, !tbaa !11 - %mul125.2233.i = fmul fast float %4, %22 - %cmp126.2234.i = fcmp ogt float %dilatedPixel.1.mul125.2.1.i, %mul125.2233.i - %dilatedPixel.1.mul125.2235.i = select i1 %cmp126.2234.i, float %dilatedPixel.1.mul125.2.1.i, float %mul125.2233.i - %arrayidx124.1.2.i = getelementptr inbounds float* %n1_B, i64 7 - %23 = load float* %arrayidx124.1.2.i, align 4, !tbaa !11 - %mul125.1.2.i = fmul fast float %cond110.i, %23 - %cmp126.1.2.i = fcmp ogt float %dilatedPixel.1.mul125.2235.i, %mul125.1.2.i - %dilatedPixel.1.mul125.1.2.i = select i1 %cmp126.1.2.i, float %dilatedPixel.1.mul125.2235.i, float %mul125.1.2.i - %arrayidx124.2.2.i = getelementptr inbounds float* %n1_B, i64 8 - %24 = load float* %arrayidx124.2.2.i, align 4, !tbaa !11 - %mul125.2.2.i = fmul fast float %10, %24 - %cmp126.2.2.i = fcmp ogt float %dilatedPixel.1.mul125.1.2.i, %mul125.2.2.i - %dilatedPixel.1.mul125.2.2.i = select i1 %cmp126.2.2.i, float %dilatedPixel.1.mul125.1.2.i, float %mul125.2.2.i - %arrayidx146.i = getelementptr inbounds float* %n1_D, i64 %idxprom.i - store float %dilatedPixel.1.mul125.2.2.i, float* %arrayidx146.i, align 4, !tbaa !11 - br label %dilate.exit - -dilate.exit: ; preds = %entry, %cond.end109.i - %cmp.i4 = icmp slt i32 %call14.i, %n2_n - %cmp3.i5 = icmp slt i32 %call25.i, %n2_m - %or.cond.i6 = and i1 %cmp.i4, %cmp3.i5 - br i1 %or.cond.i6, label %if.then.i12, label %erode.exit - -if.then.i12: ; preds = %dilate.exit - %mul.i7 = mul nsw i32 %call25.i, %n2_n - %add.i8 = add nsw i32 %mul.i7, %call14.i - %idxprom.i9 = sext i32 %add.i8 to i64 - %arrayidx.i10 = getelementptr inbounds float* %n2_Is, i64 %idxprom.i9 - %25 = load float* %arrayidx.i10, align 4, !tbaa !11 - %cmp6.i11 = icmp eq i32 %call14.i, 0 - br i1 %cmp6.i11, label %if.end.i38, label %if.else.i17 - -if.else.i17: ; preds = %if.then.i12 - %sub.i13 = add nsw i32 %add.i8, -1 - %idxprom16.i14 = sext i32 %sub.i13 to i64 - %arrayidx17.i15 = getelementptr inbounds float* %n2_Is, i64 %idxprom16.i14 - %26 = load float* %arrayidx17.i15, align 4, !tbaa !11 - %cmp20.i16 = icmp sgt i32 %call25.i, 0 - br i1 %cmp20.i16, label %cond.true.i24, label %cond.end.i28 - -cond.true.i24: ; preds = %if.else.i17 - %sub21.i18 = add nsw i32 %call25.i, -1 - %mul22.i19 = mul nsw i32 %sub21.i18, %n2_n - %add23.i20 = add i32 %call14.i, -1 - %sub24.i21 = add i32 %add23.i20, %mul22.i19 - %idxprom25.i22 = sext i32 %sub24.i21 to i64 - %arrayidx26.i23 = getelementptr inbounds float* %n2_Is, i64 %idxprom25.i22 - %27 = load float* %arrayidx26.i23, align 4, !tbaa !11 - br label %cond.end.i28 - -cond.end.i28: ; preds = %cond.true.i24, %if.else.i17 - %cond.i25 = phi float [ %27, %cond.true.i24 ], [ 1.000000e+00, %if.else.i17 ] - %sub29.i26 = add nsw i32 %n2_m, -1 - %cmp30.i27 = icmp slt i32 %call25.i, %sub29.i26 - br i1 %cmp30.i27, label %cond.true31.i35, label %if.end.i38 - -cond.true31.i35: ; preds = %cond.end.i28 - %add32.i29 = add nsw i32 %call25.i, 1 - %mul33.i30 = mul nsw i32 %add32.i29, %n2_n - %add34.i31 = add i32 %call14.i, -1 - %sub35.i32 = add i32 %add34.i31, %mul33.i30 - %idxprom36.i33 = sext i32 %sub35.i32 to i64 - %arrayidx37.i34 = getelementptr inbounds float* %n2_Is, i64 %idxprom36.i33 - %28 = load float* %arrayidx37.i34, align 4, !tbaa !11 - br label %if.end.i38 - -if.end.i38: ; preds = %cond.true31.i35, %cond.end.i28, %if.then.i12 - %29 = phi float [ 1.000000e+00, %if.then.i12 ], [ %28, %cond.true31.i35 ], [ 1.000000e+00, %cond.end.i28 ] - %30 = phi float [ 1.000000e+00, %if.then.i12 ], [ %26, %cond.true31.i35 ], [ %26, %cond.end.i28 ] - %31 = phi float [ 1.000000e+00, %if.then.i12 ], [ %cond.i25, %cond.true31.i35 ], [ %cond.i25, %cond.end.i28 ] - %sub43.i36 = add nsw i32 %n2_n, -1 - %cmp44.i37 = icmp eq i32 %call14.i, %sub43.i36 - br i1 %cmp44.i37, label %if.end87.i63, label %if.else52.i43 - -if.else52.i43: ; preds = %if.end.i38 - %add55.i39 = add nsw i32 %add.i8, 1 - %idxprom56.i40 = sext i32 %add55.i39 to i64 - %arrayidx57.i41 = getelementptr inbounds float* %n2_Is, i64 %idxprom56.i40 - %32 = load float* %arrayidx57.i41, align 4, !tbaa !11 - %cmp60.i42 = icmp sgt i32 %call25.i, 0 - br i1 %cmp60.i42, label %cond.true61.i50, label %cond.end69.i54 - -cond.true61.i50: ; preds = %if.else52.i43 - %sub62.i44 = add nsw i32 %call25.i, -1 - %mul63.i45 = mul nsw i32 %sub62.i44, %n2_n - %add64.i46 = add i32 %call14.i, 1 - %add65.i47 = add i32 %add64.i46, %mul63.i45 - %idxprom66.i48 = sext i32 %add65.i47 to i64 - %arrayidx67.i49 = getelementptr inbounds float* %n2_Is, i64 %idxprom66.i48 - %33 = load float* %arrayidx67.i49, align 4, !tbaa !11 - br label %cond.end69.i54 - -cond.end69.i54: ; preds = %cond.true61.i50, %if.else52.i43 - %cond70.i51 = phi float [ %33, %cond.true61.i50 ], [ 1.000000e+00, %if.else52.i43 ] - %sub73.i52 = add nsw i32 %n2_m, -1 - %cmp74.i53 = icmp slt i32 %call25.i, %sub73.i52 - br i1 %cmp74.i53, label %cond.true75.i61, label %if.end87.i63 - -cond.true75.i61: ; preds = %cond.end69.i54 - %add76.i55 = add nsw i32 %call25.i, 1 - %mul77.i56 = mul nsw i32 %add76.i55, %n2_n - %add78.i57 = add i32 %call14.i, 1 - %add79.i58 = add i32 %add78.i57, %mul77.i56 - %idxprom80.i59 = sext i32 %add79.i58 to i64 - %arrayidx81.i60 = getelementptr inbounds float* %n2_Is, i64 %idxprom80.i59 - %34 = load float* %arrayidx81.i60, align 4, !tbaa !11 - br label %if.end87.i63 - -if.end87.i63: ; preds = %cond.true75.i61, %cond.end69.i54, %if.end.i38 - %35 = phi float [ 1.000000e+00, %if.end.i38 ], [ %34, %cond.true75.i61 ], [ 1.000000e+00, %cond.end69.i54 ] - %36 = phi float [ 1.000000e+00, %if.end.i38 ], [ %32, %cond.true75.i61 ], [ %32, %cond.end69.i54 ] - %37 = phi float [ 1.000000e+00, %if.end.i38 ], [ %cond70.i51, %cond.true75.i61 ], [ %cond70.i51, %cond.end69.i54 ] - %cmp88.i62 = icmp sgt i32 %call25.i, 0 - br i1 %cmp88.i62, label %cond.true89.i69, label %cond.end96.i72 - -cond.true89.i69: ; preds = %if.end87.i63 - %sub90.i64 = add nsw i32 %call25.i, -1 - %mul91.i65 = mul nsw i32 %sub90.i64, %n2_n - %add92.i66 = add nsw i32 %mul91.i65, %call14.i - %idxprom93.i67 = sext i32 %add92.i66 to i64 - %arrayidx94.i68 = getelementptr inbounds float* %n2_Is, i64 %idxprom93.i67 - %38 = load float* %arrayidx94.i68, align 4, !tbaa !11 - br label %cond.end96.i72 - -cond.end96.i72: ; preds = %cond.true89.i69, %if.end87.i63 - %39 = phi float [ %38, %cond.true89.i69 ], [ 1.000000e+00, %if.end87.i63 ] - %sub100.i70 = add nsw i32 %n2_m, -1 - %cmp101.i71 = icmp slt i32 %call25.i, %sub100.i70 - br i1 %cmp101.i71, label %cond.true102.i78, label %cond.end109.i107 - -cond.true102.i78: ; preds = %cond.end96.i72 - %add103.i73 = add nsw i32 %call25.i, 1 - %mul104.i74 = mul nsw i32 %add103.i73, %n2_n - %add105.i75 = add nsw i32 %mul104.i74, %call14.i - %idxprom106.i76 = sext i32 %add105.i75 to i64 - %arrayidx107.i77 = getelementptr inbounds float* %n2_Is, i64 %idxprom106.i76 - %40 = load float* %arrayidx107.i77, align 4, !tbaa !11 - br label %cond.end109.i107 - -cond.end109.i107: ; preds = %cond.true102.i78, %cond.end96.i72 - %cond110.i79 = phi float [ %40, %cond.true102.i78 ], [ 1.000000e+00, %cond.end96.i72 ] - %41 = load float* %n2_B, align 4, !tbaa !11 - %mul125.i80 = fmul fast float %31, %41 - %cmp126.i81 = fcmp ogt float %mul125.i80, 0.000000e+00 - %erodedPixel.1.mul125.i = select i1 %cmp126.i81, float 0.000000e+00, float %mul125.i80 - %arrayidx124.1.i82 = getelementptr inbounds float* %n2_B, i64 1 - %42 = load float* %arrayidx124.1.i82, align 4, !tbaa !11 - %mul125.1.i83 = fmul fast float %39, %42 - %cmp126.1.i84 = fcmp olt float %erodedPixel.1.mul125.i, %mul125.1.i83 - %erodedPixel.1.mul125.1.i = select i1 %cmp126.1.i84, float %erodedPixel.1.mul125.i, float %mul125.1.i83 - %arrayidx124.2.i85 = getelementptr inbounds float* %n2_B, i64 2 - %43 = load float* %arrayidx124.2.i85, align 4, !tbaa !11 - %mul125.2.i86 = fmul fast float %37, %43 - %cmp126.2.i87 = fcmp olt float %erodedPixel.1.mul125.1.i, %mul125.2.i86 - %erodedPixel.1.mul125.2.i = select i1 %cmp126.2.i87, float %erodedPixel.1.mul125.1.i, float %mul125.2.i86 - %arrayidx124.1227.i88 = getelementptr inbounds float* %n2_B, i64 3 - %44 = load float* %arrayidx124.1227.i88, align 4, !tbaa !11 - %mul125.1228.i89 = fmul fast float %30, %44 - %cmp126.1229.i90 = fcmp olt float %erodedPixel.1.mul125.2.i, %mul125.1228.i89 - %erodedPixel.1.mul125.1230.i = select i1 %cmp126.1229.i90, float %erodedPixel.1.mul125.2.i, float %mul125.1228.i89 - %arrayidx124.1.1.i91 = getelementptr inbounds float* %n2_B, i64 4 - %45 = load float* %arrayidx124.1.1.i91, align 4, !tbaa !11 - %mul125.1.1.i92 = fmul fast float %25, %45 - %cmp126.1.1.i93 = fcmp olt float %erodedPixel.1.mul125.1230.i, %mul125.1.1.i92 - %erodedPixel.1.mul125.1.1.i = select i1 %cmp126.1.1.i93, float %erodedPixel.1.mul125.1230.i, float %mul125.1.1.i92 - %arrayidx124.2.1.i94 = getelementptr inbounds float* %n2_B, i64 5 - %46 = load float* %arrayidx124.2.1.i94, align 4, !tbaa !11 - %mul125.2.1.i95 = fmul fast float %36, %46 - %cmp126.2.1.i96 = fcmp olt float %erodedPixel.1.mul125.1.1.i, %mul125.2.1.i95 - %erodedPixel.1.mul125.2.1.i = select i1 %cmp126.2.1.i96, float %erodedPixel.1.mul125.1.1.i, float %mul125.2.1.i95 - %arrayidx124.2232.i97 = getelementptr inbounds float* %n2_B, i64 6 - %47 = load float* %arrayidx124.2232.i97, align 4, !tbaa !11 - %mul125.2233.i98 = fmul fast float %29, %47 - %cmp126.2234.i99 = fcmp olt float %erodedPixel.1.mul125.2.1.i, %mul125.2233.i98 - %erodedPixel.1.mul125.2235.i = select i1 %cmp126.2234.i99, float %erodedPixel.1.mul125.2.1.i, float %mul125.2233.i98 - %arrayidx124.1.2.i100 = getelementptr inbounds float* %n2_B, i64 7 - %48 = load float* %arrayidx124.1.2.i100, align 4, !tbaa !11 - %mul125.1.2.i101 = fmul fast float %cond110.i79, %48 - %cmp126.1.2.i102 = fcmp olt float %erodedPixel.1.mul125.2235.i, %mul125.1.2.i101 - %erodedPixel.1.mul125.1.2.i = select i1 %cmp126.1.2.i102, float %erodedPixel.1.mul125.2235.i, float %mul125.1.2.i101 - %arrayidx124.2.2.i103 = getelementptr inbounds float* %n2_B, i64 8 - %49 = load float* %arrayidx124.2.2.i103, align 4, !tbaa !11 - %mul125.2.2.i104 = fmul fast float %35, %49 - %cmp126.2.2.i105 = fcmp olt float %erodedPixel.1.mul125.1.2.i, %mul125.2.2.i104 - %erodedPixel.1.mul125.2.2.i = select i1 %cmp126.2.2.i105, float %erodedPixel.1.mul125.1.2.i, float %mul125.2.2.i104 - %arrayidx146.i106 = getelementptr inbounds float* %n2_E, i64 %idxprom.i9 - store float %erodedPixel.1.mul125.2.2.i, float* %arrayidx146.i106, align 4, !tbaa !11 - br label %erode.exit - -erode.exit: ; preds = %dilate.exit, %cond.end109.i107 - %50 = insertvalue %dilate.erode.ty undef, i32 %call14.i, 0 - %51 = insertvalue %dilate.erode.ty %50, i32 %call25.i, 1 - ret %dilate.erode.ty %51 -} - -; Function Attrs: nounwind -define %WrapperDilate.WrapperErode.ty @WrapperDilate_WrapperErode(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_B, i64 %n1_bytesB, float* nocapture out %n1_D, i64 %n1_bytesD, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_B, i64 %n2_bytesB, float* nocapture out %n2_E, i64 %n2_bytesE, i32 %n2_m, i32 %n2_n) #1 { -entry: - %dilate_erode.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%dilate.erode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @dilate_erode to i8*), i32 %n1_m, i32 %n1_n) - tail call void @llvm.hpvm.bind.output(i8* %dilate_erode.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 7, i32 7, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 6, i32 6, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 5, i32 5, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 4, i32 4, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 3, i32 3, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 2, i32 2, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 0, i32 0, i1 false) - tail call void @llvm.hpvm.bind.output(i8* %dilate_erode.node, i32 1, i32 1, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 15, i32 15, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 14, i32 14, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 13, i32 13, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 12, i32 12, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 11, i32 11, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 10, i32 10, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 9, i32 9, i1 false) - tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 8, i32 8, i1 false) - ret %WrapperDilate.WrapperErode.ty undef -} - -attributes #0 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #1 = { nounwind } -attributes #2 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #3 = { noreturn nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #4 = { inlinehint nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #5 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #6 = { nounwind readonly "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" } -attributes #7 = { nounwind readnone } -attributes #8 = { noreturn nounwind } -attributes #9 = { nounwind readonly } - -!hpvm_hint_gpu = !{!0, !1} -!hpvm_hint_cpu = !{!2, !3, !4} -!hpvm_hint_spir = !{} - -!0 = metadata !{%emptyStruct (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @lincomb} -!1 = metadata !{%dilate.erode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @dilate_erode} -!2 = metadata !{%emptyStruct.23 (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperLincomb} -!3 = metadata !{%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @LaplacianEstimate} -!4 = metadata !{%WrapperDilate.WrapperErode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperDilate_WrapperErode} -!5 = metadata !{metadata !"any pointer", metadata !6} -!6 = metadata !{metadata !"omnipotent char", metadata !7} -!7 = metadata !{metadata !"Simple C/C++ TBAA"} -!8 = metadata !{metadata !"branch_weights", i32 64, i32 4} -!9 = metadata !{metadata !"int", metadata !6} -!10 = metadata !{metadata !"long", metadata !6} -!11 = metadata !{metadata !"float", metadata !6} -!12 = metadata !{metadata !"vtable pointer", metadata !7} -!13 = metadata !{metadata !"_ZTSSt12_Ios_Iostate", metadata !6} diff --git a/hpvm/test/pipeline/run.sh b/hpvm/test/pipeline/run.sh deleted file mode 100755 index 5ac734026bf839c511dfdfb843b07382e6d8d4d6..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/run.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -echo Pipeline Script $1 $2 - -version=$1 -pos=$2 - -if [[ ($version == *"GPU"*) || ($version == "hpvm_parallel") ]] -then - target="" -elif [[ $version == *"Vector"* ]] -then - target="x86" -else - target="seq" -fi - -make VERSION=$version TARGET=$target clean -make VERSION=$version TARGET=$target POS=$pos -make VERSION=$version TARGET=$target POS=$pos run - diff --git a/hpvm/test/pipeline/runscript.sh b/hpvm/test/pipeline/runscript.sh deleted file mode 100755 index c95af8f831eeeb7f5f464e4acbc90dd49fcb67a1..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/runscript.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -echo Pipeline Script - -# Compile all version -make VERSION=hpvmGPU clean -make VERSION=hpvmVector TARGET=x86 clean -make VERSION=hpvmScalar TARGET=seq clean - - -make VERSION=hpvmGPU -make VERSION=hpvmVector TARGET=x86 -make VERSION=hpvmScalar TARGET=seq - -#Run all version -make VERSION=hpvmGPU run & -ID_GPU=$! -make VERSION=hpvmVector TARGET=x86 run & -ID_Vector=$! -make VERSION=hpvmScalar TARGET=seq run -ID_Scalar=$! - -#echo Wait 60 seconds -#sleep 10 -#echo Wait 60 seconds ... Done -#echo Killing GPU Pipeline -#echo kill -9 $ID_GPU -#read ppid -#kill -9 $ID_GPU -#echo Killing Vector Pipeline -#kill -9 $(ID_Vector) -#echo Killing Scalar Pipeline -#kill -9 $(ID_Scalar) diff --git a/hpvm/test/pipeline/src/Makefile b/hpvm/test/pipeline/src/Makefile deleted file mode 100644 index 55acb2e0982edc2a914340f2bfacbbfc1d06397f..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/src/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# (c) 2010 The Board of Trustees of the University of Illinois. - -LANGUAGE=hpvm -SRCDIR_OBJS=io.ll #compute_gold.o -HPVM_OBJS=main.hpvm.ll -APP_CUDALDFLAGS=-lm -lstdc++ -APP_CFLAGS+=-ffast-math -O3 -I/opt/opencv/include -APP_CXXFLAGS+=-ffast-math -O3 -I/opt/opencv/include -APP_LDFLAGS=`pkg-config opencv --libs` -#APP_LDFLAGS=-L/usr/local/cuda/lib64 -rdynamic /opt/opencv/lib/libopencv_videostab.so.3.0.0 /opt/opencv/lib/libopencv_videoio.so.3.0.0 /opt/opencv/lib/libopencv_video.so.3.0.0 /opt/opencv/lib/libopencv_superres.so.3.0.0 /opt/opencv/lib/libopencv_stitching.so.3.0.0 /opt/opencv/lib/libopencv_shape.so.3.0.0 /opt/opencv/lib/libopencv_photo.so.3.0.0 /opt/opencv/lib/libopencv_objdetect.so.3.0.0 /opt/opencv/lib/libopencv_ml.so.3.0.0 /opt/opencv/lib/libopencv_imgproc.so.3.0.0 /opt/opencv/lib/libopencv_imgcodecs.so.3.0.0 /opt/opencv/lib/libopencv_highgui.so.3.0.0 /opt/opencv/lib/libopencv_hal.a /opt/opencv/lib/libopencv_flann.so.3.0.0 /opt/opencv/lib/libopencv_features2d.so.3.0.0 /opt/opencv/lib/libopencv_core.so.3.0.0 /opt/opencv/lib/libopencv_calib3d.so.3.0.0 /opt/opencv/lib/libopencv_hal.a -ldl -lm -lpthread -lrt /opt/opencv/share/OpenCV/3rdparty/lib/libippicv.a -Wl,-rpath,/usr/local/cuda/lib64:/opt/opencv/lib - -#OpenCV link flags all -#/usr/bin/c++ -std=c++0x CMakeFiles/EdgeDetect.dir/EdgeDetect.cpp.o -o EdgeDetect -L/usr/local/cuda/lib64 -rdynamic /opt/opencv/lib/libopencv_videostab.so.3.0.0 /opt/opencv/lib/libopencv_videoio.so.3.0.0 /opt/opencv/lib/libopencv_video.so.3.0.0 /opt/opencv/lib/libopencv_superres.so.3.0.0 /opt/opencv/lib/libopencv_stitching.so.3.0.0 /opt/opencv/lib/libopencv_shape.so.3.0.0 /opt/opencv/lib/libopencv_photo.so.3.0.0 /opt/opencv/lib/libopencv_objdetect.so.3.0.0 /opt/opencv/lib/libopencv_ml.so.3.0.0 /opt/opencv/lib/libopencv_imgproc.so.3.0.0 /opt/opencv/lib/libopencv_imgcodecs.so.3.0.0 /opt/opencv/lib/libopencv_highgui.so.3.0.0 /opt/opencv/lib/libopencv_hal.a /opt/opencv/lib/libopencv_flann.so.3.0.0 /opt/opencv/lib/libopencv_features2d.so.3.0.0 /opt/opencv/lib/libopencv_cudev.so.3.0.0 /opt/opencv/lib/libopencv_cudawarping.so.3.0.0 /opt/opencv/lib/libopencv_cudastereo.so.3.0.0 /opt/opencv/lib/libopencv_cudaoptflow.so.3.0.0 /opt/opencv/lib/libopencv_cudaobjdetect.so.3.0.0 /opt/opencv/lib/libopencv_cudalegacy.so.3.0.0 /opt/opencv/lib/libopencv_cudaimgproc.so.3.0.0 /opt/opencv/lib/libopencv_cudafilters.so.3.0.0 /opt/opencv/lib/libopencv_cudafeatures2d.so.3.0.0 /opt/opencv/lib/libopencv_cudacodec.so.3.0.0 /opt/opencv/lib/libopencv_cudabgsegm.so.3.0.0 /opt/opencv/lib/libopencv_cudaarithm.so.3.0.0 /opt/opencv/lib/libopencv_core.so.3.0.0 /opt/opencv/lib/libopencv_calib3d.so.3.0.0 /opt/opencv/lib/libopencv_hal.a -ldl -lm -lpthread -lrt /opt/opencv/share/OpenCV/3rdparty/lib/libippicv.a -lcudart -lnpp -lcufft -lcudart -lnpp -lcufft -Wl,-rpath,/usr/local/cuda/lib64:/opt/opencv/lib diff --git a/hpvm/test/pipeline/src/io.cc b/hpvm/test/pipeline/src/io.cc deleted file mode 100644 index 04744f404ebaf6e669c2bbe91600519742b57dc9..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/src/io.cc +++ /dev/null @@ -1,84 +0,0 @@ -/*************************************************************************** - *cr - *cr (C) Copyright 2010 The Board of Trustees of the - *cr University of Illinois - *cr All Rights Reserved - *cr - ***************************************************************************/ - -/* I/O routines for reading and writing matrices in column-major - * layout - */ - -#include <fstream> -#include <iostream> -#include <vector> - -char *readFile(const char *fileName) { - std::fstream f(fileName, std::fstream::in); - if (!f.good()) { - std::cerr << "Error Reading File!!" << std::endl; - return NULL; - } - - f.seekg(0, std::ios::end); - int length = f.tellg(); - f.seekg(0, std::ios::beg); - - char *buffer; - - if (length > 0) { - buffer = new char[length]; - f.read(buffer, length); - buffer[length - 1] = 0; - } else { - buffer = new char; - buffer[0] = 0; - } - - f.close(); - - return buffer; -} - -bool readColMajorMatrixFile(const char *fn, int &nr_row, int &nr_col, - std::vector<float> &v) { - std::cerr << "Opening file:" << fn << std::endl; - std::fstream f(fn, std::fstream::in); - if (!f.good()) { - return false; - } - - // Read # of rows and cols - f >> nr_row; - f >> nr_col; - - float data; - std::cerr << "Matrix dimension: " << nr_row << "x" << nr_col << std::endl; - while (f.good()) { - f >> data; - v.push_back(data); - } - v.pop_back(); // remove the duplicated last element - return true; -} - -bool writeColMajorMatrixFile(const char *fn, int nr_row, int nr_col, - std::vector<float> &v) { - std::cerr << "Opening file:" << fn << " for write." << std::endl; - std::fstream f(fn, std::fstream::out); - if (!f.good()) { - return false; - } - - // Read # of rows and cols - f << nr_row << " " << nr_col << " "; - - float data; - std::cerr << "Matrix dimension: " << nr_row << "x" << nr_col << std::endl; - for (int i = 0; i < v.size(); ++i) { - f << v[i] << ' '; - } - f << "\n"; - return true; -} diff --git a/hpvm/test/pipeline/tools/compare-output b/hpvm/test/pipeline/tools/compare-output deleted file mode 100755 index a951db7684d0875fa5b8362c5b2203f40c2a0a21..0000000000000000000000000000000000000000 --- a/hpvm/test/pipeline/tools/compare-output +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python - -# (c) Copyright 2010 The Board of Trustees of the University of Illinois. - -import sys -sys.path.insert(0, '../../common/python') - -import itertools - -import filecompare as fc -import textfilecompare as tfc - -def compare_floats(ref_list, cmp_list): - - # Lists should be the same length - if len(ref_list) != len(cmp_list): - print "Different in length" - print "ref=" + str(len(ref_list)) +" "+ str(ref_list[-2]) - print "cmp=" + str(len(cmp_list)) +" "+ str(cmp_list[-1]) - return False - - return True - - # Numbers should be equal with a tolerance of 1% - # or 0.01, whichever is greater. - for (r, c) in zip(ref_list, cmp_list): - diff = abs(r - c) - if not (diff < 0.01 or diff < 0.01 * abs(r)): - # Floats mismatch - return False - - # All numbers are within tolerance - return True - -err = "Computed values do not match the expected values\n" - -comparison = fc.Then( - fc.Compare(tfc.floats, equal=compare_floats, message=err), - fc.Compare(tfc.eof) - ) - -fc.default_main(comparison)