Lines Matching refs:Kernel

458   getReferencesInKernel(ppcg_kernel *Kernel);
465 std::tuple<Value *, Value *> getGridSizes(ppcg_kernel *Kernel);
477 std::tuple<Value *, Value *, Value *> getBlockSizes(ppcg_kernel *Kernel);
498 Value *createLaunchParameters(ppcg_kernel *Kernel, Function *F,
507 void createKernelVariables(ppcg_kernel *Kernel, Function *FN);
555 void prepareKernelArguments(ppcg_kernel *Kernel, Function *FN);
567 void createKernelFunction(ppcg_kernel *Kernel,
584 Function *createKernelFunctionDecl(ppcg_kernel *Kernel,
590 void insertKernelIntrinsics(ppcg_kernel *Kernel);
596 void insertKernelCallsSPIR(ppcg_kernel *Kernel, bool SizeTypeIs64bit);
672 void finalizeKernelArguments(ppcg_kernel *Kernel);
1480 GPUNodeBuilder::getReferencesInKernel(ppcg_kernel *Kernel) { in getReferencesInKernel() argument
1498 Kernel->tree, collectReferencesInGPUStmt, &References); in getReferencesInKernel()
1522 for (long i = 0, n = isl_space_dim(Kernel->space, isl_dim_set); i < n; i++) { in getReferencesInKernel()
1523 isl_id *Id = isl_space_get_dim_id(Kernel->space, isl_dim_set, i); in getReferencesInKernel()
1587 std::tuple<Value *, Value *> GPUNodeBuilder::getGridSizes(ppcg_kernel *Kernel) { in getGridSizes() argument
1591 isl::multi_pw_aff GridSizePwAffs = isl::manage_copy(Kernel->grid_size); in getGridSizes()
1592 for (long i = 0; i < Kernel->n_grid; i++) { in getGridSizes()
1600 for (long i = Kernel->n_grid; i < 3; i++) in getGridSizes()
1607 GPUNodeBuilder::getBlockSizes(ppcg_kernel *Kernel) { in getBlockSizes() argument
1610 for (long i = 0; i < Kernel->n_block; i++) { in getBlockSizes()
1611 Value *Res = ConstantInt::get(Builder.getInt32Ty(), Kernel->block_dim[i]); in getBlockSizes()
1615 for (long i = Kernel->n_block; i < 3; i++) in getBlockSizes()
1631 GPUNodeBuilder::createLaunchParameters(ppcg_kernel *Kernel, Function *F, in createLaunchParameters() argument
1649 std::string Launch = "polly_launch_" + std::to_string(Kernel->id); in createLaunchParameters()
1655 if (!ppcg_kernel_requires_array_argument(Kernel, i)) in createLaunchParameters()
1711 int NumHostIters = isl_space_dim(Kernel->space, isl_dim_set); in createLaunchParameters()
1714 isl_id *Id = isl_space_get_dim_id(Kernel->space, isl_dim_set, i); in createLaunchParameters()
1730 int NumVars = isl_space_dim(Kernel->space, isl_dim_param); in createLaunchParameters()
1733 isl_id *Id = isl_space_get_dim_id(Kernel->space, isl_dim_param, i); in createLaunchParameters()
1799 ppcg_kernel *Kernel = (ppcg_kernel *)isl_id_get_user(Id); in createKernel() local
1803 if (Kernel->n_grid > 1) in createKernel()
1805 DeepestParallel, (unsigned)isl_space_dim(Kernel->space, isl_dim_set)); in createKernel()
1808 DeepestSequential, (unsigned)isl_space_dim(Kernel->space, isl_dim_set)); in createKernel()
1811 std::tie(BlockDimX, BlockDimY, BlockDimZ) = getBlockSizes(Kernel); in createKernel()
1818 getReferencesInKernel(Kernel); in createKernel()
1824 Kernel->space = isl_space_align_params(Kernel->space, ParamSpace.release()); in createKernel()
1826 assert(Kernel->tree && "Device AST of kernel node is empty"); in createKernel()
1848 createKernelFunction(Kernel, SubtreeValues, SubtreeFunctions); in createKernel()
1851 create(isl_ast_node_copy(Kernel->tree)); in createKernel()
1853 finalizeKernelArguments(Kernel); in createKernel()
1874 Value *Parameters = createLaunchParameters(Kernel, F, SubtreeValues); in createKernel()
1876 std::string Name = getKernelFuncName(Kernel->id); in createKernel()
1882 std::tie(GridDimX, GridDimY) = getGridSizes(Kernel); in createKernel()
1935 GPUNodeBuilder::createKernelFunctionDecl(ppcg_kernel *Kernel, in createKernelFunctionDecl() argument
1938 std::string Identifier = getKernelFuncName(Kernel->id); in createKernelFunctionDecl()
1943 if (!ppcg_kernel_requires_array_argument(Kernel, i)) in createKernelFunctionDecl()
1960 int NumHostIters = isl_space_dim(Kernel->space, isl_dim_set); in createKernelFunctionDecl()
1968 int NumVars = isl_space_dim(Kernel->space, isl_dim_param); in createKernelFunctionDecl()
1971 isl_id *Id = isl_space_get_dim_id(Kernel->space, isl_dim_param, i); in createKernelFunctionDecl()
2021 for (long i = 0; i < Kernel->n_array; i++) { in createKernelFunctionDecl()
2022 if (!ppcg_kernel_requires_array_argument(Kernel, i)) in createKernelFunctionDecl()
2025 Arg->setName(Kernel->array[i].array->name); in createKernelFunctionDecl()
2035 for (long j = 1, n = Kernel->array[i].array->n_index; j < n; j++) { in createKernelFunctionDecl()
2037 Build, isl_multi_pw_aff_get_pw_aff(Kernel->array[i].array->bound, j)); in createKernelFunctionDecl()
2052 isl_id *Id = isl_space_get_dim_id(Kernel->space, isl_dim_set, i); in createKernelFunctionDecl()
2060 isl_id *Id = isl_space_get_dim_id(Kernel->space, isl_dim_param, i); in createKernelFunctionDecl()
2078 void GPUNodeBuilder::insertKernelIntrinsics(ppcg_kernel *Kernel) { in insertKernelIntrinsics() argument
2106 for (int i = 0; i < Kernel->n_grid; ++i) { in insertKernelIntrinsics()
2107 isl_id *Id = isl_id_list_get_id(Kernel->block_ids, i); in insertKernelIntrinsics()
2111 for (int i = 0; i < Kernel->n_block; ++i) { in insertKernelIntrinsics()
2112 isl_id *Id = isl_id_list_get_id(Kernel->thread_ids, i); in insertKernelIntrinsics()
2117 void GPUNodeBuilder::insertKernelCallsSPIR(ppcg_kernel *Kernel, in insertKernelCallsSPIR() argument
2150 for (int i = 0; i < Kernel->n_grid; ++i) in insertKernelCallsSPIR()
2151 createFunc(GroupName[i], isl_id_list_get_id(Kernel->block_ids, i), SizeT); in insertKernelCallsSPIR()
2153 for (int i = 0; i < Kernel->n_block; ++i) in insertKernelCallsSPIR()
2154 createFunc(LocalName[i], isl_id_list_get_id(Kernel->thread_ids, i), SizeT); in insertKernelCallsSPIR()
2157 void GPUNodeBuilder::prepareKernelArguments(ppcg_kernel *Kernel, Function *FN) { in prepareKernelArguments() argument
2159 for (long i = 0; i < Kernel->n_array; i++) { in prepareKernelArguments()
2160 if (!ppcg_kernel_requires_array_argument(Kernel, i)) in prepareKernelArguments()
2187 void GPUNodeBuilder::finalizeKernelArguments(ppcg_kernel *Kernel) { in finalizeKernelArguments() argument
2192 for (long i = 0; i < Kernel->n_array; i++) { in finalizeKernelArguments()
2193 if (!ppcg_kernel_requires_array_argument(Kernel, i)) in finalizeKernelArguments()
2226 if (Kernel->n_block != 0 || Kernel->n_grid != 0) { in finalizeKernelArguments()
2236 void GPUNodeBuilder::createKernelVariables(ppcg_kernel *Kernel, Function *FN) { in createKernelVariables() argument
2239 for (int i = 0; i < Kernel->n_var; ++i) { in createKernelVariables()
2240 struct ppcg_kernel_var &Var = Kernel->var[i]; in createKernelVariables()
2288 ppcg_kernel *Kernel, SetVector<Value *> &SubtreeValues, in createKernelFunction() argument
2290 std::string Identifier = getKernelFuncName(Kernel->id); in createKernelFunction()
2311 Function *FN = createKernelFunctionDecl(Kernel, SubtreeValues); in createKernelFunction()
2324 prepareKernelArguments(Kernel, FN); in createKernelFunction()
2325 createKernelVariables(Kernel, FN); in createKernelFunction()
2329 insertKernelIntrinsics(Kernel); in createKernelFunction()
2332 insertKernelCallsSPIR(Kernel, false); in createKernelFunction()
2335 insertKernelCallsSPIR(Kernel, true); in createKernelFunction()
3171 auto Kernel = (struct ppcg_kernel *)isl_id_get_user(Id); in printHostUser() local
3173 Data->Kernels.push_back(Kernel); in printHostUser()
3182 void printKernel(ppcg_kernel *Kernel) { in printKernel() argument
3186 P = isl_ast_node_print(Kernel->tree, P, Options); in printKernel()
3214 for (auto Kernel : Data.Kernels) { in printGPUTree() local
3215 outs() << "# kernel" << Kernel->id << "\n"; in printGPUTree()
3216 printKernel(Kernel); in printGPUTree()