Advertisement
Skytrias

llvm gen fail #1

Aug 12th, 2022 (edited)
2,664
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 16.11 KB | None | 0 0
  1. LLVM CODE GEN FAILED FOR PROCEDURE: src.render_target_end
  2. define internal void @src.render_target_end(%src.Render_Target* %0, %sdl2.Window* %1, i32 %2, i32 %3, i8* noalias nocapture nonnull %__.context_ptr) {
  3. decls:
  4.   %4 = alloca %src.Render_Target*, align 8
  5.   %5 = alloca %sdl2.Window*, align 8
  6.   %6 = alloca i32, align 4
  7.   %7 = alloca i32, align 4
  8.   %8 = alloca i32, align 4
  9.   %9 = alloca i64, align 8
  10.   %10 = alloca i64, align 8
  11.   %11 = alloca i64, align 8
  12.   %12 = alloca %src.Render_Group, align 8
  13.   %13 = alloca { %src.Render_Group*, i64, i64, %runtime.Allocator }*, align 8
  14.   %14 = alloca i64, align 8
  15.   %15 = alloca { <2 x float>, <2 x float> }, align 8
  16.   %16 = alloca i64, align 8
  17.   %17 = alloca %src.Render_Vertex*, align 8
  18.   %18 = alloca [16 x float], align 32
  19.   %19 = alloca [16 x float], align 32
  20.   br label %entry
  21.  
  22. entry:                                            ; preds = %decls
  23.   store %src.Render_Target* %0, %src.Render_Target** %4, align 8
  24.   store %sdl2.Window* %1, %sdl2.Window** %5, align 8
  25.   store i32 %2, i32* %6, align 4
  26.   store i32 %3, i32* %7, align 4
  27.   %20 = bitcast i8* %__.context_ptr to %runtime.Context*
  28.   %21 = load %sdl2.Window*, %sdl2.Window** %5, align 8
  29.   %22 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  30.   %23 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %22, i32 0, i32 18
  31.   %24 = load i8*, i8** %23, align 8
  32.   %25 = call i32 @SDL_GL_MakeCurrent(%sdl2.Window* %21, i8* %24)
  33.   call void @odin_gl.Enable(i32 3089)
  34.   call void @odin_gl.Enable(i32 3042)
  35.   call void @odin_gl.Enable(i32 32925)
  36.   call void @odin_gl.Disable(i32 2884)
  37.   call void @odin_gl.Disable(i32 2929)
  38.   call void @odin_gl.BlendFuncSeparate(i32 770, i32 771, i32 1, i32 0)
  39.   %26 = load i32, i32* %6, align 4
  40.   %27 = load i32, i32* %7, align 4
  41.   call void @odin_gl.Viewport(i32 0, i32 0, i32 %26, i32 %27)
  42.   %28 = load i32, i32* %6, align 4
  43.   %29 = load i32, i32* %7, align 4
  44.   call void @odin_gl.Scissor(i32 0, i32 0, i32 %28, i32 %29)
  45.   call void @odin_gl.ClearColor(float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00)
  46.   call void @odin_gl.Clear(i32 16384)
  47.   call void @odin_gl.BindTexture(i32 3553, i32 0)
  48.   %30 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  49.   %31 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %30, i32 0, i32 9
  50.   %32 = load i32, i32* %31, align 4
  51.   %33 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  52.   %34 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %33, i32 0, i32 10
  53.   %35 = load i32, i32* %34, align 4
  54.   %36 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  55.   %37 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %36, i32 0, i32 11
  56.   %38 = load i32, i32* %37, align 4
  57.   %39 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  58.   %40 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %39, i32 0, i32 12
  59.   %41 = load i32, i32* %40, align 4
  60.   %42 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  61.   %43 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %42, i32 0, i32 13
  62.   %44 = load i32, i32* %43, align 4
  63.   %45 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  64.   %46 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %45, i32 0, i32 14
  65.   %47 = load i32, i32* %46, align 4
  66.   store i32 36, i32* %8, align 4
  67.   %48 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  68.   %49 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %48, i32 0, i32 9
  69.   %50 = load i32, i32* %49, align 4
  70.   %51 = load i32, i32* %8, align 4
  71.   call void @odin_gl.VertexAttribPointer(i32 %50, i32 2, i32 5126, i1 true, i32 %51, i64 0)
  72.   %52 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  73.   %53 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %52, i32 0, i32 10
  74.   %54 = load i32, i32* %53, align 4
  75.   %55 = load i32, i32* %8, align 4
  76.   call void @odin_gl.VertexAttribPointer(i32 %54, i32 2, i32 5126, i1 true, i32 %55, i64 8)
  77.   %56 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  78.   %57 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %56, i32 0, i32 11
  79.   %58 = load i32, i32* %57, align 4
  80.   %59 = load i32, i32* %8, align 4
  81.   call void @odin_gl.VertexAttribIPointer(i32 %58, i32 1, i32 5125, i32 %59, i64 16)
  82.   %60 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  83.   %61 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %60, i32 0, i32 12
  84.   %62 = load i32, i32* %61, align 4
  85.   %63 = load i32, i32* %8, align 4
  86.   call void @odin_gl.VertexAttribIPointer(i32 %62, i32 1, i32 5125, i32 %63, i64 20)
  87.   %64 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  88.   %65 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %64, i32 0, i32 13
  89.   %66 = load i32, i32* %65, align 4
  90.   %67 = load i32, i32* %8, align 4
  91.   call void @odin_gl.VertexAttribPointer(i32 %66, i32 2, i32 5126, i1 true, i32 %67, i64 24)
  92.   %68 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  93.   %69 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %68, i32 0, i32 14
  94.   %70 = load i32, i32* %69, align 4
  95.   %71 = load i32, i32* %8, align 4
  96.   call void @odin_gl.VertexAttribIPointer(i32 %70, i32 1, i32 5125, i32 %71, i64 32)
  97.   %72 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  98.   %73 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %72, i32 0, i32 16
  99.   %74 = load i8, i8* %73, align 1
  100.   %75 = trunc i8 %74 to i1
  101.   br i1 %75, label %if.then, label %if.done
  102.  
  103. if.then:                                          ; preds = %entry
  104.   %76 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  105.   %77 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %76, i32 0, i32 15
  106.   %78 = getelementptr [4 x %src.Render_Texture], [4 x %src.Render_Texture]* %77, i64 0, i64 0
  107.   %79 = bitcast %runtime.Context* %20 to i8*
  108.   call void @src.texture_update(%src.Render_Texture* %78, i8* %79)
  109.   %80 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  110.   %81 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %80, i32 0, i32 16
  111.   store i8 0, i8* %81, align 1
  112.   br label %if.done
  113.  
  114. if.done:                                          ; preds = %if.then, %entry
  115.   store i64 0, i64* %9, align 8
  116.   %82 = load { i64*, i64 }, { i64*, i64 }* getelementptr (%runtime.Type_Info_Enum, %runtime.Type_Info_Enum* bitcast ({ [15 x i64], i64 }* getelementptr inbounds ([264 x %runtime.Type_Info], [264 x %runtime.Type_Info]* @"__$type_info_data", i64 0, i64 211, i32 5) to %runtime.Type_Info_Enum*), i64 0, i32 2), align 8
  117.   %83 = load i64*, i64** getelementptr (%runtime.Type_Info_Enum, %runtime.Type_Info_Enum* bitcast ({ [15 x i64], i64 }* getelementptr inbounds ([264 x %runtime.Type_Info], [264 x %runtime.Type_Info]* @"__$type_info_data", i64 0, i64 211, i32 5) to %runtime.Type_Info_Enum*), i64 0, i32 2, i32 0), align 8
  118.   store i64 0, i64* %10, align 8
  119.   br label %for.enum.loop
  120.  
  121. for.enum.loop:                                    ; preds = %for.enum.body, %if.done
  122.   %84 = load i64, i64* %10, align 8
  123.   %85 = icmp slt i64 %84, 4
  124.   br i1 %85, label %for.enum.body, label %for.enum.done
  125.  
  126. for.enum.body:                                    ; preds = %for.enum.loop
  127.   %86 = getelementptr i64, i64* %83, i64 %84
  128.   %87 = load i64, i64* %10, align 8
  129.   %88 = add i64 %87, 1
  130.   store i64 %88, i64* %10, align 8
  131.   %89 = load i64, i64* %86, align 8
  132.   store i64 %89, i64* %11, align 8
  133.   %90 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  134.   %91 = load i64, i64* %11, align 8
  135.   %92 = bitcast %runtime.Context* %20 to i8*
  136.   call void @src.texture_bind(%src.Render_Target* %90, i64 %91, i8* %92)
  137.   br label %for.enum.loop
  138.  
  139. for.enum.done:                                    ; preds = %for.enum.loop
  140.   %93 = bitcast %src.Render_Group* %12 to i8*
  141.   call void @llvm.memset.p0i8.i64(i8* %93, i8 0, i64 32, i1 false)
  142.   %94 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  143.   %95 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %94, i32 0, i32 0
  144.   store { %src.Render_Group*, i64, i64, %runtime.Allocator }* %95, { %src.Render_Group*, i64, i64, %runtime.Allocator }** %13, align 8
  145.   %96 = load { %src.Render_Group*, i64, i64, %runtime.Allocator }*, { %src.Render_Group*, i64, i64, %runtime.Allocator }** %13, align 8
  146.   %97 = getelementptr inbounds { %src.Render_Group*, i64, i64, %runtime.Allocator }, { %src.Render_Group*, i64, i64, %runtime.Allocator }* %96, i32 0, i32 1
  147.   store i64 -1, i64* %14, align 8
  148.   br label %for.index.loop
  149.  
  150. for.index.loop:                                   ; preds = %if.done2, %for.enum.done
  151.   %98 = load i64, i64* %14, align 8
  152.   %99 = add i64 %98, 1
  153.   store i64 %99, i64* %14, align 8
  154.   %100 = load i64, i64* %97, align 8
  155.   %101 = icmp slt i64 %99, %100
  156.   br i1 %101, label %for.index.body, label %for.index.done
  157.  
  158. for.index.body:                                   ; preds = %for.index.loop
  159.   %102 = load i64, i64* %14, align 8
  160.   %103 = getelementptr inbounds { %src.Render_Group*, i64, i64, %runtime.Allocator }, { %src.Render_Group*, i64, i64, %runtime.Allocator }* %96, i32 0, i32 0
  161.   %104 = load %src.Render_Group*, %src.Render_Group** %103, align 8
  162.   %105 = getelementptr %src.Render_Group, %src.Render_Group* %104, i64 %102
  163.   %106 = load %src.Render_Group, %src.Render_Group* %105, align 8
  164.   %107 = load i32, i32* %7, align 4
  165.   %108 = getelementptr inbounds %src.Render_Group, %src.Render_Group* %105, i32 0, i32 0
  166.   %109 = load %src.Rect, %src.Rect* %108, align 4
  167.   %110 = bitcast { <2 x float>, <2 x float> }* %15 to %src.Rect*
  168.   store %src.Rect %109, %src.Rect* %110, align 4
  169.   %111 = load { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %15, align 8
  170.   %112 = bitcast %runtime.Context* %20 to i8*
  171.   call void @src.rect_scissor(i32 %107, { <2 x float>, <2 x float> } %111, i8* %112)
  172.   %113 = getelementptr inbounds %src.Render_Group, %src.Render_Group* %105, i32 0, i32 2
  173.   %114 = load i64, i64* %113, align 8
  174.   %115 = getelementptr inbounds %src.Render_Group, %src.Render_Group* %105, i32 0, i32 1
  175.   %116 = load i64, i64* %115, align 8
  176.   %117 = sub i64 %114, %116
  177.   store i64 %117, i64* %16, align 8
  178.   %118 = load i64, i64* %16, align 8
  179.   %119 = icmp ne i64 %118, 0
  180.   %120 = zext i1 %119 to i8
  181.   %121 = trunc i8 %120 to i1
  182.   br i1 %121, label %if.then1, label %if.done2
  183.  
  184. if.then1:                                         ; preds = %for.index.body
  185.   %122 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  186.   %123 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %122, i32 0, i32 1
  187.   %124 = load { %src.Render_Vertex*, i64 }, { %src.Render_Vertex*, i64 }* %123, align 8
  188.   %125 = bitcast { %src.Render_Vertex*, i64 }* %123 to { i64, i64 }*
  189.   %126 = load { i64, i64 }, { i64, i64 }* %125, align 8
  190.   %127 = call %src.Render_Vertex* @runtime.raw_slice_data-50608({ i64, i64 } %126)
  191.   %128 = getelementptr inbounds %src.Render_Group, %src.Render_Group* %105, i32 0, i32 1
  192.   %129 = load i64, i64* %128, align 8
  193.   %130 = getelementptr %src.Render_Vertex*, %src.Render_Vertex* %127, i64 %129
  194.   store %src.Render_Vertex** %130, %src.Render_Vertex** %17, align 8
  195.   %131 = load i64, i64* %16, align 8
  196.   %132 = mul i64 %131, 36
  197.   %133 = load %src.Render_Vertex*, %src.Render_Vertex** %17, align 8
  198.   %134 = bitcast %src.Render_Vertex* %133 to i8*
  199.   call void @odin_gl.BufferData(i32 34962, i64 %132, i8* %134, i32 35040)
  200.   %135 = load i32, i32* %6, align 4
  201.   %136 = sitofp i32 %135 to float
  202.   %137 = load i32, i32* %7, align 4
  203.   %138 = sitofp i32 %137 to float
  204.   %139 = bitcast [16 x float]* %19 to i8*
  205.   call void @llvm.memset.p0i8.i64(i8* %139, i8 0, i64 64, i1 false)
  206.   call void @math_linalg_glsl.mat4Ortho3d([16 x float]* sret %19, float 0.000000e+00, float %136, float %138, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00)
  207.   %140 = load [16 x float], [16 x float]* %19, align 4
  208.   store [16 x float] %140, [16 x float]* %18, align 4
  209.   %141 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  210.   %142 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %141, i32 0, i32 6
  211.   %143 = load i32, i32* %142, align 4
  212.   %144 = getelementptr [16 x float], [16 x float]* %18, i64 0, i64 0
  213.   %145 = bitcast float* %144 to [4 x float]*
  214.   %146 = getelementptr [4 x float], [4 x float]* %145, i64 0, i64 0
  215.   call void @odin_gl.UniformMatrix4fv(i32 %143, i32 1, i1 false, float* %146)
  216.   %147 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  217.   %148 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %147, i32 0, i32 7
  218.   %149 = load i32, i32* %148, align 4
  219.   %150 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  220.   %151 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %150, i32 0, i32 8
  221.   %152 = getelementptr [4 x i8], [4 x i8]* %151, i64 0, i64 0
  222.   %153 = load i8, i8* %152, align 1
  223.   %154 = uitofp i8 %153 to float
  224.   %155 = fdiv float %154, 2.550000e+02
  225.   %156 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  226.   %157 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %156, i32 0, i32 8
  227.   %158 = getelementptr [4 x i8], [4 x i8]* %157, i64 0, i64 1
  228.   %159 = load i8, i8* %158, align 1
  229.   %160 = uitofp i8 %159 to float
  230.   %161 = fdiv float %160, 2.550000e+02
  231.   %162 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  232.   %163 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %162, i32 0, i32 8
  233.   %164 = getelementptr [4 x i8], [4 x i8]* %163, i64 0, i64 2
  234.   %165 = load i8, i8* %164, align 1
  235.   %166 = uitofp i8 %165 to float
  236.   %167 = fdiv float %166, 2.550000e+02
  237.   %168 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  238.   %169 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %168, i32 0, i32 8
  239.   %170 = getelementptr [4 x i8], [4 x i8]* %169, i64 0, i64 3
  240.   %171 = load i8, i8* %170, align 1
  241.   %172 = uitofp i8 %171 to float
  242.   %173 = fdiv float %172, 2.550000e+02
  243.   call void @odin_gl.Uniform4f(i32 %149, float %155, float %161, float %167, float %173)
  244.   %174 = load i64, i64* %16, align 8
  245.   %175 = trunc i64 %174 to i32
  246.   call void @odin_gl.DrawArrays(i32 4, i32 0, i32 %175)
  247.   br label %if.done2
  248.  
  249. if.done2:                                         ; preds = %if.then1, %for.index.body
  250.   br label %for.index.loop
  251.  
  252. for.index.done:                                   ; preds = %for.index.loop
  253.   %176 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  254.   %177 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %176, i32 0, i32 9
  255.   %178 = load i32, i32* %177, align 4
  256.   %179 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  257.   %180 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %179, i32 0, i32 10
  258.   %181 = load i32, i32* %180, align 4
  259.   %182 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  260.   %183 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %182, i32 0, i32 11
  261.   %184 = load i32, i32* %183, align 4
  262.   %185 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  263.   %186 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %185, i32 0, i32 12
  264.   %187 = load i32, i32* %186, align 4
  265.   %188 = load %src.Render_Target*, %src.Render_Target** %4, align 8
  266.   %189 = getelementptr inbounds %src.Render_Target, %src.Render_Target* %188, i32 0, i32 14
  267.   %190 = load i32, i32* %189, align 4
  268.   call void @odin_gl.Flush()
  269.   %191 = load %sdl2.Window*, %sdl2.Window** %5, align 8
  270.   call void @SDL_GL_SwapWindow(%sdl2.Window* %191)
  271.   ret void
  272. }
  273.  
  274.  
  275.  
  276.  
  277. Stored value type does not match pointer operand type!
  278.   store %src.Render_Vertex** %130, %src.Render_Vertex** %17, align 8
  279.  %src.Render_Vertex*make: ***
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement