File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -35,11 +35,16 @@ namespace IGC
35
35
" __2D_DIM_Resource" , " __2D_ARRAY_DIM_Resource" ,
36
36
" __3D_DIM_Resource" , " __Cube_DIM_Resource" , " __Cube_ARRAY_DIM_Resource" };
37
37
38
+ inline llvm::Type* CreateResourceDimensionType (llvm::LLVMContext& llvmCtx, RESOURCE_DIMENSION_TYPE resourceDimType)
39
+ {
40
+ return llvm::StructType::create (llvmCtx, ResourceDimensionTypeName[resourceDimType]);
41
+ }
42
+
38
43
inline void CreateResourceDimensionTypes (llvm::LLVMContext& llvmCtx)
39
44
{
40
45
for (unsigned int resourceDimTypeId = 0 ; resourceDimTypeId < (unsigned int )RESOURCE_DIMENSION_TYPE::NUM_RESOURCE_DIMENSION_TYPES; resourceDimTypeId++)
41
46
{
42
- llvm::StructType::create (llvmCtx, ResourceDimensionTypeName[( RESOURCE_DIMENSION_TYPE) resourceDimTypeId] );
47
+ CreateResourceDimensionType (llvmCtx, static_cast < RESOURCE_DIMENSION_TYPE>( resourceDimTypeId) );
43
48
}
44
49
}
45
50
@@ -57,4 +62,14 @@ namespace IGC
57
62
return module .getTypeByName (ResourceDimensionTypeName[resourceDimTypeId]);
58
63
#endif
59
64
}
65
+
66
+ inline llvm::Type* GetOrCreateResourceDimensionType (const llvm::Module& module , RESOURCE_DIMENSION_TYPE resourceDimTypeId)
67
+ {
68
+ llvm::Type* pRet = GetResourceDimensionType (module , resourceDimTypeId);
69
+ if (pRet == nullptr )
70
+ {
71
+ pRet = CreateResourceDimensionType (module .getContext (), resourceDimTypeId);
72
+ }
73
+ return pRet;
74
+ }
60
75
}
You can’t perform that action at this time.
0 commit comments