Last active
January 4, 2019 07:52
-
-
Save LebedevRI/288215590d46a8160742a21a4ab78749 to your computer and use it in GitHub Desktop.
rawspeed VC5Decompressor wavelet vectorization
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = '/tmp/full.ll' | |
source_filename = "/home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp" | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-pc-linux-gnu" | |
%struct.ident_t = type { i32, i32, i32, i32, i8* } | |
%"class.rawspeed::VC5Decompressor::Wavelet" = type <{ i32, i32, i16, [6 x i8], %"struct.std::array", i32, [4 x i8] }> | |
%"struct.std::array" = type { [4 x %"class.std::unique_ptr"] } | |
%"class.std::unique_ptr" = type { %"class.std::__uniq_ptr_impl" } | |
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" } | |
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" } | |
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" } | |
%"struct.std::_Head_base.1" = type { %"struct.rawspeed::VC5Decompressor::Wavelet::AbstractBand"* } | |
%"struct.rawspeed::VC5Decompressor::Wavelet::AbstractBand" = type { i32 (...)**, %"class.std::vector" } | |
%"class.std::vector" = type { %"struct.std::_Vector_base" } | |
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<short, rawspeed::DefaultInitAllocatorAdaptor<short, std::allocator<short>, void> >::_Vector_impl" } | |
%"struct.std::_Vector_base<short, rawspeed::DefaultInitAllocatorAdaptor<short, std::allocator<short>, void> >::_Vector_impl" = type { %"class.rawspeed::DefaultInitAllocatorAdaptor", i16*, i16*, i16* } | |
%"class.rawspeed::DefaultInitAllocatorAdaptor" = type { %"class.std::allocator" } | |
%"class.std::allocator" = type { i8 } | |
%"class.rawspeed::Array2DRef.2" = type { i32, i16*, i32, i32 } | |
%"class.rawspeed::Array2DRef" = type { i32, i16*, i32, i32 } | |
@0 = external hidden unnamed_addr constant %struct.ident_t, align 8 | |
@1 = external hidden unnamed_addr constant [139 x i8], align 1 | |
@2 = external hidden unnamed_addr constant [140 x i8], align 1 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #0 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 | |
declare i32 @__kmpc_global_thread_num(%struct.ident_t*) local_unnamed_addr | |
declare void @__kmpc_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32) local_unnamed_addr | |
declare i32 @__gxx_personality_v0(...) | |
declare void @__kmpc_for_static_fini(%struct.ident_t*, i32) local_unnamed_addr | |
declare void @__kmpc_barrier(%struct.ident_t*, i32) local_unnamed_addr | |
; Function Attrs: nounwind uwtable | |
define hidden void @_ZNK8rawspeed15VC5Decompressor7Wavelet18combineLowHighPassENS_10Array2DRefIsEENS2_IKsEES5_ib(%"class.rawspeed::VC5Decompressor::Wavelet"* nocapture readonly, %"class.rawspeed::Array2DRef.2"* byval nocapture readonly align 8, %"class.rawspeed::Array2DRef"* byval nocapture readonly align 8, %"class.rawspeed::Array2DRef"* byval nocapture readonly align 8, i32, i1 zeroext) local_unnamed_addr #1 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !7 { | |
%7 = alloca i32, align 4 | |
%8 = alloca i32, align 4 | |
%9 = alloca i32, align 4 | |
%10 = alloca i32, align 4 | |
%11 = alloca %struct.ident_t, align 8 | |
%12 = bitcast %struct.ident_t* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 %12, i8* align 8 bitcast (%struct.ident_t* @0 to i8*), i64 16, i1 false) | |
%13 = getelementptr inbounds %struct.ident_t, %struct.ident_t* %11, i64 0, i32 4 | |
store i8* getelementptr inbounds ([139 x i8], [139 x i8]* @1, i64 0, i64 0), i8** %13, align 8, !tbaa !10 | |
%14 = call i32 @__kmpc_global_thread_num(%struct.ident_t* nonnull %11) #2 | |
%15 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %2, i64 0, i32 0, !dbg !16 | |
%16 = load i32, i32* %15, align 8, !dbg !16 | |
%17 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %2, i64 0, i32 1, !dbg !16 | |
%18 = load i16*, i16** %17, align 8, !dbg !16 | |
%19 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %3, i64 0, i32 0, !dbg !17 | |
%20 = load i32, i32* %19, align 8, !dbg !17 | |
%21 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %3, i64 0, i32 1, !dbg !17 | |
%22 = load i16*, i16** %21, align 8, !dbg !17 | |
%23 = getelementptr inbounds %"class.rawspeed::Array2DRef.2", %"class.rawspeed::Array2DRef.2"* %1, i64 0, i32 0, !dbg !18 | |
%24 = load i32, i32* %23, align 8, !dbg !18 | |
%25 = getelementptr inbounds %"class.rawspeed::Array2DRef.2", %"class.rawspeed::Array2DRef.2"* %1, i64 0, i32 1, !dbg !18 | |
%26 = load i16*, i16** %25, align 8, !dbg !18 | |
%27 = getelementptr inbounds %"class.rawspeed::Array2DRef.2", %"class.rawspeed::Array2DRef.2"* %1, i64 0, i32 3, !dbg !19 | |
%28 = load i32, i32* %27, align 4, !dbg !19, !tbaa !20 | |
%29 = add nsw i32 %28, -1, !dbg !22 | |
%30 = icmp sgt i32 %28, 0, !dbg !22 | |
br i1 %30, label %31, label %291, !dbg !23 | |
; <label>:31: ; preds = %6 | |
%32 = bitcast i32* %7 to i8*, !dbg !23 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %32) #2, !dbg !23 | |
store i32 0, i32* %7, align 4, !dbg !24, !tbaa !25 | |
%33 = bitcast i32* %8 to i8*, !dbg !23 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %33) #2, !dbg !23 | |
store i32 %29, i32* %8, align 4, !dbg !24, !tbaa !25 | |
%34 = bitcast i32* %9 to i8*, !dbg !23 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %34) #2, !dbg !23 | |
store i32 1, i32* %9, align 4, !dbg !24, !tbaa !25 | |
%35 = bitcast i32* %10 to i8*, !dbg !23 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %35) #2, !dbg !23 | |
store i32 0, i32* %10, align 4, !dbg !24, !tbaa !25 | |
store i8* getelementptr inbounds ([139 x i8], [139 x i8]* @1, i64 0, i64 0), i8** %13, align 8, !dbg !23, !tbaa !10 | |
call void @__kmpc_for_static_init_4(%struct.ident_t* nonnull %11, i32 %14, i32 34, i32* nonnull %10, i32* nonnull %7, i32* nonnull %8, i32* nonnull %9, i32 1, i32 1) #2, !dbg !23 | |
%36 = load i32, i32* %8, align 4, !dbg !24, !tbaa !25 | |
%37 = icmp sgt i32 %36, %29, !dbg !24 | |
%38 = select i1 %37, i32 %29, i32 %36, !dbg !24 | |
store i32 %38, i32* %8, align 4, !dbg !24, !tbaa !25 | |
%39 = load i32, i32* %7, align 4, !dbg !24, !tbaa !25 | |
%40 = icmp sgt i32 %39, %38, !dbg !22 | |
br i1 %40, label %290, label %41, !dbg !23 | |
; <label>:41: ; preds = %31 | |
%42 = getelementptr inbounds %"class.rawspeed::VC5Decompressor::Wavelet", %"class.rawspeed::VC5Decompressor::Wavelet"* %0, i64 0, i32 0 | |
%43 = load i32, i32* %42, align 8, !tbaa !26 | |
%44 = icmp sgt i32 %43, 2 | |
%45 = sext i32 %39 to i64, !dbg !23 | |
%46 = sext i32 %24 to i64, !dbg !23 | |
%47 = sext i32 %16 to i64, !dbg !23 | |
%48 = sext i32 %20 to i64, !dbg !23 | |
%49 = sext i32 %38 to i64, !dbg !23 | |
%50 = sext i32 %43 to i64 | |
%51 = sext i32 %43 to i64 | |
br label %52, !dbg !23 | |
; <label>:52: ; preds = %274, %41 | |
%53 = phi i64 [ %288, %274 ], [ %45, %41 ] | |
%54 = mul nsw i64 %53, %48, !dbg !30 | |
%55 = getelementptr inbounds i16, i16* %22, i64 %54, !dbg !40 | |
%56 = load i16, i16* %55, align 2, !dbg !41, !tbaa !42 | |
%57 = sext i16 %56 to i32, !dbg !41 | |
%58 = mul nsw i64 %53, %47 | |
%59 = getelementptr inbounds i16, i16* %18, i64 %58, !dbg !43 | |
%60 = load i16, i16* %59, align 2, !dbg !49, !tbaa !42 | |
%61 = sext i16 %60 to i32, !dbg !50 | |
%62 = mul nsw i32 %61, 11, !dbg !51 | |
%63 = add nsw i64 %58, 1, !dbg !52 | |
%64 = getelementptr inbounds i16, i16* %18, i64 %63, !dbg !43 | |
%65 = load i16, i16* %64, align 2, !dbg !49, !tbaa !42 | |
%66 = sext i16 %65 to i32, !dbg !50 | |
%67 = mul nsw i32 %66, -4, !dbg !51 | |
%68 = add nsw i64 %58, 2, !dbg !52 | |
%69 = getelementptr inbounds i16, i16* %18, i64 %68, !dbg !43 | |
%70 = load i16, i16* %69, align 2, !dbg !49, !tbaa !42 | |
%71 = sext i16 %70 to i32, !dbg !50 | |
%72 = add nsw i32 %62, 4, !dbg !53 | |
%73 = add nsw i32 %72, %67, !dbg !53 | |
%74 = add nsw i32 %73, %71, !dbg !54 | |
%75 = ashr i32 %74, 3, !dbg !55 | |
%76 = add nsw i32 %75, %57, !dbg !56 | |
%77 = shl i32 %76, %4, !dbg !57 | |
%78 = ashr i32 %77, 1, !dbg !58 | |
%79 = mul nsw i32 %61, 5, !dbg !59 | |
%80 = shl nsw i32 %66, 2, !dbg !59 | |
%81 = add nsw i32 %79, 4, !dbg !63 | |
%82 = add nsw i32 %81, %80, !dbg !63 | |
%83 = sub nsw i32 %82, %71, !dbg !64 | |
%84 = ashr i32 %83, 3, !dbg !65 | |
%85 = sub nsw i32 %84, %57, !dbg !66 | |
%86 = shl i32 %85, %4, !dbg !67 | |
%87 = ashr i32 %86, 1, !dbg !68 | |
br i1 %5, label %88, label %97, !dbg !69 | |
; <label>:88: ; preds = %52 | |
%89 = icmp sgt i32 %78, 0, !dbg !70 | |
%90 = select i1 %89, i32 %78, i32 0, !dbg !70 | |
%91 = icmp ult i32 %90, 16383, !dbg !74 | |
%92 = select i1 %91, i32 %90, i32 16383, !dbg !74 | |
%93 = icmp sgt i32 %87, 0, !dbg !77 | |
%94 = select i1 %93, i32 %87, i32 0, !dbg !77 | |
%95 = icmp ult i32 %94, 16383, !dbg !79 | |
%96 = select i1 %95, i32 %94, i32 16383, !dbg !79 | |
br label %97, !dbg !81 | |
; <label>:97: ; preds = %88, %52 | |
%98 = phi i32 [ %96, %88 ], [ %87, %52 ], !dbg !82 | |
%99 = phi i32 [ %92, %88 ], [ %78, %52 ], !dbg !82 | |
%100 = trunc i32 %99 to i16, !dbg !83 | |
%101 = mul nsw i64 %53, %46, !dbg !84 | |
%102 = getelementptr inbounds i16, i16* %26, i64 %101, !dbg !87 | |
store i16 %100, i16* %102, align 2, !dbg !88, !tbaa !42 | |
%103 = trunc i32 %98 to i16, !dbg !89 | |
%104 = add nsw i64 %101, 1, !dbg !90 | |
%105 = getelementptr inbounds i16, i16* %26, i64 %104, !dbg !92 | |
store i16 %103, i16* %105, align 2, !dbg !93, !tbaa !42 | |
%106 = add nsw i64 %54, 1, !dbg !94 | |
%107 = getelementptr inbounds i16, i16* %22, i64 %106, !dbg !94 | |
%108 = load i16, i16* %107, align 2, !dbg !94, !tbaa !42 | |
%109 = sext i16 %108 to i32, !dbg !94 | |
%110 = trunc i64 %58 to i32, !dbg !94 | |
%111 = add i32 %110, 1, !dbg !94 | |
br i1 %44, label %112, label %229, !dbg !95 | |
; <label>:112: ; preds = %97 | |
br i1 %5, label %113, label %172, !dbg !95 | |
; <label>:113: ; preds = %113, %112 | |
%114 = phi i64 [ %171, %113 ], [ 1, %112 ] | |
%115 = phi i64 [ %163, %113 ], [ 2, %112 ] | |
%116 = phi i32 [ %170, %113 ], [ %111, %112 ] | |
%117 = phi i32 [ %168, %113 ], [ %109, %112 ] | |
%118 = add i32 %116, -1, !dbg !96 | |
%119 = sext i32 %118 to i64, !dbg !108 | |
%120 = getelementptr inbounds i16, i16* %18, i64 %119, !dbg !108 | |
%121 = load i16, i16* %120, align 2, !dbg !109, !tbaa !42 | |
%122 = sext i16 %121 to i32, !dbg !110 | |
%123 = sext i32 %116 to i64, !dbg !108 | |
%124 = getelementptr inbounds i16, i16* %18, i64 %123, !dbg !108 | |
%125 = load i16, i16* %124, align 2, !dbg !109, !tbaa !42 | |
%126 = sext i16 %125 to i32, !dbg !110 | |
%127 = shl nsw i32 %126, 3, !dbg !111 | |
%128 = add i32 %116, 1, !dbg !96 | |
%129 = sext i32 %128 to i64, !dbg !108 | |
%130 = getelementptr inbounds i16, i16* %18, i64 %129, !dbg !108 | |
%131 = load i16, i16* %130, align 2, !dbg !109, !tbaa !42 | |
%132 = sext i16 %131 to i32, !dbg !110 | |
%133 = add nsw i32 %122, 4, !dbg !112 | |
%134 = add nsw i32 %133, %127, !dbg !112 | |
%135 = sub nsw i32 %134, %132, !dbg !113 | |
%136 = ashr i32 %135, 3, !dbg !114 | |
%137 = add nsw i32 %136, %117, !dbg !115 | |
%138 = shl i32 %137, %4, !dbg !116 | |
%139 = ashr i32 %138, 1, !dbg !117 | |
%140 = sub nsw i32 4, %122, !dbg !118 | |
%141 = add nsw i32 %140, %127, !dbg !118 | |
%142 = add nsw i32 %141, %132, !dbg !122 | |
%143 = ashr i32 %142, 3, !dbg !123 | |
%144 = sub nsw i32 %143, %117, !dbg !124 | |
%145 = shl i32 %144, %4, !dbg !125 | |
%146 = ashr i32 %145, 1, !dbg !126 | |
%147 = icmp sgt i32 %139, 0, !dbg !127 | |
%148 = select i1 %147, i32 %139, i32 0, !dbg !127 | |
%149 = icmp ult i32 %148, 16383, !dbg !129 | |
%150 = select i1 %149, i32 %148, i32 16383, !dbg !129 | |
%151 = icmp sgt i32 %146, 0, !dbg !131 | |
%152 = select i1 %151, i32 %146, i32 0, !dbg !131 | |
%153 = icmp ult i32 %152, 16383, !dbg !133 | |
%154 = select i1 %153, i32 %152, i32 16383, !dbg !133 | |
%155 = trunc i32 %150 to i16, !dbg !135 | |
%156 = shl nuw nsw i64 %114, 1, !dbg !136 | |
%157 = add nsw i64 %156, %101, !dbg !137 | |
%158 = getelementptr inbounds i16, i16* %26, i64 %157, !dbg !139 | |
store i16 %155, i16* %158, align 2, !dbg !140, !tbaa !42 | |
%159 = trunc i32 %154 to i16, !dbg !141 | |
%160 = or i64 %156, 1, !dbg !142 | |
%161 = add nsw i64 %160, %101, !dbg !143 | |
%162 = getelementptr inbounds i16, i16* %26, i64 %161, !dbg !145 | |
store i16 %159, i16* %162, align 2, !dbg !146, !tbaa !42 | |
%163 = add nuw nsw i64 %115, 1, !dbg !147 | |
%164 = icmp slt i64 %163, %51, !dbg !148 | |
%165 = add nsw i64 %115, %54, !dbg !94 | |
%166 = getelementptr inbounds i16, i16* %22, i64 %165, !dbg !94 | |
%167 = load i16, i16* %166, align 2, !dbg !94, !tbaa !42 | |
%168 = sext i16 %167 to i32, !dbg !94 | |
%169 = trunc i64 %115 to i32, !dbg !94 | |
%170 = add i32 %169, %110, !dbg !94 | |
%171 = add nuw nsw i64 %114, 1 | |
br i1 %164, label %113, label %223, !dbg !95 | |
; <label>:172: ; preds = %172, %112 | |
%173 = phi i64 [ %222, %172 ], [ 1, %112 ] | |
%174 = phi i64 [ %214, %172 ], [ 2, %112 ] | |
%175 = phi i32 [ %221, %172 ], [ %111, %112 ] | |
%176 = phi i32 [ %219, %172 ], [ %109, %112 ] | |
%177 = add i32 %175, -1, !dbg !96 | |
%178 = sext i32 %177 to i64, !dbg !108 | |
%179 = getelementptr inbounds i16, i16* %18, i64 %178, !dbg !108 | |
%180 = load i16, i16* %179, align 2, !dbg !109, !tbaa !42 | |
%181 = sext i16 %180 to i32, !dbg !110 | |
%182 = sext i32 %175 to i64, !dbg !108 | |
%183 = getelementptr inbounds i16, i16* %18, i64 %182, !dbg !108 | |
%184 = load i16, i16* %183, align 2, !dbg !109, !tbaa !42 | |
%185 = sext i16 %184 to i32, !dbg !110 | |
%186 = shl nsw i32 %185, 3, !dbg !111 | |
%187 = add i32 %175, 1, !dbg !96 | |
%188 = sext i32 %187 to i64, !dbg !108 | |
%189 = getelementptr inbounds i16, i16* %18, i64 %188, !dbg !108 | |
%190 = load i16, i16* %189, align 2, !dbg !109, !tbaa !42 | |
%191 = sext i16 %190 to i32, !dbg !110 | |
%192 = add nsw i32 %181, 4, !dbg !112 | |
%193 = add nsw i32 %192, %186, !dbg !112 | |
%194 = sub nsw i32 %193, %191, !dbg !113 | |
%195 = ashr i32 %194, 3, !dbg !114 | |
%196 = add nsw i32 %195, %176, !dbg !115 | |
%197 = shl i32 %196, %4, !dbg !116 | |
%198 = lshr i32 %197, 1, !dbg !117 | |
%199 = sub nsw i32 4, %181, !dbg !118 | |
%200 = add nsw i32 %199, %186, !dbg !118 | |
%201 = add nsw i32 %200, %191, !dbg !122 | |
%202 = ashr i32 %201, 3, !dbg !123 | |
%203 = sub nsw i32 %202, %176, !dbg !124 | |
%204 = shl i32 %203, %4, !dbg !125 | |
%205 = lshr i32 %204, 1, !dbg !126 | |
%206 = trunc i32 %198 to i16, !dbg !135 | |
%207 = shl nuw nsw i64 %173, 1, !dbg !136 | |
%208 = add nsw i64 %207, %101, !dbg !137 | |
%209 = getelementptr inbounds i16, i16* %26, i64 %208, !dbg !139 | |
store i16 %206, i16* %209, align 2, !dbg !140, !tbaa !42 | |
%210 = trunc i32 %205 to i16, !dbg !141 | |
%211 = or i64 %207, 1, !dbg !142 | |
%212 = add nsw i64 %211, %101, !dbg !143 | |
%213 = getelementptr inbounds i16, i16* %26, i64 %212, !dbg !145 | |
store i16 %210, i16* %213, align 2, !dbg !146, !tbaa !42 | |
%214 = add nuw nsw i64 %174, 1, !dbg !147 | |
%215 = icmp slt i64 %214, %50, !dbg !148 | |
%216 = add nsw i64 %174, %54, !dbg !94 | |
%217 = getelementptr inbounds i16, i16* %22, i64 %216, !dbg !94 | |
%218 = load i16, i16* %217, align 2, !dbg !94, !tbaa !42 | |
%219 = sext i16 %218 to i32, !dbg !94 | |
%220 = trunc i64 %174 to i32, !dbg !94 | |
%221 = add i32 %220, %110, !dbg !94 | |
%222 = add nuw nsw i64 %173, 1 | |
br i1 %215, label %172, label %226, !dbg !95 | |
; <label>:223: ; preds = %113 | |
%224 = sext i16 %167 to i32, !dbg !94 | |
%225 = trunc i64 %115 to i32, !dbg !94 | |
br label %229, !dbg !149 | |
; <label>:226: ; preds = %172 | |
%227 = sext i16 %218 to i32, !dbg !94 | |
%228 = trunc i64 %174 to i32, !dbg !94 | |
br label %229, !dbg !149 | |
; <label>:229: ; preds = %226, %223, %97 | |
%230 = phi i32 [ 1, %97 ], [ %225, %223 ], [ %228, %226 ], !dbg !94 | |
%231 = phi i32 [ %109, %97 ], [ %224, %223 ], [ %227, %226 ], !dbg !94 | |
%232 = phi i32 [ %111, %97 ], [ %170, %223 ], [ %221, %226 ], !dbg !94 | |
%233 = add i32 %232, -2, !dbg !149 | |
%234 = sext i32 %233 to i64, !dbg !161 | |
%235 = getelementptr inbounds i16, i16* %18, i64 %234, !dbg !161 | |
%236 = load i16, i16* %235, align 2, !dbg !162, !tbaa !42 | |
%237 = sext i16 %236 to i32, !dbg !163 | |
%238 = add i32 %232, -1, !dbg !149 | |
%239 = sext i32 %238 to i64, !dbg !161 | |
%240 = getelementptr inbounds i16, i16* %18, i64 %239, !dbg !161 | |
%241 = load i16, i16* %240, align 2, !dbg !162, !tbaa !42 | |
%242 = sext i16 %241 to i32, !dbg !163 | |
%243 = shl nsw i32 %242, 2, !dbg !164 | |
%244 = sext i32 %232 to i64, !dbg !161 | |
%245 = getelementptr inbounds i16, i16* %18, i64 %244, !dbg !161 | |
%246 = load i16, i16* %245, align 2, !dbg !162, !tbaa !42 | |
%247 = sext i16 %246 to i32, !dbg !163 | |
%248 = mul nsw i32 %247, 5, !dbg !164 | |
%249 = sub nsw i32 4, %237, !dbg !165 | |
%250 = add nsw i32 %249, %243, !dbg !165 | |
%251 = add nsw i32 %250, %248, !dbg !166 | |
%252 = ashr i32 %251, 3, !dbg !167 | |
%253 = add nsw i32 %252, %231, !dbg !168 | |
%254 = shl i32 %253, %4, !dbg !169 | |
%255 = ashr i32 %254, 1, !dbg !170 | |
%256 = mul nsw i32 %242, -4, !dbg !171 | |
%257 = mul nsw i32 %247, 11, !dbg !171 | |
%258 = add nsw i32 %237, 4, !dbg !175 | |
%259 = add nsw i32 %258, %256, !dbg !175 | |
%260 = add nsw i32 %259, %257, !dbg !176 | |
%261 = ashr i32 %260, 3, !dbg !177 | |
%262 = sub nsw i32 %261, %231, !dbg !178 | |
%263 = shl i32 %262, %4, !dbg !179 | |
%264 = ashr i32 %263, 1, !dbg !180 | |
br i1 %5, label %265, label %274, !dbg !181 | |
; <label>:265: ; preds = %229 | |
%266 = icmp sgt i32 %255, 0, !dbg !182 | |
%267 = select i1 %266, i32 %255, i32 0, !dbg !182 | |
%268 = icmp ult i32 %267, 16383, !dbg !184 | |
%269 = select i1 %268, i32 %267, i32 16383, !dbg !184 | |
%270 = icmp sgt i32 %264, 0, !dbg !186 | |
%271 = select i1 %270, i32 %264, i32 0, !dbg !186 | |
%272 = icmp ult i32 %271, 16383, !dbg !188 | |
%273 = select i1 %272, i32 %271, i32 16383, !dbg !188 | |
br label %274, !dbg !190 | |
; <label>:274: ; preds = %265, %229 | |
%275 = phi i32 [ %273, %265 ], [ %264, %229 ], !dbg !191 | |
%276 = phi i32 [ %269, %265 ], [ %255, %229 ], !dbg !191 | |
%277 = trunc i32 %276 to i16, !dbg !192 | |
%278 = shl nuw nsw i32 %230, 1, !dbg !193 | |
%279 = trunc i64 %101 to i32, !dbg !194 | |
%280 = add nsw i32 %278, %279, !dbg !194 | |
%281 = sext i32 %280 to i64, !dbg !196 | |
%282 = getelementptr inbounds i16, i16* %26, i64 %281, !dbg !196 | |
store i16 %277, i16* %282, align 2, !dbg !197, !tbaa !42 | |
%283 = trunc i32 %275 to i16, !dbg !198 | |
%284 = or i32 %278, 1, !dbg !199 | |
%285 = add nsw i32 %284, %279, !dbg !200 | |
%286 = sext i32 %285 to i64, !dbg !202 | |
%287 = getelementptr inbounds i16, i16* %26, i64 %286, !dbg !202 | |
store i16 %283, i16* %287, align 2, !dbg !203, !tbaa !42 | |
%288 = add nsw i64 %53, 1, !dbg !22 | |
%289 = icmp slt i64 %53, %49, !dbg !22 | |
br i1 %289, label %52, label %290, !dbg !23, !llvm.loop !204 | |
; <label>:290: ; preds = %274, %31 | |
store i8* getelementptr inbounds ([140 x i8], [140 x i8]* @2, i64 0, i64 0), i8** %13, align 8, !dbg !23, !tbaa !10 | |
call void @__kmpc_for_static_fini(%struct.ident_t* nonnull %11, i32 %14) #2, !dbg !23 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %35) #2, !dbg !23 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %34) #2, !dbg !23 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %33) #2, !dbg !23 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %32) #2, !dbg !23 | |
br label %291, !dbg !23 | |
; <label>:291: ; preds = %290, %6 | |
store i8* getelementptr inbounds ([139 x i8], [139 x i8]* @1, i64 0, i64 0), i8** %13, align 8, !dbg !205, !tbaa !10 | |
call void @__kmpc_barrier(%struct.ident_t* nonnull %11, i32 %14) #2, !dbg !205 | |
ret void, !dbg !206 | |
} | |
attributes #0 = { argmemonly nounwind } | |
attributes #1 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="bdver2" "target-features"="+64bit,+aes,+avx,+bmi,+cmov,+cx16,+f16c,+fma,+fma4,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+prfchw,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+sse4a,+ssse3,+tbm,+x87,+xop,+xsave,-adx,-avx2,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vpopcntdq,-bmi2,-cldemote,-clflushopt,-clwb,-clzero,-fsgsbase,-gfni,-invpcid,-lwp,-movbe,-movdir64b,-movdiri,-mwaitx,-pconfig,-pku,-prefetchwt1,-ptwrite,-rdpid,-rdrnd,-rdseed,-rtm,-sgx,-sha,-shstk,-vaes,-vpclmulqdq,-waitpkg,-wbnoinvd,-xsavec,-xsaveopt,-xsaves" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #2 = { nounwind } | |
!llvm.dbg.cu = !{!0} | |
!llvm.module.flags = !{!3, !4, !5} | |
!llvm.ident = !{!6} | |
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 8.0.0-svn350198-1~exp1+0~20190101210959.2235~1.gbpd712dd (trunk)", isOptimized: true, runtimeVersion: 0, emissionKind: NoDebug, enums: !2, nameTableKind: None) | |
!1 = !DIFile(filename: "/home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp", directory: "/home/lebedevri/rawspeed/build-Clang-Release") | |
!2 = !{} | |
!3 = !{i32 2, !"Debug Info Version", i32 3} | |
!4 = !{i32 1, !"wchar_size", i32 4} | |
!5 = !{i32 7, !"PIC Level", i32 2} | |
!6 = !{!"clang version 8.0.0-svn350198-1~exp1+0~20190101210959.2235~1.gbpd712dd (trunk)"} | |
!7 = distinct !DISubprogram(name: "combineLowHighPass", scope: !8, file: !8, line: 217, type: !9, scopeLine: 220, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!8 = !DIFile(filename: "src/librawspeed/decompressors/VC5Decompressor.cpp", directory: "/home/lebedevri/rawspeed") | |
!9 = !DISubroutineType(types: !2) | |
!10 = !{!11, !15, i64 16} | |
!11 = !{!"_ZTS7ident_t", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !15, i64 16} | |
!12 = !{!"int", !13, i64 0} | |
!13 = !{!"omnipotent char", !14, i64 0} | |
!14 = !{!"Simple C++ TBAA"} | |
!15 = !{!"any pointer", !13, i64 0} | |
!16 = !DILocation(line: 221, column: 19, scope: !7) | |
!17 = !DILocation(line: 221, column: 24, scope: !7) | |
!18 = !DILocation(line: 221, column: 55, scope: !7) | |
!19 = !DILocation(line: 246, column: 27, scope: !7) | |
!20 = !{!21, !12, i64 20} | |
!21 = !{!"_ZTSN8rawspeed10Array2DRefIsEE", !12, i64 0, !15, i64 8, !12, i64 16, !12, i64 20} | |
!22 = !DILocation(line: 246, column: 3, scope: !7) | |
!23 = !DILocation(line: 244, column: 9, scope: !7) | |
!24 = !DILocation(line: 246, column: 8, scope: !7) | |
!25 = !{!12, !12, i64 0} | |
!26 = !{!27, !12, i64 0} | |
!27 = !{!"_ZTSN8rawspeed15VC5Decompressor7WaveletE", !12, i64 0, !12, i64 4, !28, i64 8, !29, i64 16, !12, i64 48} | |
!28 = !{!"short", !13, i64 0} | |
!29 = !{!"_ZTSSt5arrayISt10unique_ptrIN8rawspeed15VC5Decompressor7Wavelet12AbstractBandESt14default_deleteIS4_EELm4EE", !13, i64 0} | |
!30 = !DILocation(line: 84, column: 18, scope: !31, inlinedAt: !33) | |
!31 = distinct !DISubprogram(name: "operator()", scope: !32, file: !32, line: 78, type: !9, scopeLine: 78, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!32 = !DIFile(filename: "../src/librawspeed/common/Array2DRef.h", directory: "/home/lebedevri/rawspeed/build-Clang-Release") | |
!33 = distinct !DILocation(line: 125, column: 33, scope: !34, inlinedAt: !35) | |
!34 = distinct !DISubprogram(name: "operator()<(lambda at /home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:223:22)>", scope: !8, file: !8, line: 122, type: !9, scopeLine: 124, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!35 = distinct !DILocation(line: 228, column: 14, scope: !36, inlinedAt: !37) | |
!36 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 226, type: !9, scopeLine: 227, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!37 = distinct !DILocation(line: 231, column: 16, scope: !38, inlinedAt: !39) | |
!38 = distinct !DISubprogram(name: "operator()<rawspeed::(anonymous namespace)::ConvolutionParams::First>", scope: !8, file: !8, line: 221, type: !9, scopeLine: 222, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!39 = distinct !DILocation(line: 249, column: 5, scope: !7) | |
!40 = !DILocation(line: 84, column: 10, scope: !31, inlinedAt: !33) | |
!41 = !DILocation(line: 125, column: 33, scope: !34, inlinedAt: !35) | |
!42 = !{!28, !28, i64 0} | |
!43 = !DILocation(line: 84, column: 10, scope: !31, inlinedAt: !44) | |
!44 = distinct !DILocation(line: 224, column: 14, scope: !45, inlinedAt: !46) | |
!45 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 223, type: !9, scopeLine: 223, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!46 = distinct !DILocation(line: 129, column: 29, scope: !47, inlinedAt: !48) | |
!47 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 126, type: !9, scopeLine: 126, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!48 = distinct !DILocation(line: 126, column: 23, scope: !34, inlinedAt: !35) | |
!49 = !DILocation(line: 224, column: 14, scope: !45, inlinedAt: !46) | |
!50 = !DILocation(line: 129, column: 29, scope: !47, inlinedAt: !48) | |
!51 = !DILocation(line: 129, column: 27, scope: !47, inlinedAt: !48) | |
!52 = !DILocation(line: 84, column: 27, scope: !31, inlinedAt: !44) | |
!53 = !DILocation(line: 129, column: 12, scope: !47, inlinedAt: !48) | |
!54 = !DILocation(line: 133, column: 16, scope: !34, inlinedAt: !35) | |
!55 = !DILocation(line: 135, column: 35, scope: !34, inlinedAt: !35) | |
!56 = !DILocation(line: 136, column: 29, scope: !34, inlinedAt: !35) | |
!57 = !DILocation(line: 138, column: 9, scope: !34, inlinedAt: !35) | |
!58 = !DILocation(line: 140, column: 9, scope: !34, inlinedAt: !35) | |
!59 = !DILocation(line: 129, column: 27, scope: !47, inlinedAt: !60) | |
!60 = distinct !DILocation(line: 126, column: 23, scope: !34, inlinedAt: !61) | |
!61 = distinct !DILocation(line: 228, column: 14, scope: !36, inlinedAt: !62) | |
!62 = distinct !DILocation(line: 232, column: 15, scope: !38, inlinedAt: !39) | |
!63 = !DILocation(line: 129, column: 12, scope: !47, inlinedAt: !60) | |
!64 = !DILocation(line: 133, column: 16, scope: !34, inlinedAt: !61) | |
!65 = !DILocation(line: 135, column: 35, scope: !34, inlinedAt: !61) | |
!66 = !DILocation(line: 136, column: 29, scope: !34, inlinedAt: !61) | |
!67 = !DILocation(line: 138, column: 9, scope: !34, inlinedAt: !61) | |
!68 = !DILocation(line: 140, column: 9, scope: !34, inlinedAt: !61) | |
!69 = !DILocation(line: 234, column: 9, scope: !38, inlinedAt: !39) | |
!70 = !DILocation(line: 155, column: 11, scope: !71, inlinedAt: !73) | |
!71 = distinct !DISubprogram(name: "clampBits<int>", scope: !72, file: !72, line: 151, type: !9, scopeLine: 153, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!72 = !DIFile(filename: "../src/librawspeed/common/Common.h", directory: "/home/lebedevri/rawspeed/build-Clang-Release") | |
!73 = distinct !DILocation(line: 235, column: 14, scope: !38, inlinedAt: !39) | |
!74 = !DILocation(line: 145, column: 10, scope: !75, inlinedAt: !76) | |
!75 = distinct !DISubprogram(name: "clampBits<unsigned int>", scope: !72, file: !72, line: 133, type: !9, scopeLine: 136, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!76 = distinct !DILocation(line: 158, column: 10, scope: !71, inlinedAt: !73) | |
!77 = !DILocation(line: 155, column: 11, scope: !71, inlinedAt: !78) | |
!78 = distinct !DILocation(line: 236, column: 13, scope: !38, inlinedAt: !39) | |
!79 = !DILocation(line: 145, column: 10, scope: !75, inlinedAt: !80) | |
!80 = distinct !DILocation(line: 158, column: 10, scope: !71, inlinedAt: !78) | |
!81 = !DILocation(line: 237, column: 5, scope: !38, inlinedAt: !39) | |
!82 = !DILocation(line: 0, scope: !38, inlinedAt: !39) | |
!83 = !DILocation(line: 238, column: 42, scope: !38, inlinedAt: !39) | |
!84 = !DILocation(line: 84, column: 18, scope: !85, inlinedAt: !86) | |
!85 = distinct !DISubprogram(name: "operator()", scope: !32, file: !32, line: 78, type: !9, scopeLine: 78, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!86 = distinct !DILocation(line: 238, column: 5, scope: !38, inlinedAt: !39) | |
!87 = !DILocation(line: 84, column: 10, scope: !85, inlinedAt: !86) | |
!88 = !DILocation(line: 238, column: 19, scope: !38, inlinedAt: !39) | |
!89 = !DILocation(line: 239, column: 46, scope: !38, inlinedAt: !39) | |
!90 = !DILocation(line: 84, column: 27, scope: !85, inlinedAt: !91) | |
!91 = distinct !DILocation(line: 239, column: 5, scope: !38, inlinedAt: !39) | |
!92 = !DILocation(line: 84, column: 10, scope: !85, inlinedAt: !91) | |
!93 = !DILocation(line: 239, column: 23, scope: !38, inlinedAt: !39) | |
!94 = !DILocation(line: 0, scope: !7) | |
!95 = !DILocation(line: 251, column: 5, scope: !7) | |
!96 = !DILocation(line: 84, column: 27, scope: !31, inlinedAt: !97) | |
!97 = distinct !DILocation(line: 224, column: 14, scope: !98, inlinedAt: !99) | |
!98 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 223, type: !9, scopeLine: 223, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!99 = distinct !DILocation(line: 129, column: 29, scope: !100, inlinedAt: !101) | |
!100 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 126, type: !9, scopeLine: 126, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!101 = distinct !DILocation(line: 126, column: 23, scope: !102, inlinedAt: !103) | |
!102 = distinct !DISubprogram(name: "operator()<(lambda at /home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:223:22)>", scope: !8, file: !8, line: 122, type: !9, scopeLine: 124, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!103 = distinct !DILocation(line: 228, column: 14, scope: !104, inlinedAt: !105) | |
!104 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 226, type: !9, scopeLine: 227, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!105 = distinct !DILocation(line: 231, column: 16, scope: !106, inlinedAt: !107) | |
!106 = distinct !DISubprogram(name: "operator()<rawspeed::(anonymous namespace)::ConvolutionParams::Middle>", scope: !8, file: !8, line: 221, type: !9, scopeLine: 222, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!107 = distinct !DILocation(line: 252, column: 7, scope: !7) | |
!108 = !DILocation(line: 84, column: 10, scope: !31, inlinedAt: !97) | |
!109 = !DILocation(line: 224, column: 14, scope: !98, inlinedAt: !99) | |
!110 = !DILocation(line: 129, column: 29, scope: !100, inlinedAt: !101) | |
!111 = !DILocation(line: 129, column: 27, scope: !100, inlinedAt: !101) | |
!112 = !DILocation(line: 129, column: 12, scope: !100, inlinedAt: !101) | |
!113 = !DILocation(line: 133, column: 16, scope: !102, inlinedAt: !103) | |
!114 = !DILocation(line: 135, column: 35, scope: !102, inlinedAt: !103) | |
!115 = !DILocation(line: 136, column: 29, scope: !102, inlinedAt: !103) | |
!116 = !DILocation(line: 138, column: 9, scope: !102, inlinedAt: !103) | |
!117 = !DILocation(line: 140, column: 9, scope: !102, inlinedAt: !103) | |
!118 = !DILocation(line: 129, column: 12, scope: !100, inlinedAt: !119) | |
!119 = distinct !DILocation(line: 126, column: 23, scope: !102, inlinedAt: !120) | |
!120 = distinct !DILocation(line: 228, column: 14, scope: !104, inlinedAt: !121) | |
!121 = distinct !DILocation(line: 232, column: 15, scope: !106, inlinedAt: !107) | |
!122 = !DILocation(line: 133, column: 16, scope: !102, inlinedAt: !120) | |
!123 = !DILocation(line: 135, column: 35, scope: !102, inlinedAt: !120) | |
!124 = !DILocation(line: 136, column: 29, scope: !102, inlinedAt: !120) | |
!125 = !DILocation(line: 138, column: 9, scope: !102, inlinedAt: !120) | |
!126 = !DILocation(line: 140, column: 9, scope: !102, inlinedAt: !120) | |
!127 = !DILocation(line: 155, column: 11, scope: !71, inlinedAt: !128) | |
!128 = distinct !DILocation(line: 235, column: 14, scope: !106, inlinedAt: !107) | |
!129 = !DILocation(line: 145, column: 10, scope: !75, inlinedAt: !130) | |
!130 = distinct !DILocation(line: 158, column: 10, scope: !71, inlinedAt: !128) | |
!131 = !DILocation(line: 155, column: 11, scope: !71, inlinedAt: !132) | |
!132 = distinct !DILocation(line: 236, column: 13, scope: !106, inlinedAt: !107) | |
!133 = !DILocation(line: 145, column: 10, scope: !75, inlinedAt: !134) | |
!134 = distinct !DILocation(line: 158, column: 10, scope: !71, inlinedAt: !132) | |
!135 = !DILocation(line: 238, column: 42, scope: !106, inlinedAt: !107) | |
!136 = !DILocation(line: 238, column: 11, scope: !106, inlinedAt: !107) | |
!137 = !DILocation(line: 84, column: 27, scope: !85, inlinedAt: !138) | |
!138 = distinct !DILocation(line: 238, column: 5, scope: !106, inlinedAt: !107) | |
!139 = !DILocation(line: 84, column: 10, scope: !85, inlinedAt: !138) | |
!140 = !DILocation(line: 238, column: 19, scope: !106, inlinedAt: !107) | |
!141 = !DILocation(line: 239, column: 46, scope: !106, inlinedAt: !107) | |
!142 = !DILocation(line: 239, column: 15, scope: !106, inlinedAt: !107) | |
!143 = !DILocation(line: 84, column: 27, scope: !85, inlinedAt: !144) | |
!144 = distinct !DILocation(line: 239, column: 5, scope: !106, inlinedAt: !107) | |
!145 = !DILocation(line: 84, column: 10, scope: !85, inlinedAt: !144) | |
!146 = !DILocation(line: 239, column: 23, scope: !106, inlinedAt: !107) | |
!147 = !DILocation(line: 251, column: 19, scope: !7) | |
!148 = !DILocation(line: 251, column: 23, scope: !7) | |
!149 = !DILocation(line: 84, column: 27, scope: !31, inlinedAt: !150) | |
!150 = distinct !DILocation(line: 224, column: 14, scope: !151, inlinedAt: !152) | |
!151 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 223, type: !9, scopeLine: 223, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!152 = distinct !DILocation(line: 129, column: 29, scope: !153, inlinedAt: !154) | |
!153 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 126, type: !9, scopeLine: 126, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!154 = distinct !DILocation(line: 126, column: 23, scope: !155, inlinedAt: !156) | |
!155 = distinct !DISubprogram(name: "operator()<(lambda at /home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:223:22)>", scope: !8, file: !8, line: 122, type: !9, scopeLine: 124, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!156 = distinct !DILocation(line: 228, column: 14, scope: !157, inlinedAt: !158) | |
!157 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 226, type: !9, scopeLine: 227, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!158 = distinct !DILocation(line: 231, column: 16, scope: !159, inlinedAt: !160) | |
!159 = distinct !DISubprogram(name: "operator()<rawspeed::(anonymous namespace)::ConvolutionParams::Last>", scope: !8, file: !8, line: 221, type: !9, scopeLine: 222, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!160 = distinct !DILocation(line: 255, column: 5, scope: !7) | |
!161 = !DILocation(line: 84, column: 10, scope: !31, inlinedAt: !150) | |
!162 = !DILocation(line: 224, column: 14, scope: !151, inlinedAt: !152) | |
!163 = !DILocation(line: 129, column: 29, scope: !153, inlinedAt: !154) | |
!164 = !DILocation(line: 129, column: 27, scope: !153, inlinedAt: !154) | |
!165 = !DILocation(line: 129, column: 12, scope: !153, inlinedAt: !154) | |
!166 = !DILocation(line: 133, column: 16, scope: !155, inlinedAt: !156) | |
!167 = !DILocation(line: 135, column: 35, scope: !155, inlinedAt: !156) | |
!168 = !DILocation(line: 136, column: 29, scope: !155, inlinedAt: !156) | |
!169 = !DILocation(line: 138, column: 9, scope: !155, inlinedAt: !156) | |
!170 = !DILocation(line: 140, column: 9, scope: !155, inlinedAt: !156) | |
!171 = !DILocation(line: 129, column: 27, scope: !153, inlinedAt: !172) | |
!172 = distinct !DILocation(line: 126, column: 23, scope: !155, inlinedAt: !173) | |
!173 = distinct !DILocation(line: 228, column: 14, scope: !157, inlinedAt: !174) | |
!174 = distinct !DILocation(line: 232, column: 15, scope: !159, inlinedAt: !160) | |
!175 = !DILocation(line: 129, column: 12, scope: !153, inlinedAt: !172) | |
!176 = !DILocation(line: 133, column: 16, scope: !155, inlinedAt: !173) | |
!177 = !DILocation(line: 135, column: 35, scope: !155, inlinedAt: !173) | |
!178 = !DILocation(line: 136, column: 29, scope: !155, inlinedAt: !173) | |
!179 = !DILocation(line: 138, column: 9, scope: !155, inlinedAt: !173) | |
!180 = !DILocation(line: 140, column: 9, scope: !155, inlinedAt: !173) | |
!181 = !DILocation(line: 234, column: 9, scope: !159, inlinedAt: !160) | |
!182 = !DILocation(line: 155, column: 11, scope: !71, inlinedAt: !183) | |
!183 = distinct !DILocation(line: 235, column: 14, scope: !159, inlinedAt: !160) | |
!184 = !DILocation(line: 145, column: 10, scope: !75, inlinedAt: !185) | |
!185 = distinct !DILocation(line: 158, column: 10, scope: !71, inlinedAt: !183) | |
!186 = !DILocation(line: 155, column: 11, scope: !71, inlinedAt: !187) | |
!187 = distinct !DILocation(line: 236, column: 13, scope: !159, inlinedAt: !160) | |
!188 = !DILocation(line: 145, column: 10, scope: !75, inlinedAt: !189) | |
!189 = distinct !DILocation(line: 158, column: 10, scope: !71, inlinedAt: !187) | |
!190 = !DILocation(line: 237, column: 5, scope: !159, inlinedAt: !160) | |
!191 = !DILocation(line: 0, scope: !159, inlinedAt: !160) | |
!192 = !DILocation(line: 238, column: 42, scope: !159, inlinedAt: !160) | |
!193 = !DILocation(line: 238, column: 11, scope: !159, inlinedAt: !160) | |
!194 = !DILocation(line: 84, column: 27, scope: !85, inlinedAt: !195) | |
!195 = distinct !DILocation(line: 238, column: 5, scope: !159, inlinedAt: !160) | |
!196 = !DILocation(line: 84, column: 10, scope: !85, inlinedAt: !195) | |
!197 = !DILocation(line: 238, column: 19, scope: !159, inlinedAt: !160) | |
!198 = !DILocation(line: 239, column: 46, scope: !159, inlinedAt: !160) | |
!199 = !DILocation(line: 239, column: 15, scope: !159, inlinedAt: !160) | |
!200 = !DILocation(line: 84, column: 27, scope: !85, inlinedAt: !201) | |
!201 = distinct !DILocation(line: 239, column: 5, scope: !159, inlinedAt: !160) | |
!202 = !DILocation(line: 84, column: 10, scope: !85, inlinedAt: !201) | |
!203 = !DILocation(line: 239, column: 23, scope: !159, inlinedAt: !160) | |
!204 = distinct !{!204, !23, !205} | |
!205 = !DILocation(line: 244, column: 33, scope: !7) | |
!206 = !DILocation(line: 257, column: 1, scope: !7) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = '/tmp/full.ll' | |
source_filename = "/home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp" | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-pc-linux-gnu" | |
%struct.ident_t = type { i32, i32, i32, i32, i8* } | |
%"class.rawspeed::VC5Decompressor::Wavelet" = type <{ i32, i32, i16, [6 x i8], %"struct.std::array", i32, [4 x i8] }> | |
%"struct.std::array" = type { [4 x %"class.std::unique_ptr"] } | |
%"class.std::unique_ptr" = type { %"class.std::__uniq_ptr_impl" } | |
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" } | |
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" } | |
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" } | |
%"struct.std::_Head_base.1" = type { %"struct.rawspeed::VC5Decompressor::Wavelet::AbstractBand"* } | |
%"struct.rawspeed::VC5Decompressor::Wavelet::AbstractBand" = type { i32 (...)**, %"class.std::vector" } | |
%"class.std::vector" = type { %"struct.std::_Vector_base" } | |
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<short, rawspeed::DefaultInitAllocatorAdaptor<short, std::allocator<short>, void> >::_Vector_impl" } | |
%"struct.std::_Vector_base<short, rawspeed::DefaultInitAllocatorAdaptor<short, std::allocator<short>, void> >::_Vector_impl" = type { %"class.rawspeed::DefaultInitAllocatorAdaptor", i16*, i16*, i16* } | |
%"class.rawspeed::DefaultInitAllocatorAdaptor" = type { %"class.std::allocator" } | |
%"class.std::allocator" = type { i8 } | |
%"class.rawspeed::Array2DRef.2" = type { i32, i16*, i32, i32 } | |
%"class.rawspeed::Array2DRef" = type { i32, i16*, i32, i32 } | |
@0 = external hidden unnamed_addr constant %struct.ident_t, align 8 | |
@1 = external hidden unnamed_addr constant [136 x i8], align 1 | |
@2 = external hidden unnamed_addr constant [137 x i8], align 1 | |
; Function Attrs: nounwind uwtable | |
define hidden void @_ZNK8rawspeed15VC5Decompressor7Wavelet15reconstructPassENS_10Array2DRefIsEENS2_IKsEES5_(%"class.rawspeed::VC5Decompressor::Wavelet"* nocapture readonly, %"class.rawspeed::Array2DRef.2"* byval nocapture readonly align 8, %"class.rawspeed::Array2DRef"* byval nocapture readonly align 8, %"class.rawspeed::Array2DRef"* byval nocapture readonly align 8) local_unnamed_addr #0 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !7 { | |
%5 = alloca i32, align 4 | |
%6 = alloca i32, align 4 | |
%7 = alloca i32, align 4 | |
%8 = alloca i32, align 4 | |
%9 = alloca %struct.ident_t, align 8 | |
%10 = bitcast %struct.ident_t* %9 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 %10, i8* align 8 bitcast (%struct.ident_t* @0 to i8*), i64 16, i1 false) | |
%11 = getelementptr inbounds %struct.ident_t, %struct.ident_t* %9, i64 0, i32 4 | |
store i8* getelementptr inbounds ([136 x i8], [136 x i8]* @1, i64 0, i64 0), i8** %11, align 8, !tbaa !10 | |
%12 = call i32 @__kmpc_global_thread_num(%struct.ident_t* nonnull %9) #2 | |
%13 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %3, i64 0, i32 0, !dbg !16 | |
%14 = load i32, i32* %13, align 8, !dbg !16 | |
%15 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %3, i64 0, i32 1, !dbg !16 | |
%16 = load i16*, i16** %15, align 8, !dbg !16 | |
%17 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %2, i64 0, i32 0, !dbg !17 | |
%18 = load i32, i32* %17, align 8, !dbg !17 | |
%19 = getelementptr inbounds %"class.rawspeed::Array2DRef", %"class.rawspeed::Array2DRef"* %2, i64 0, i32 1, !dbg !17 | |
%20 = load i16*, i16** %19, align 8, !dbg !17 | |
%21 = getelementptr inbounds %"class.rawspeed::Array2DRef.2", %"class.rawspeed::Array2DRef.2"* %1, i64 0, i32 0, !dbg !18 | |
%22 = load i32, i32* %21, align 8, !dbg !18 | |
%23 = getelementptr inbounds %"class.rawspeed::Array2DRef.2", %"class.rawspeed::Array2DRef.2"* %1, i64 0, i32 1, !dbg !18 | |
%24 = load i16*, i16** %23, align 8, !dbg !18 | |
%25 = getelementptr inbounds %"class.rawspeed::VC5Decompressor::Wavelet", %"class.rawspeed::VC5Decompressor::Wavelet"* %0, i64 0, i32 1, !dbg !19 | |
%26 = load i32, i32* %25, align 4, !dbg !19, !tbaa !20 | |
%27 = add nsw i32 %26, -1, !dbg !24 | |
%28 = icmp sgt i32 %26, 0, !dbg !24 | |
br i1 %28, label %29, label %219, !dbg !25 | |
; <label>:29: ; preds = %4 | |
%30 = bitcast i32* %5 to i8*, !dbg !25 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %30) #2, !dbg !25 | |
store i32 0, i32* %5, align 4, !dbg !26, !tbaa !27 | |
%31 = bitcast i32* %6 to i8*, !dbg !25 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %31) #2, !dbg !25 | |
store i32 %27, i32* %6, align 4, !dbg !26, !tbaa !27 | |
%32 = bitcast i32* %7 to i8*, !dbg !25 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %32) #2, !dbg !25 | |
store i32 1, i32* %7, align 4, !dbg !26, !tbaa !27 | |
%33 = bitcast i32* %8 to i8*, !dbg !25 | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %33) #2, !dbg !25 | |
store i32 0, i32* %8, align 4, !dbg !26, !tbaa !27 | |
store i8* getelementptr inbounds ([136 x i8], [136 x i8]* @1, i64 0, i64 0), i8** %11, align 8, !dbg !25, !tbaa !10 | |
call void @__kmpc_for_static_init_4(%struct.ident_t* nonnull %9, i32 %12, i32 34, i32* nonnull %8, i32* nonnull %5, i32* nonnull %6, i32* nonnull %7, i32 1, i32 1) #2, !dbg !25 | |
%34 = load i32, i32* %6, align 4, !dbg !26, !tbaa !27 | |
%35 = icmp sgt i32 %34, %27, !dbg !26 | |
%36 = select i1 %35, i32 %27, i32 %34, !dbg !26 | |
store i32 %36, i32* %6, align 4, !dbg !26, !tbaa !27 | |
%37 = load i32, i32* %5, align 4, !dbg !26, !tbaa !27 | |
%38 = icmp sgt i32 %37, %36, !dbg !24 | |
br i1 %38, label %218, label %39, !dbg !25 | |
; <label>:39: ; preds = %29 | |
%40 = getelementptr inbounds %"class.rawspeed::VC5Decompressor::Wavelet", %"class.rawspeed::VC5Decompressor::Wavelet"* %0, i64 0, i32 0 | |
%41 = sext i32 %14 to i64 | |
%42 = shl nsw i64 %41, 1 | |
%43 = sext i32 %22 to i64, !dbg !25 | |
%44 = sext i32 %37 to i64, !dbg !25 | |
%45 = sext i32 %18 to i64, !dbg !25 | |
%46 = sext i32 %36 to i64, !dbg !25 | |
br label %47, !dbg !25 | |
; <label>:47: ; preds = %215, %39 | |
%48 = phi i64 [ %216, %215 ], [ %44, %39 ] | |
%49 = icmp eq i64 %48, 0 | |
br i1 %49, label %50, label %94, !dbg !28 | |
; <label>:50: ; preds = %47 | |
%51 = load i32, i32* %40, align 8, !dbg !29, !tbaa !30 | |
%52 = icmp sgt i32 %51, 0, !dbg !31 | |
br i1 %52, label %53, label %215, !dbg !32 | |
; <label>:53: ; preds = %50 | |
%54 = sext i32 %51 to i64, !dbg !32 | |
br label %55, !dbg !32 | |
; <label>:55: ; preds = %55, %53 | |
%56 = phi i64 [ 0, %53 ], [ %92, %55 ] | |
%57 = getelementptr inbounds i16, i16* %20, i64 %56, !dbg !33 | |
%58 = load i16, i16* %57, align 2, !dbg !43, !tbaa !44 | |
%59 = sext i16 %58 to i32, !dbg !43 | |
%60 = getelementptr inbounds i16, i16* %16, i64 %56, !dbg !45 | |
%61 = load i16, i16* %60, align 2, !dbg !51, !tbaa !44 | |
%62 = sext i16 %61 to i32, !dbg !52 | |
%63 = mul nsw i32 %62, 11, !dbg !53 | |
%64 = add nsw i64 %56, %41, !dbg !54 | |
%65 = getelementptr inbounds i16, i16* %16, i64 %64, !dbg !45 | |
%66 = load i16, i16* %65, align 2, !dbg !51, !tbaa !44 | |
%67 = sext i16 %66 to i32, !dbg !52 | |
%68 = mul nsw i32 %67, -4, !dbg !53 | |
%69 = add nsw i64 %42, %56, !dbg !54 | |
%70 = getelementptr inbounds i16, i16* %16, i64 %69, !dbg !45 | |
%71 = load i16, i16* %70, align 2, !dbg !51, !tbaa !44 | |
%72 = sext i16 %71 to i32, !dbg !52 | |
%73 = add nsw i32 %63, 4, !dbg !55 | |
%74 = add nsw i32 %73, %68, !dbg !55 | |
%75 = add nsw i32 %74, %72, !dbg !56 | |
%76 = lshr i32 %75, 3, !dbg !57 | |
%77 = add nsw i32 %76, %59, !dbg !58 | |
%78 = lshr i32 %77, 1, !dbg !59 | |
%79 = mul nsw i32 %62, 5, !dbg !60 | |
%80 = shl nsw i32 %67, 2, !dbg !60 | |
%81 = add nsw i32 %79, 4, !dbg !64 | |
%82 = add nsw i32 %81, %80, !dbg !64 | |
%83 = sub nsw i32 %82, %72, !dbg !65 | |
%84 = lshr i32 %83, 3, !dbg !66 | |
%85 = sub nsw i32 %84, %59, !dbg !67 | |
%86 = lshr i32 %85, 1, !dbg !68 | |
%87 = trunc i32 %78 to i16, !dbg !69 | |
%88 = getelementptr inbounds i16, i16* %24, i64 %56, !dbg !70 | |
store i16 %87, i16* %88, align 2, !dbg !73, !tbaa !44 | |
%89 = trunc i32 %86 to i16, !dbg !74 | |
%90 = add nsw i64 %56, %43, !dbg !75 | |
%91 = getelementptr inbounds i16, i16* %24, i64 %90, !dbg !77 | |
store i16 %89, i16* %91, align 2, !dbg !78, !tbaa !44 | |
%92 = add nuw nsw i64 %56, 1, !dbg !79 | |
%93 = icmp slt i64 %92, %54, !dbg !31 | |
br i1 %93, label %55, label %215, !dbg !32, !llvm.loop !80 | |
; <label>:94: ; preds = %47 | |
%95 = trunc i64 %48 to i32, !dbg !82 | |
%96 = add i32 %95, 1, !dbg !82 | |
%97 = load i32, i32* %25, align 4, !dbg !83, !tbaa !20 | |
%98 = icmp slt i32 %96, %97, !dbg !84 | |
%99 = load i32, i32* %40, align 8, !dbg !85, !tbaa !30 | |
%100 = icmp sgt i32 %99, 0, !dbg !85 | |
br i1 %98, label %118, label %101, !dbg !86 | |
; <label>:101: ; preds = %94 | |
br i1 %100, label %102, label %215, !dbg !87 | |
; <label>:102: ; preds = %101 | |
%103 = mul nsw i64 %48, %45 | |
%104 = add i32 %95, -2 | |
%105 = mul nsw i32 %104, %14 | |
%106 = add i32 %95, -1 | |
%107 = mul nsw i32 %106, %14 | |
%108 = mul nsw i64 %48, %41 | |
%109 = shl nsw i32 %95, 1 | |
%110 = mul nsw i32 %109, %22 | |
%111 = or i32 %109, 1 | |
%112 = mul nsw i32 %111, %22 | |
%113 = sext i32 %112 to i64, !dbg !87 | |
%114 = sext i32 %110 to i64, !dbg !87 | |
%115 = sext i32 %107 to i64, !dbg !87 | |
%116 = sext i32 %105 to i64, !dbg !87 | |
%117 = sext i32 %99 to i64, !dbg !87 | |
br label %173, !dbg !87 | |
; <label>:118: ; preds = %94 | |
br i1 %100, label %119, label %215, !dbg !88 | |
; <label>:119: ; preds = %118 | |
%120 = mul nsw i64 %48, %45 | |
%121 = add i32 %95, -1 | |
%122 = mul nsw i32 %121, %14 | |
%123 = mul nsw i64 %48, %41 | |
%124 = mul nsw i32 %96, %14 | |
%125 = shl nsw i32 %95, 1 | |
%126 = mul nsw i32 %125, %22 | |
%127 = or i32 %125, 1 | |
%128 = mul nsw i32 %127, %22 | |
%129 = sext i32 %128 to i64, !dbg !88 | |
%130 = sext i32 %126 to i64, !dbg !88 | |
%131 = sext i32 %124 to i64, !dbg !88 | |
%132 = sext i32 %122 to i64, !dbg !88 | |
%133 = sext i32 %99 to i64, !dbg !88 | |
br label %134, !dbg !88 | |
; <label>:134: ; preds = %134, %119 | |
%135 = phi i64 [ 0, %119 ], [ %171, %134 ] | |
%136 = add nsw i64 %135, %120, !dbg !89 | |
%137 = getelementptr inbounds i16, i16* %20, i64 %136, !dbg !97 | |
%138 = load i16, i16* %137, align 2, !dbg !98, !tbaa !44 | |
%139 = sext i16 %138 to i32, !dbg !98 | |
%140 = add nsw i64 %135, %132, !dbg !99 | |
%141 = getelementptr inbounds i16, i16* %16, i64 %140, !dbg !105 | |
%142 = load i16, i16* %141, align 2, !dbg !106, !tbaa !44 | |
%143 = sext i16 %142 to i32, !dbg !107 | |
%144 = add nsw i64 %135, %123, !dbg !99 | |
%145 = getelementptr inbounds i16, i16* %16, i64 %144, !dbg !105 | |
%146 = load i16, i16* %145, align 2, !dbg !106, !tbaa !44 | |
%147 = sext i16 %146 to i32, !dbg !107 | |
%148 = shl nsw i32 %147, 3, !dbg !108 | |
%149 = add nsw i64 %135, %131, !dbg !99 | |
%150 = getelementptr inbounds i16, i16* %16, i64 %149, !dbg !105 | |
%151 = load i16, i16* %150, align 2, !dbg !106, !tbaa !44 | |
%152 = sext i16 %151 to i32, !dbg !107 | |
%153 = add nsw i32 %143, 4, !dbg !109 | |
%154 = add nsw i32 %153, %148, !dbg !109 | |
%155 = sub nsw i32 %154, %152, !dbg !110 | |
%156 = lshr i32 %155, 3, !dbg !111 | |
%157 = add nsw i32 %156, %139, !dbg !112 | |
%158 = lshr i32 %157, 1, !dbg !113 | |
%159 = sub nsw i32 4, %143, !dbg !114 | |
%160 = add nsw i32 %159, %148, !dbg !114 | |
%161 = add nsw i32 %160, %152, !dbg !118 | |
%162 = lshr i32 %161, 3, !dbg !119 | |
%163 = sub nsw i32 %162, %139, !dbg !120 | |
%164 = lshr i32 %163, 1, !dbg !121 | |
%165 = trunc i32 %158 to i16, !dbg !122 | |
%166 = add nsw i64 %135, %130, !dbg !123 | |
%167 = getelementptr inbounds i16, i16* %24, i64 %166, !dbg !125 | |
store i16 %165, i16* %167, align 2, !dbg !126, !tbaa !44 | |
%168 = trunc i32 %164 to i16, !dbg !127 | |
%169 = add nsw i64 %135, %129, !dbg !128 | |
%170 = getelementptr inbounds i16, i16* %24, i64 %169, !dbg !130 | |
store i16 %168, i16* %170, align 2, !dbg !131, !tbaa !44 | |
%171 = add nuw nsw i64 %135, 1, !dbg !132 | |
%172 = icmp slt i64 %171, %133, !dbg !133 | |
br i1 %172, label %134, label %215, !dbg !88, !llvm.loop !134 | |
; <label>:173: ; preds = %173, %102 | |
%174 = phi i64 [ 0, %102 ], [ %213, %173 ] | |
%175 = add nsw i64 %174, %103, !dbg !136 | |
%176 = getelementptr inbounds i16, i16* %20, i64 %175, !dbg !144 | |
%177 = load i16, i16* %176, align 2, !dbg !145, !tbaa !44 | |
%178 = sext i16 %177 to i32, !dbg !145 | |
%179 = add nsw i64 %174, %116, !dbg !146 | |
%180 = getelementptr inbounds i16, i16* %16, i64 %179, !dbg !152 | |
%181 = load i16, i16* %180, align 2, !dbg !153, !tbaa !44 | |
%182 = sext i16 %181 to i32, !dbg !154 | |
%183 = add nsw i64 %174, %115, !dbg !146 | |
%184 = getelementptr inbounds i16, i16* %16, i64 %183, !dbg !152 | |
%185 = load i16, i16* %184, align 2, !dbg !153, !tbaa !44 | |
%186 = sext i16 %185 to i32, !dbg !154 | |
%187 = shl nsw i32 %186, 2, !dbg !155 | |
%188 = add nsw i64 %174, %108, !dbg !146 | |
%189 = getelementptr inbounds i16, i16* %16, i64 %188, !dbg !152 | |
%190 = load i16, i16* %189, align 2, !dbg !153, !tbaa !44 | |
%191 = sext i16 %190 to i32, !dbg !154 | |
%192 = mul nsw i32 %191, 5, !dbg !155 | |
%193 = sub nsw i32 4, %182, !dbg !156 | |
%194 = add nsw i32 %193, %187, !dbg !156 | |
%195 = add nsw i32 %194, %192, !dbg !157 | |
%196 = lshr i32 %195, 3, !dbg !158 | |
%197 = add nsw i32 %196, %178, !dbg !159 | |
%198 = lshr i32 %197, 1, !dbg !160 | |
%199 = mul nsw i32 %186, -4, !dbg !161 | |
%200 = mul nsw i32 %191, 11, !dbg !161 | |
%201 = add nsw i32 %182, 4, !dbg !165 | |
%202 = add nsw i32 %201, %199, !dbg !165 | |
%203 = add nsw i32 %202, %200, !dbg !166 | |
%204 = lshr i32 %203, 3, !dbg !167 | |
%205 = sub nsw i32 %204, %178, !dbg !168 | |
%206 = lshr i32 %205, 1, !dbg !169 | |
%207 = trunc i32 %198 to i16, !dbg !170 | |
%208 = add nsw i64 %174, %114, !dbg !171 | |
%209 = getelementptr inbounds i16, i16* %24, i64 %208, !dbg !173 | |
store i16 %207, i16* %209, align 2, !dbg !174, !tbaa !44 | |
%210 = trunc i32 %206 to i16, !dbg !175 | |
%211 = add nsw i64 %174, %113, !dbg !176 | |
%212 = getelementptr inbounds i16, i16* %24, i64 %211, !dbg !178 | |
store i16 %210, i16* %212, align 2, !dbg !179, !tbaa !44 | |
%213 = add nuw nsw i64 %174, 1, !dbg !180 | |
%214 = icmp slt i64 %213, %117, !dbg !181 | |
br i1 %214, label %173, label %215, !dbg !87, !llvm.loop !182 | |
; <label>:215: ; preds = %173, %134, %118, %101, %55, %50 | |
%216 = add nsw i64 %48, 1, !dbg !24 | |
%217 = icmp slt i64 %48, %46, !dbg !24 | |
br i1 %217, label %47, label %218, !dbg !25, !llvm.loop !184 | |
; <label>:218: ; preds = %215, %29 | |
store i8* getelementptr inbounds ([137 x i8], [137 x i8]* @2, i64 0, i64 0), i8** %11, align 8, !dbg !25, !tbaa !10 | |
call void @__kmpc_for_static_fini(%struct.ident_t* nonnull %9, i32 %12) #2, !dbg !25 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %33) #2, !dbg !25 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %32) #2, !dbg !25 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %31) #2, !dbg !25 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %30) #2, !dbg !25 | |
br label %219, !dbg !25 | |
; <label>:219: ; preds = %218, %4 | |
store i8* getelementptr inbounds ([136 x i8], [136 x i8]* @1, i64 0, i64 0), i8** %11, align 8, !dbg !185, !tbaa !10 | |
call void @__kmpc_barrier(%struct.ident_t* nonnull %9, i32 %12) #2, !dbg !185 | |
ret void, !dbg !186 | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #1 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 | |
declare i32 @__kmpc_global_thread_num(%struct.ident_t*) local_unnamed_addr | |
declare void @__kmpc_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32) local_unnamed_addr | |
declare i32 @__gxx_personality_v0(...) | |
declare void @__kmpc_for_static_fini(%struct.ident_t*, i32) local_unnamed_addr | |
declare void @__kmpc_barrier(%struct.ident_t*, i32) local_unnamed_addr | |
attributes #0 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="bdver2" "target-features"="+64bit,+aes,+avx,+bmi,+cmov,+cx16,+f16c,+fma,+fma4,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+prfchw,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+sse4a,+ssse3,+tbm,+x87,+xop,+xsave,-adx,-avx2,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vpopcntdq,-bmi2,-cldemote,-clflushopt,-clwb,-clzero,-fsgsbase,-gfni,-invpcid,-lwp,-movbe,-movdir64b,-movdiri,-mwaitx,-pconfig,-pku,-prefetchwt1,-ptwrite,-rdpid,-rdrnd,-rdseed,-rtm,-sgx,-sha,-shstk,-vaes,-vpclmulqdq,-waitpkg,-wbnoinvd,-xsavec,-xsaveopt,-xsaves" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #1 = { argmemonly nounwind } | |
attributes #2 = { nounwind } | |
!llvm.dbg.cu = !{!0} | |
!llvm.module.flags = !{!3, !4, !5} | |
!llvm.ident = !{!6} | |
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 8.0.0-svn350198-1~exp1+0~20190101210959.2235~1.gbpd712dd (trunk)", isOptimized: true, runtimeVersion: 0, emissionKind: NoDebug, enums: !2, nameTableKind: None) | |
!1 = !DIFile(filename: "/home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp", directory: "/home/lebedevri/rawspeed/build-Clang-Release") | |
!2 = !{} | |
!3 = !{i32 2, !"Debug Info Version", i32 3} | |
!4 = !{i32 1, !"wchar_size", i32 4} | |
!5 = !{i32 7, !"PIC Level", i32 2} | |
!6 = !{!"clang version 8.0.0-svn350198-1~exp1+0~20190101210959.2235~1.gbpd712dd (trunk)"} | |
!7 = distinct !DISubprogram(name: "reconstructPass", scope: !8, file: !8, line: 178, type: !9, scopeLine: 180, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!8 = !DIFile(filename: "src/librawspeed/decompressors/VC5Decompressor.cpp", directory: "/home/lebedevri/rawspeed") | |
!9 = !DISubroutineType(types: !2) | |
!10 = !{!11, !15, i64 16} | |
!11 = !{!"_ZTS7ident_t", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !15, i64 16} | |
!12 = !{!"int", !13, i64 0} | |
!13 = !{!"omnipotent char", !14, i64 0} | |
!14 = !{!"Simple C++ TBAA"} | |
!15 = !{!"any pointer", !13, i64 0} | |
!16 = !DILocation(line: 181, column: 19, scope: !7) | |
!17 = !DILocation(line: 181, column: 24, scope: !7) | |
!18 = !DILocation(line: 181, column: 30, scope: !7) | |
!19 = !DILocation(line: 200, column: 23, scope: !7) | |
!20 = !{!21, !12, i64 4} | |
!21 = !{!"_ZTSN8rawspeed15VC5Decompressor7WaveletE", !12, i64 0, !12, i64 4, !22, i64 8, !23, i64 16, !12, i64 48} | |
!22 = !{!"short", !13, i64 0} | |
!23 = !{!"_ZTSSt5arrayISt10unique_ptrIN8rawspeed15VC5Decompressor7Wavelet12AbstractBandESt14default_deleteIS4_EELm4EE", !13, i64 0} | |
!24 = !DILocation(line: 200, column: 3, scope: !7) | |
!25 = !DILocation(line: 198, column: 9, scope: !7) | |
!26 = !DILocation(line: 200, column: 8, scope: !7) | |
!27 = !{!12, !12, i64 0} | |
!28 = !DILocation(line: 201, column: 9, scope: !7) | |
!29 = !DILocation(line: 203, column: 27, scope: !7) | |
!30 = !{!21, !12, i64 0} | |
!31 = !DILocation(line: 203, column: 25, scope: !7) | |
!32 = !DILocation(line: 203, column: 7, scope: !7) | |
!33 = !DILocation(line: 84, column: 10, scope: !34, inlinedAt: !36) | |
!34 = distinct !DISubprogram(name: "operator()", scope: !35, file: !35, line: 78, type: !9, scopeLine: 78, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!35 = !DIFile(filename: "../src/librawspeed/common/Array2DRef.h", directory: "/home/lebedevri/rawspeed/build-Clang-Release") | |
!36 = distinct !DILocation(line: 125, column: 33, scope: !37, inlinedAt: !38) | |
!37 = distinct !DISubprogram(name: "operator()<(lambda at /home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:182:22)>", scope: !8, file: !8, line: 122, type: !9, scopeLine: 124, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!38 = distinct !DILocation(line: 186, column: 14, scope: !39, inlinedAt: !40) | |
!39 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 185, type: !9, scopeLine: 185, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!40 = distinct !DILocation(line: 189, column: 16, scope: !41, inlinedAt: !42) | |
!41 = distinct !DISubprogram(name: "operator()<rawspeed::(anonymous namespace)::ConvolutionParams::First>", scope: !8, file: !8, line: 181, type: !9, scopeLine: 181, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!42 = distinct !DILocation(line: 204, column: 9, scope: !7) | |
!43 = !DILocation(line: 125, column: 33, scope: !37, inlinedAt: !38) | |
!44 = !{!22, !22, i64 0} | |
!45 = !DILocation(line: 84, column: 10, scope: !34, inlinedAt: !46) | |
!46 = distinct !DILocation(line: 183, column: 14, scope: !47, inlinedAt: !48) | |
!47 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 182, type: !9, scopeLine: 182, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!48 = distinct !DILocation(line: 129, column: 29, scope: !49, inlinedAt: !50) | |
!49 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 126, type: !9, scopeLine: 126, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!50 = distinct !DILocation(line: 126, column: 23, scope: !37, inlinedAt: !38) | |
!51 = !DILocation(line: 183, column: 14, scope: !47, inlinedAt: !48) | |
!52 = !DILocation(line: 129, column: 29, scope: !49, inlinedAt: !50) | |
!53 = !DILocation(line: 129, column: 27, scope: !49, inlinedAt: !50) | |
!54 = !DILocation(line: 84, column: 27, scope: !34, inlinedAt: !46) | |
!55 = !DILocation(line: 129, column: 12, scope: !49, inlinedAt: !50) | |
!56 = !DILocation(line: 133, column: 16, scope: !37, inlinedAt: !38) | |
!57 = !DILocation(line: 135, column: 35, scope: !37, inlinedAt: !38) | |
!58 = !DILocation(line: 136, column: 29, scope: !37, inlinedAt: !38) | |
!59 = !DILocation(line: 140, column: 9, scope: !37, inlinedAt: !38) | |
!60 = !DILocation(line: 129, column: 27, scope: !49, inlinedAt: !61) | |
!61 = distinct !DILocation(line: 126, column: 23, scope: !37, inlinedAt: !62) | |
!62 = distinct !DILocation(line: 186, column: 14, scope: !39, inlinedAt: !63) | |
!63 = distinct !DILocation(line: 190, column: 15, scope: !41, inlinedAt: !42) | |
!64 = !DILocation(line: 129, column: 12, scope: !49, inlinedAt: !61) | |
!65 = !DILocation(line: 133, column: 16, scope: !37, inlinedAt: !62) | |
!66 = !DILocation(line: 135, column: 35, scope: !37, inlinedAt: !62) | |
!67 = !DILocation(line: 136, column: 29, scope: !37, inlinedAt: !62) | |
!68 = !DILocation(line: 140, column: 9, scope: !37, inlinedAt: !62) | |
!69 = !DILocation(line: 192, column: 42, scope: !41, inlinedAt: !42) | |
!70 = !DILocation(line: 84, column: 10, scope: !71, inlinedAt: !72) | |
!71 = distinct !DISubprogram(name: "operator()", scope: !35, file: !35, line: 78, type: !9, scopeLine: 78, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!72 = distinct !DILocation(line: 192, column: 5, scope: !41, inlinedAt: !42) | |
!73 = !DILocation(line: 192, column: 19, scope: !41, inlinedAt: !42) | |
!74 = !DILocation(line: 193, column: 46, scope: !41, inlinedAt: !42) | |
!75 = !DILocation(line: 84, column: 27, scope: !71, inlinedAt: !76) | |
!76 = distinct !DILocation(line: 193, column: 5, scope: !41, inlinedAt: !42) | |
!77 = !DILocation(line: 84, column: 10, scope: !71, inlinedAt: !76) | |
!78 = !DILocation(line: 193, column: 23, scope: !41, inlinedAt: !42) | |
!79 = !DILocation(line: 203, column: 34, scope: !7) | |
!80 = distinct !{!80, !32, !81} | |
!81 = !DILocation(line: 204, column: 47, scope: !7) | |
!82 = !DILocation(line: 205, column: 18, scope: !7) | |
!83 = !DILocation(line: 205, column: 24, scope: !7) | |
!84 = !DILocation(line: 205, column: 22, scope: !7) | |
!85 = !DILocation(line: 0, scope: !7) | |
!86 = !DILocation(line: 205, column: 16, scope: !7) | |
!87 = !DILocation(line: 211, column: 7, scope: !7) | |
!88 = !DILocation(line: 207, column: 7, scope: !7) | |
!89 = !DILocation(line: 84, column: 27, scope: !34, inlinedAt: !90) | |
!90 = distinct !DILocation(line: 125, column: 33, scope: !91, inlinedAt: !92) | |
!91 = distinct !DISubprogram(name: "operator()<(lambda at /home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:182:22)>", scope: !8, file: !8, line: 122, type: !9, scopeLine: 124, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!92 = distinct !DILocation(line: 186, column: 14, scope: !93, inlinedAt: !94) | |
!93 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 185, type: !9, scopeLine: 185, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!94 = distinct !DILocation(line: 189, column: 16, scope: !95, inlinedAt: !96) | |
!95 = distinct !DISubprogram(name: "operator()<rawspeed::(anonymous namespace)::ConvolutionParams::Middle>", scope: !8, file: !8, line: 181, type: !9, scopeLine: 181, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!96 = distinct !DILocation(line: 208, column: 9, scope: !7) | |
!97 = !DILocation(line: 84, column: 10, scope: !34, inlinedAt: !90) | |
!98 = !DILocation(line: 125, column: 33, scope: !91, inlinedAt: !92) | |
!99 = !DILocation(line: 84, column: 27, scope: !34, inlinedAt: !100) | |
!100 = distinct !DILocation(line: 183, column: 14, scope: !101, inlinedAt: !102) | |
!101 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 182, type: !9, scopeLine: 182, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!102 = distinct !DILocation(line: 129, column: 29, scope: !103, inlinedAt: !104) | |
!103 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 126, type: !9, scopeLine: 126, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!104 = distinct !DILocation(line: 126, column: 23, scope: !91, inlinedAt: !92) | |
!105 = !DILocation(line: 84, column: 10, scope: !34, inlinedAt: !100) | |
!106 = !DILocation(line: 183, column: 14, scope: !101, inlinedAt: !102) | |
!107 = !DILocation(line: 129, column: 29, scope: !103, inlinedAt: !104) | |
!108 = !DILocation(line: 129, column: 27, scope: !103, inlinedAt: !104) | |
!109 = !DILocation(line: 129, column: 12, scope: !103, inlinedAt: !104) | |
!110 = !DILocation(line: 133, column: 16, scope: !91, inlinedAt: !92) | |
!111 = !DILocation(line: 135, column: 35, scope: !91, inlinedAt: !92) | |
!112 = !DILocation(line: 136, column: 29, scope: !91, inlinedAt: !92) | |
!113 = !DILocation(line: 140, column: 9, scope: !91, inlinedAt: !92) | |
!114 = !DILocation(line: 129, column: 12, scope: !103, inlinedAt: !115) | |
!115 = distinct !DILocation(line: 126, column: 23, scope: !91, inlinedAt: !116) | |
!116 = distinct !DILocation(line: 186, column: 14, scope: !93, inlinedAt: !117) | |
!117 = distinct !DILocation(line: 190, column: 15, scope: !95, inlinedAt: !96) | |
!118 = !DILocation(line: 133, column: 16, scope: !91, inlinedAt: !116) | |
!119 = !DILocation(line: 135, column: 35, scope: !91, inlinedAt: !116) | |
!120 = !DILocation(line: 136, column: 29, scope: !91, inlinedAt: !116) | |
!121 = !DILocation(line: 140, column: 9, scope: !91, inlinedAt: !116) | |
!122 = !DILocation(line: 192, column: 42, scope: !95, inlinedAt: !96) | |
!123 = !DILocation(line: 84, column: 27, scope: !71, inlinedAt: !124) | |
!124 = distinct !DILocation(line: 192, column: 5, scope: !95, inlinedAt: !96) | |
!125 = !DILocation(line: 84, column: 10, scope: !71, inlinedAt: !124) | |
!126 = !DILocation(line: 192, column: 19, scope: !95, inlinedAt: !96) | |
!127 = !DILocation(line: 193, column: 46, scope: !95, inlinedAt: !96) | |
!128 = !DILocation(line: 84, column: 27, scope: !71, inlinedAt: !129) | |
!129 = distinct !DILocation(line: 193, column: 5, scope: !95, inlinedAt: !96) | |
!130 = !DILocation(line: 84, column: 10, scope: !71, inlinedAt: !129) | |
!131 = !DILocation(line: 193, column: 23, scope: !95, inlinedAt: !96) | |
!132 = !DILocation(line: 207, column: 34, scope: !7) | |
!133 = !DILocation(line: 207, column: 25, scope: !7) | |
!134 = distinct !{!134, !88, !135} | |
!135 = !DILocation(line: 208, column: 48, scope: !7) | |
!136 = !DILocation(line: 84, column: 27, scope: !34, inlinedAt: !137) | |
!137 = distinct !DILocation(line: 125, column: 33, scope: !138, inlinedAt: !139) | |
!138 = distinct !DISubprogram(name: "operator()<(lambda at /home/lebedevri/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp:182:22)>", scope: !8, file: !8, line: 122, type: !9, scopeLine: 124, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!139 = distinct !DILocation(line: 186, column: 14, scope: !140, inlinedAt: !141) | |
!140 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 185, type: !9, scopeLine: 185, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!141 = distinct !DILocation(line: 189, column: 16, scope: !142, inlinedAt: !143) | |
!142 = distinct !DISubprogram(name: "operator()<rawspeed::(anonymous namespace)::ConvolutionParams::Last>", scope: !8, file: !8, line: 181, type: !9, scopeLine: 181, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!143 = distinct !DILocation(line: 212, column: 9, scope: !7) | |
!144 = !DILocation(line: 84, column: 10, scope: !34, inlinedAt: !137) | |
!145 = !DILocation(line: 125, column: 33, scope: !138, inlinedAt: !139) | |
!146 = !DILocation(line: 84, column: 27, scope: !34, inlinedAt: !147) | |
!147 = distinct !DILocation(line: 183, column: 14, scope: !148, inlinedAt: !149) | |
!148 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 182, type: !9, scopeLine: 182, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!149 = distinct !DILocation(line: 129, column: 29, scope: !150, inlinedAt: !151) | |
!150 = distinct !DISubprogram(name: "operator()", scope: !8, file: !8, line: 126, type: !9, scopeLine: 126, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) | |
!151 = distinct !DILocation(line: 126, column: 23, scope: !138, inlinedAt: !139) | |
!152 = !DILocation(line: 84, column: 10, scope: !34, inlinedAt: !147) | |
!153 = !DILocation(line: 183, column: 14, scope: !148, inlinedAt: !149) | |
!154 = !DILocation(line: 129, column: 29, scope: !150, inlinedAt: !151) | |
!155 = !DILocation(line: 129, column: 27, scope: !150, inlinedAt: !151) | |
!156 = !DILocation(line: 129, column: 12, scope: !150, inlinedAt: !151) | |
!157 = !DILocation(line: 133, column: 16, scope: !138, inlinedAt: !139) | |
!158 = !DILocation(line: 135, column: 35, scope: !138, inlinedAt: !139) | |
!159 = !DILocation(line: 136, column: 29, scope: !138, inlinedAt: !139) | |
!160 = !DILocation(line: 140, column: 9, scope: !138, inlinedAt: !139) | |
!161 = !DILocation(line: 129, column: 27, scope: !150, inlinedAt: !162) | |
!162 = distinct !DILocation(line: 126, column: 23, scope: !138, inlinedAt: !163) | |
!163 = distinct !DILocation(line: 186, column: 14, scope: !140, inlinedAt: !164) | |
!164 = distinct !DILocation(line: 190, column: 15, scope: !142, inlinedAt: !143) | |
!165 = !DILocation(line: 129, column: 12, scope: !150, inlinedAt: !162) | |
!166 = !DILocation(line: 133, column: 16, scope: !138, inlinedAt: !163) | |
!167 = !DILocation(line: 135, column: 35, scope: !138, inlinedAt: !163) | |
!168 = !DILocation(line: 136, column: 29, scope: !138, inlinedAt: !163) | |
!169 = !DILocation(line: 140, column: 9, scope: !138, inlinedAt: !163) | |
!170 = !DILocation(line: 192, column: 42, scope: !142, inlinedAt: !143) | |
!171 = !DILocation(line: 84, column: 27, scope: !71, inlinedAt: !172) | |
!172 = distinct !DILocation(line: 192, column: 5, scope: !142, inlinedAt: !143) | |
!173 = !DILocation(line: 84, column: 10, scope: !71, inlinedAt: !172) | |
!174 = !DILocation(line: 192, column: 19, scope: !142, inlinedAt: !143) | |
!175 = !DILocation(line: 193, column: 46, scope: !142, inlinedAt: !143) | |
!176 = !DILocation(line: 84, column: 27, scope: !71, inlinedAt: !177) | |
!177 = distinct !DILocation(line: 193, column: 5, scope: !142, inlinedAt: !143) | |
!178 = !DILocation(line: 84, column: 10, scope: !71, inlinedAt: !177) | |
!179 = !DILocation(line: 193, column: 23, scope: !142, inlinedAt: !143) | |
!180 = !DILocation(line: 211, column: 34, scope: !7) | |
!181 = !DILocation(line: 211, column: 25, scope: !7) | |
!182 = distinct !{!182, !87, !183} | |
!183 = !DILocation(line: 212, column: 46, scope: !7) | |
!184 = distinct !{!184, !25, !185} | |
!185 = !DILocation(line: 198, column: 33, scope: !7) | |
!186 = !DILocation(line: 215, column: 1, scope: !7) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment