1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /* StarPU --- Runtime system for heterogeneous multicore architectures.
- *
- * Copyright (C) 2011-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
- *
- * StarPU is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or (at
- * your option) any later version.
- *
- * StarPU is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * See the GNU Lesser General Public License in COPYING.LGPL for more details.
- */
- // $ spatch -sp_file cpu_func_to_cpu_funcs.cocci cpu_func_to_cpu_funcs_test.c
- ///////////////////////////////////////////////////////////////////////////////
- // There is no need to specify STARPU_MULTIPLE_CPU_IMPLEMENTATIONS any more. //
- ///////////////////////////////////////////////////////////////////////////////
- @@
- identifier cl;
- @@
- struct starpu_codelet cl = {
- - .cpu_func = STARPU_MULTIPLE_CPU_IMPLEMENTATIONS,
- .cpu_funcs = { ... }
- };
- ////////////////////////////////////////////////////
- // Find all the codelets using the cpu_func field //
- ////////////////////////////////////////////////////
- @cpu_func@
- expression f;
- identifier cl;
- @@
- struct starpu_codelet cl = {
- .cpu_func = f
- };
- ///////////////////////////////////////////////////////////////////
- // Find all the codelets that define both cpu_func and cpu_funcs //
- ///////////////////////////////////////////////////////////////////
- @cpu_funcs depends on cpu_func@
- expression cpu_func.f;
- identifier cpu_func.cl;
- @@
- struct starpu_codelet cl = {
- .cpu_funcs = { f }
- };
- //////////////////////////////////////////////////////////////////////////////
- // For codelets that define cpu_func but not cpu_funcs, remove cpu_func and //
- // add cpu_funcs //
- //////////////////////////////////////////////////////////////////////////////
- @depends on !cpu_funcs@
- identifier cpu_func.cl;
- expression cpu_func.f;
- @@
- struct starpu_codelet cl = {
- - .cpu_func = f
- + .cpu_funcs = { f }
- };
- /////////////////////////////////////////////////////////////////
- // If both cpu_func and cpu_funcs are defined, remove cpu_func //
- /////////////////////////////////////////////////////////////////
- @depends on cpu_funcs@
- identifier cpu_func.cl;
- expression cpu_func.f;
- @@
- struct starpu_codelet cl = {
- - .cpu_func = f
- };
|