swr/rast: Cleanup of mpPrivateContext in Builder
[mesa.git] / src / gallium / drivers / swr / rasterizer / jitter / builder.cpp
index 4fc5af7f4465833c085df1961d31b62a6bf7abfb..9f9438de1d878aff03cbff47f988fc9f3012ba49 100644 (file)
@@ -28,6 +28,7 @@
 * 
 ******************************************************************************/
 
+#include "jit_pch.hpp"
 #include "builder.h"
 
 namespace SwrJit
@@ -38,45 +39,67 @@ namespace SwrJit
     /// @brief Contructor for Builder.
     /// @param pJitMgr - JitManager which contains modules, function passes, etc.
     Builder::Builder(JitManager *pJitMgr)
-        : mpJitMgr(pJitMgr)
+        : mpJitMgr(pJitMgr),
+          mpPrivateContext(nullptr)
     {
+        SWR_ASSERT(pJitMgr->mVWidth == 8);
+
         mVWidth = pJitMgr->mVWidth;
+        mVWidth16 = pJitMgr->mVWidth * 2;
 
         mpIRBuilder = &pJitMgr->mBuilder;
 
-        mVoidTy = Type::getVoidTy(pJitMgr->mContext);
-        mFP16Ty = Type::getHalfTy(pJitMgr->mContext);
-        mFP32Ty = Type::getFloatTy(pJitMgr->mContext);
-        mDoubleTy = Type::getDoubleTy(pJitMgr->mContext);
-        mInt1Ty = Type::getInt1Ty(pJitMgr->mContext);
-        mInt8Ty = Type::getInt8Ty(pJitMgr->mContext);
-        mInt16Ty = Type::getInt16Ty(pJitMgr->mContext);
-        mInt32Ty = Type::getInt32Ty(pJitMgr->mContext);
-        mInt8PtrTy = PointerType::get(mInt8Ty, 0);
+        // Built in types: scalar
+
+        mVoidTy     = Type::getVoidTy(pJitMgr->mContext);
+        mFP16Ty     = Type::getHalfTy(pJitMgr->mContext);
+        mFP32Ty     = Type::getFloatTy(pJitMgr->mContext);
+        mFP32PtrTy  = PointerType::get(mFP32Ty, 0);
+        mDoubleTy   = Type::getDoubleTy(pJitMgr->mContext);
+        mInt1Ty     = Type::getInt1Ty(pJitMgr->mContext);
+        mInt8Ty     = Type::getInt8Ty(pJitMgr->mContext);
+        mInt16Ty    = Type::getInt16Ty(pJitMgr->mContext);
+        mInt32Ty    = Type::getInt32Ty(pJitMgr->mContext);
+        mInt8PtrTy  = PointerType::get(mInt8Ty, 0);
         mInt16PtrTy = PointerType::get(mInt16Ty, 0);
         mInt32PtrTy = PointerType::get(mInt32Ty, 0);
-        mInt64Ty = Type::getInt64Ty(pJitMgr->mContext);
-        mV4FP32Ty = StructType::get(pJitMgr->mContext, std::vector<Type*>(4, mFP32Ty), false); // vector4 float type (represented as structure)
-        mV4Int32Ty = StructType::get(pJitMgr->mContext, std::vector<Type*>(4, mInt32Ty), false); // vector4 int type
-        mSimdInt1Ty = VectorType::get(mInt1Ty, mVWidth);
-        mSimdInt16Ty = VectorType::get(mInt16Ty, mVWidth);
-        mSimdInt32Ty = VectorType::get(mInt32Ty, mVWidth);
-        mSimdInt64Ty = VectorType::get(mInt64Ty, mVWidth);
-        mSimdFP16Ty = VectorType::get(mFP16Ty, mVWidth);
-        mSimdFP32Ty = VectorType::get(mFP32Ty, mVWidth);
-        mSimdVectorTy = ArrayType::get(mSimdFP32Ty, 4);
-        mSimdVectorTRTy = StructType::get(pJitMgr->mContext, std::vector<Type*>(5, mSimdFP32Ty), false);
+        mInt64Ty    = Type::getInt64Ty(pJitMgr->mContext);
+
+        // Built in types: simd8
+
+        mSimdInt1Ty     = VectorType::get(mInt1Ty,  mVWidth);
+        mSimdInt16Ty    = VectorType::get(mInt16Ty, mVWidth);
+        mSimdInt32Ty    = VectorType::get(mInt32Ty, mVWidth);
+        mSimdInt64Ty    = VectorType::get(mInt64Ty, mVWidth);
+        mSimdFP16Ty     = VectorType::get(mFP16Ty,  mVWidth);
+        mSimdFP32Ty     = VectorType::get(mFP32Ty,  mVWidth);
+        mSimdVectorTy   = ArrayType::get(mSimdFP32Ty, 4);
+        mSimdVectorTRTy = ArrayType::get(mSimdFP32Ty, 5);
+
+        // Built in types: simd16
+
+        mSimd16Int1Ty       = VectorType::get(mInt1Ty,  mVWidth16);
+        mSimd16Int16Ty      = VectorType::get(mInt16Ty, mVWidth16);
+        mSimd16Int32Ty      = VectorType::get(mInt32Ty, mVWidth16);
+        mSimd16Int64Ty      = VectorType::get(mInt64Ty, mVWidth16);
+        mSimd16FP16Ty       = VectorType::get(mFP16Ty,  mVWidth16);
+        mSimd16FP32Ty       = VectorType::get(mFP32Ty,  mVWidth16);
+        mSimd16VectorTy     = ArrayType::get(mSimd16FP32Ty, 4);
+        mSimd16VectorTRTy   = ArrayType::get(mSimd16FP32Ty, 5);
 
         if (sizeof(uint32_t*) == 4)
         {
             mIntPtrTy = mInt32Ty;
             mSimdIntPtrTy = mSimdInt32Ty;
+            mSimd16IntPtrTy = mSimd16Int32Ty;
         }
         else
         {
             SWR_ASSERT(sizeof(uint32_t*) == 8);
+
             mIntPtrTy = mInt64Ty;
             mSimdIntPtrTy = mSimdInt64Ty;
+            mSimd16IntPtrTy = mSimd16Int64Ty;
         }
     }
 }