Lines Matching defs:kernels

15 // static variables, accessible from kernels or other functions. For uses from
16 // kernels this is straightforward - assign an integer to the kernel for the
28 // - a global accessed by one kernel exists independent of other kernels
30 // - the address of the global may be different from different kernels as they
34 // Uses from kernels are implemented here by grouping them in a per-kernel
75 // LDS variables. Variables that are only used from kernels are excluded.
78 // First kernels are assigned a unique integer identifier which is available in
81 // Second, each kernel allocates LDS variables independent of other kernels and
93 // error on any variable that might be reachable from multiple kernels and is
98 // number of kernels using the module strategy as that is free for the first
106 // affected by any lowering for kernels that do.
109 // - Variables which are used by lots of kernels, e.g. those injected by a
110 // language runtime in most kernels, are expected to have no overhead
122 // The AMDGPUPromoteAlloca pass skips kernels that use dynamic LDS.
157 // If the name correspondence can be replaced, multiple distinct kernels that
275 // The llvm.amdgcn.module.lds instance is implicitly used by all kernels
277 // presently approximated to 'all kernels' if there are any such functions
338 FunctionVariableMap &kernels,
357 kernels[F].insert(&GV);
503 ArrayRef<Function *> kernels,
511 const size_t NumberKernels = kernels.size();
522 auto Replacement = KernelToReplacement.find(kernels[i]);
623 // Find the global variable with the most indirect uses from kernels
712 // Associate kernels in the set with an arbirary but reproducible order and
737 // Annotate the kernels with their order in this vector
742 // 32 bit keeps it in one SGPR. > 2**32 kernels won't fit on the GPU
743 report_fatal_error("Unimplemented LDS lowering for > 2**32 kernels");
805 "' to kernel access as it is reachable from multiple kernels");
838 // allocate this instance. That is a space optimisation - kernels that use a
947 // name This is not expected to be a problem in practice as kernels
950 // to name the kernels.
952 report_fatal_error("Anonymous kernels cannot use LDS variables");
1093 report_fatal_error("Anonymous kernels cannot use LDS variables");
1147 // For each variable accessed through callees, which kernels access it
1299 // Instead of explictly marking kernels that access dynamic variables