2012-05-25 12:02  lcourtes

	* branches/starpu-1.0, branches/starpu-1.0/configure.ac,
	  branches/starpu-1.0/examples,
	  branches/starpu-1.0/gcc-plugin/tests/Makefile.am,
	  branches/starpu-1.0/src/common, branches/starpu-1.0/src/core,
	  branches/starpu-1.0/src/datawizard,
	  branches/starpu-1.0/src/drivers, branches/starpu-1.0/tests,
	  branches/starpu-1.0/tools: gcc: Don't run the test suite when
	  Guile is unavailable.
	  
	  Backport of r6656.
	  
	  * configure.ac: Remove `HAVE_GUILE' Automake conditional; add
	  `RUN_GCC_PLUGIN_TESTS' Automake conditional based on
	  $run_gcc_plugin_test_suite.
	  
	  * gcc-plugin/tests/Makefile.am (TESTS, TESTS_ENVIRONMENT): Make
	  conditional on `RUN_GCC_PLUGIN_TESTS' only.

2012-05-24 15:26  lcourtes

	* branches/starpu-1.0, branches/starpu-1.0/examples,
	  branches/starpu-1.0/gcc-plugin/src/starpu.c,
	  branches/starpu-1.0/src/common, branches/starpu-1.0/src/core,
	  branches/starpu-1.0/src/datawizard,
	  branches/starpu-1.0/src/drivers, branches/starpu-1.0/tests,
	  branches/starpu-1.0/tools: gcc: Relax the GCC version test.
	  
	  Backport of r6651.
	  
	  * gcc-plugin/src/starpu.c (STRINGIFY, STRINGIFY_): New macros.
	  (plugin_init)[VERSION_CHECK]: New macro.
	  Use it in lieu of `plugin_default_version_check'.

2012-05-24 12:48  lcourtes

	* branches/starpu-1.0/gcc-plugin/ChangeLog: gcc: Add missing
	  ChangeLog stub.
	  
	  * gcc-plugin/ChangeLog: New file.

2012-05-24 12:39  lcourtes

	* branches/starpu-1.0/Makefile.am,
	  branches/starpu-1.0/build-aux/svn2cl.xsl,
	  branches/starpu-1.0/gcc-plugin/Makefile.am: gcc: Build a
	  ChangeLog upon `make dist'.
	  
	  * gcc-plugin/Makefile.am (gen-ChangeLog, dist-hook): New targets.
	  * build-aux/svn2cl.xsl: New file, from svn2cl 0.13 at
	  <http://arthurdejong.org/svn2cl/>.
	  * Makefile.am (EXTRA_DIST): Add `build-aux/svn2cl.xsl'.

2012-05-22 14:26  lcourtes

	* branches/starpu-1.0, branches/starpu-1.0/examples,
	  branches/starpu-1.0/gcc-plugin/src/c-expr.y,
	  branches/starpu-1.0/src/common, branches/starpu-1.0/src/core,
	  branches/starpu-1.0/src/datawizard,
	  branches/starpu-1.0/src/drivers, branches/starpu-1.0/tests,
	  branches/starpu-1.0/tools: gcc-plugin/src/c-expr.y: fixed
	  reduce/reduce conflicts.
	  
	  Backport of r6430.

2012-05-22 14:24  lcourtes

	* branches/starpu-1.0, branches/starpu-1.0/examples,
	  branches/starpu-1.0/gcc-plugin/tests/run-test.in,
	  branches/starpu-1.0/src/common, branches/starpu-1.0/src/core,
	  branches/starpu-1.0/src/datawizard,
	  branches/starpu-1.0/src/drivers, branches/starpu-1.0/tests,
	  branches/starpu-1.0/tools: gcc: Pass `STARPU_OPENCL_CPPFLAGS' to
	  the tests.
	  
	  Backport of r6577.
	  
	  * gcc-plugin/tests/run-test.in (%opencl-cppflags): New variable.
	  (%default-cflags): Splice %OPENCL-CPPFLAGS.

2012-05-22 14:22  lcourtes

	* branches/starpu-1.0, branches/starpu-1.0/examples,
	  branches/starpu-1.0/gcc-plugin/tests/mocks.h,
	  branches/starpu-1.0/gcc-plugin/tests/pointers.c,
	  branches/starpu-1.0/src/common, branches/starpu-1.0/src/core,
	  branches/starpu-1.0/src/datawizard,
	  branches/starpu-1.0/src/drivers, branches/starpu-1.0/tests,
	  branches/starpu-1.0/tools: gcc: mocks: Invoke task
	  implementations.
	  
	  Backport of r6534.
	  
	  * gcc-plugin/tests/mocks.h (expected_insert_task_targets): New
	  variable.
	  (starpu_insert_task): Check for `cl->where ==
	  expected_insert_task_targets'. Check the `funcs' fields
	  accordingly.
	  Pack the `cl_args' and pointer args, and invoke all the task
	  implementations.
	  
	  * gcc-plugin/tests/pointers.c (my_pointer_task_cpu,
	  my_pointer_task_opencl): Check the value of *X and *Y.

2012-05-22 14:21  lcourtes

	* branches/starpu-1.0, branches/starpu-1.0/examples,
	  branches/starpu-1.0/gcc-plugin/tests/mocks.h,
	  branches/starpu-1.0/src/common, branches/starpu-1.0/src/core,
	  branches/starpu-1.0/src/datawizard,
	  branches/starpu-1.0/src/drivers, branches/starpu-1.0/tests,
	  branches/starpu-1.0/tools: gcc: Fix the mock
	  `starpu_codelet_unpack_args'.
	  
	  Backport of r6533.
	  
	  * gcc-plugin/tests/mocks.h (starpu_insert_task): Read SIZE from
	  OFFSET,
	  and ARGP from `OFFSET + sizeof SIZE'.

2012-04-03 07:31  nfurmento

	* branches/starpu-1.0/gcc-plugin/tests/Makefile.am: backport r6388
	  from trunk: gcc-plugin/tests/Makefile.am: add release to files to
	  be cleaned

2012-04-02 12:48  lcourtes

	* branches/starpu-1.0/.gitignore,
	  branches/starpu-1.0/gcc-plugin/src/starpu.c,
	  branches/starpu-1.0/gcc-plugin/tests/Makefile.am,
	  branches/starpu-1.0/gcc-plugin/tests/mocks.h,
	  branches/starpu-1.0/gcc-plugin/tests/release-errors.c,
	  branches/starpu-1.0/gcc-plugin/tests/release.c: gcc: Add `#pragma
	  starpu release'.
	  
	  Backports r6361 from trunk.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_release): New function.
	  (register_pragmas): Register it for the `release' pragma.
	  
	  * gcc-plugin/tests/mocks.h (struct data_release_arguments): New
	  type.
	  (data_release_calls): New variable.
	  (starpu_data_release): New function.
	  * gcc-plugin/tests/release-errors.c, gcc-plugin/tests/release.c:
	  New
	  files.
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add them.

2012-03-30 09:42  nfurmento

	* branches/starpu-1.0/gcc-plugin/src/starpu.c,
	  branches/starpu-1.0/gcc-plugin/tests/acquire-errors.c,
	  branches/starpu-1.0/gcc-plugin/tests/acquire.c: backport r6346
	  from trunk
	  gcc: Allow use of a PARM_DECL as the argument of pragma
	  `acquire'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_acquire): Check whether
	  the
	  chain of ARGS is null, not that of VAR. This fixes a bug whereby
	  non-terminal PARM_DECLs would be wrongfully flagged as junk.
	  Reported by Ludovic Stordeur <ludovic.stordeur@inria.fr>.
	  
	  * gcc-plugin/tests/acquire-errors.c (main): Add test for "junk
	  after
	  pragma".
	  
	  * gcc-plugin/tests/acquire.c (foo): New function.
	  (main): Use it; increment the expected DATA_ACQUIRE_CALLS.

2012-03-28 14:58  nfurmento

	* branches/starpu-1.0: Create branch for starpu 1.0 development

2012-03-28 12:44  nfurmento

	* tags/starpu-1.0.0: Create tag for 1.0.0

2012-03-26 12:52  lcourtes

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc: Use an
	  implicit CPU task implementation in the `vector_scal' example.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal.c: Don't error out
	  when
	  `STARPU_GCC_PLUGIN' is undefined.
	  (vector_scal_cpu): Remove declaration; rename definition to
	  `vector_scal'.
	  (vector_scal_sse, vector_scal_opencl): Add `#if defined
	  STARPU_GCC_PLUGIN'.
	  (main): Likewise for the `starpu_opencl_load_opencl_from_file'
	  call.

2012-03-23 09:00  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/base.c,
	  trunk/gcc-plugin/tests/lib-user.c,
	  trunk/gcc-plugin/tests/my-lib.c, trunk/gcc-plugin/tests/my-lib.h,
	  trunk/gcc-plugin/tests/pointer-tasks.c,
	  trunk/gcc-plugin/tests/scalar-tasks.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Interpret the body of
	  a task as its implicit CPU implementation.
	  
	  * gcc-plugin/src/starpu.c (add_task_implementation): Mark FN as
	  used.
	  (handle_task_implementation_attribute): When TASK_DECL matches
	  `implicit_cpu_task_implementation_p', get its actual task.
	  (task_implementation_task): Likewise.
	  (implicit_cpu_task_implementation_p,
	  build_cpu_codelet_identifier):
	  New functions.
	  (handle_pre_genericize): Instead of raising an error when FN has
	  a
	  body, treat it as an implicit "cpu" implementation of the
	  corresponding task, rename it, and build a new task declaration
	  under
	  its original name.
	  After the `define_task' call, mark TASK as needed.
	  (define_task): Mark TASK_DECL as artificial.
	  (lower_starpu): Rewrite calls to CALLEE_DECL when it matches
	  `implicit_cpu_task_implementation_p' and CALLER_DECL is not
	  artificial.
	  
	  * gcc-plugin/tests/base.c (my_task_with_body,
	  my_task_with_body_opencl):
	  New functions.
	  (main): Call it.
	  * gcc-plugin/tests/lib-user.c (main): Use `signed char' instead
	  of `char'.
	  * gcc-plugin/tests/my-lib.c (my_task_cpu): Rename to...
	  (my_task): ... this.
	  (my_task_opencl): Make public.
	  * gcc-plugin/tests/my-lib.h (my_task): Use `signed char' instead
	  of
	  `char'. Update implementations accordingly.
	  (my_task_cpu): Remove declaration.
	  (my_task_opencl): New declaration.
	  * gcc-plugin/tests/pointer-tasks.c (my_pointer_task_cpu): Rename
	  to...
	  (my_pointer_task): ... this.
	  * gcc-plugin/tests/scalar-tasks.c (my_scalar_task_cpu): Rename
	  to...
	  (my_scalar_task): ... this.
	  * gcc-plugin/tests/task-errors.c (my_task_with_body): Remove.
	  (my_task): Expect "none of the implementations" error.

2012-03-23 09:00  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Add `signed char' as a valid
	  OpenCL type.
	  
	  * gcc-plugin/src/starpu.c
	  (validate_opencl_argument_type)[type_map]: Add
	  "signed char".

2012-03-23 09:00  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Factorize function
	  "taskification".
	  
	  * gcc-plugin/src/starpu.c (taskify_function): New function.
	  (handle_task_attribute): Use it.

2012-03-23 09:00  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Factorize the addition of a
	  task implementation.
	  
	  * gcc-plugin/src/starpu.c (add_task_implementation): New
	  function.
	  (handle_task_implementation_attribute): Remove code now in
	  `add_task_implementation'; use it.

2012-03-19 15:13  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Fix codelet wrapper
	  generation with GCC 4.7.
	  
	  * gcc-plugin/src/starpu.c (build_codelet_wrapper_definition):
	  Make sure
	  DECL is initialized by the time `build_local_var' is called
	  (C++).

2012-03-19 15:13  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Change parser declaration to
	  have (possibly) C++ linkage.
	  
	  * gcc-plugin/src/starpu.c (yyparse, yydebug): Move outside of
	  `extern "C"'.

2012-03-19 15:13  lcourtes

	* trunk/gcc-plugin/src/c-expr.y: gcc: Avoid designated initializers
	  when __cplusplus in the C expression parser.
	  
	  * gcc-plugin/src/c-expr.y (STARPU_CPP_TOKENS): New macro.
	  (cpplib_bison_token_map)[__cplusplus]: Leave uninitialized.
	  (yylex)[__cplusplus]: Initialize CPPLIB_BISON_TOKEN_MAP.
	  (YCPP_NUM): Rename token to...
	  (YCPP_NUMBER): ... this.

2012-03-19 15:13  lcourtes

	* trunk/gcc-plugin/src/starpu-gcc-config.h.in,
	  trunk/gcc-plugin/src/starpu.c, trunk/m4/gcc.m4: gcc: Check for
	  `affects_type_identity' in `struct attribute_spec'.
	  
	  * m4/gcc.m4 (STARPU_GCC_PLUGIN_SUPPORT): Check for
	  `affects_type_identity' in `struct attribute_spec'.
	  
	  * gcc-plugin/src/starpu-gcc-config.h.in
	  (HAVE_ATTRIBUTE_SPEC_AFFECTS_TYPE_IDENTITY):
	  New macro.
	  
	  * gcc-plugin/src/starpu.c
	  (register_task_attributes)[HAVE_ATTRIBUTE_SPEC_AFFECTS_TYPE_IDENTITY]:
	  Initialize the `affects_type_identity' member.

2012-03-19 15:13  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/m4/gcc.m4: gcc: Work around
	  C++ and GNU C incompatibilities.
	  
	  * gcc-plugin/src/starpu.c (local_define, function_parm,
	  designated_field_init): New macros.
	  (filter, list_remove, map, for_each, count): Use `function_parm'.
	  Use `local_define' to declare nested functions. Cast the return
	  value
	  of `alloca'.
	  (pass_lower_starpu, pass_info): Use `designated_field_init'
	  (plugin_init): Turn `arg' into `int', to placate
	  `-Wsign-compare'.
	  
	  * m4/gcc.m4 (GCC_FOR_PLUGIN): Add `std=c++11' when using $CXX.

2012-03-16 10:48  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Enclose the whole thing in
	  `extern "C"'.
	  
	  * gcc-plugin/src/starpu.c [__cplusplus]: Enclose everything in
	  `extern "C"'.

2012-03-16 10:35  lcourtes

	* trunk/gcc-plugin/src/Makefile.am, trunk/m4/gcc.m4: gcc: Attempt
	  to determine whether to build plug-ins with gcc or g++.
	  
	  * m4/gcc.m4 (_STARPU_GCC_PLUGIN_LANGUAGE): New macro.
	  (STARPU_GCC_PLUGIN_SUPPORT): Require `AC_PROG_CXX'. Invoke
	  `_STARPU_GCC_PLUGIN_LANGUAGE'. Substitute `GCC_FOR_PLUGIN' and
	  `GCC_FOR_PLUGIN_LIBTOOL_TAG'.
	  
	  * gcc-plugin/src/Makefile.am (AM_LDFLAGS): Add
	  `--tag="$(GCC_FOR_PLUGIN_LIBTOOL_TAG)"'.
	  (CC): New variable.

2012-03-15 16:03  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/opencl-types.c: gcc: Recognize `uchar',
	  `uint', and `ulong' as valid OpenCL types.
	  
	  * gcc-plugin/src/starpu.c
	  (validate_opencl_argument_type)[type_map]: Add
	  `uchar', `uint', and `ulong'.
	  
	  * gcc-plugin/tests/opencl-types.c (my_uint_task,
	  my_uint_task_cpu,
	  my_uint_task_opencl, my_fake_uchar_task, my_fake_uchar_task_cpu,
	  my_fake_uchar_task_opencl): New functions.
	  (uchar): New typedef.

2012-03-12 13:11  croelandt

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c:
	  gcc-plugin/examples/vector_scal/vector_scal.c: Fix the OpenCL
	  codelet.

2012-03-12 13:10  croelandt

	* trunk/examples/axpy/axpy.c,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal.c:
	  examples/axpy/axpy.c and
	  gcc-plugin/examples/vector_scal/vector_scal.c: fix result
	  checking.

2012-03-12 10:19  thibault

	* trunk/gcc-plugin/src/Makefile.am: Add showcheck rule for
	  gcc-plugin source

2012-03-09 09:17  lcourtes

	* trunk/gcc-plugin/src/starpu-gcc-config.h.in,
	  trunk/gcc-plugin/src/starpu.c, trunk/m4/gcc.m4: gcc: Use
	  `builtin_decl_explicit' as defined in GCC 4.7.0.
	  
	  * m4/gcc.m4 (STARPU_GCC_PLUGIN_SUPPORT): Check for
	  `builtin_decl_explicit'.
	  * gcc-plugin/src/starpu-gcc-config.h.in
	  (HAVE_DECL_BUILTIN_DECL_EXPLICIT):
	  New macro.
	  
	  * gcc-plugin/src/starpu.c
	  (builtin_decl_explicit)[!HAVE_DECL_BUILTIN_DECL_EXPLICIT]:
	  New function.
	  Change all users of `built_in_decls' to use
	  `builtin_decl_explicit'
	  instead.

2012-03-08 08:43  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/pointers.c:
	  gcc: Fix OpenCL type checking for `short int'.
	  
	  * gcc-plugin/src/starpu.c (validate_opencl_argument_type)[type
	  map]:
	  Change "short" to "short int".
	  
	  * gcc-plugin/tests/pointers.c (my_pointer_task, my_mixed_task):
	  Use
	  `short' instead of `long', since `long' differs from `cl_long' on
	  32-bit platforms.

2012-03-06 15:38  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/base.c, trunk/gcc-plugin/tests/mocks.h,
	  trunk/gcc-plugin/tests/opencl-size_t.c,
	  trunk/gcc-plugin/tests/opencl-types.c,
	  trunk/gcc-plugin/tests/pointers.c: gcc: Diagnose problematic
	  argument types in OpenCL task implementations.
	  
	  * gcc-plugin/src/starpu.c (validate_opencl_argument_type): Add
	  compatibility checks for standard OpenCL types that may differ
	  from
	  their C counterpart.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Rename `opencl-size_t
	  * gcc-plugin/tests/opencl-size_t.c: Rename to...
	  * gcc-plugin/tests/opencl-types.c: ... this.
	  (my_long_task, my_long_task_cpu, my_long_task_opencl,
	  my_long_ptr_task, my_long_ptr_task_cpu, my_long_ptr_task_opencl,
	  my_uchar_task, my_uchar_task_cpu, my_uchar_task_opencl,
	  my_cool_task,
	  my_cool_task_cpu, my_cool_task_opencl): New functions.
	  
	  * gcc-plugin/tests/mocks.h (cl_char, cl_uchar, cl_short,
	  cl_ushort,
	  cl_int, cl_uint, cl_long, cl_ulong, cl_half, cl_float,
	  cl_double): New
	  typedefs.
	  
	  * gcc-plugin/tests/base.c: Use `unsigned char' instead of `char'
	  as task
	  argument types.
	  
	  * gcc-plugin/tests/pointers.c: Use `long' instead of `long long'
	  as task
	  argument types.

2012-03-06 15:38  lcourtes

	* trunk/doc/chapters/basic-examples.texi,
	  trunk/doc/chapters/c-extensions.texi,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal.c,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal_opencl_kernel.cl,
	  trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/opencl-size_t.c,
	  trunk/gcc-plugin/tests/output-pointer.c: gcc: Error out when a
	  task with an OpenCL impl. uses `size_t' arguments.
	  
	  * gcc-plugin/src/starpu.c (validate_opencl_argument_type): New
	  procedure.
	  
	  * gcc-plugin/tests/opencl-size_t.c: New file.
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add
	  `opencl-size_t.c'.
	  
	  * gcc-plugin/tests/output-pointer.c: Use `int' instead of
	  `size_t' for
	  task arguments.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal.c (vector_scal,
	  vector_scal_cpu, vector_scal_sse, vector_scal_opencl,
	  vector_scal_cuda): Use `unsigned int' instead of `size_t'.
	  * gcc-plugin/examples/vector_scal/vector_scal_opencl_kernel.cl:
	  Likewise.
	  
	  * doc/chapters/basic-examples.texi (Hello World using the C
	  Extension):
	  Change examples to use `unsigned' instead of `size_t'.
	  * doc/chapters/c-extensions.texi: Likewise.

2012-03-05 13:17  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/output-pointer.c,
	  trunk/gcc-plugin/tests/pointers.c: gcc: Check the return value of
	  `starpu_data_lookup'.
	  
	  * gcc-plugin/src/starpu.c (data_lookup_fn): New declaration.
	  (build_error_statements): Add support for ERROR_VAR == NULL_TREE;
	  (handle_task_attribute): Initialize DATA_LOOKUP_FN.
	  (handle_pre_genericize): Set CURRENT_FUNCTION_DECL to TASK around
	  `define_task' call.
	  (build_pointer_lookup): Introduce a `TARGET_EXPR' that checks
	  whether
	  the returned handled is NULL.
	  
	  * gcc-plugin/tests/output-pointer.c (main): Register X.
	  * gcc-plugin/tests/pointers.c (main): Register X and Y.

2012-03-02 10:07  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/mocks.h:
	  gcc: Initialize the `name' field of codelets.
	  
	  * gcc-plugin/src/starpu.c
	  (build_codelet_initializer)[codelet_name]: New
	  function.
	  Initialize The `name' field of the generated codelet.
	  
	  * gcc-plugin/tests/mocks.h (starpu_insert_task): Make sure
	  `cl->name' is
	  a valid string.

2012-02-29 10:22  nfurmento

	* trunk/gcc-plugin/examples/cholesky/cholesky.c:
	  gcc-plugin/examples/cholesky/cholesky.c: only display warnings
	  when STARPU_DEVEL is enabled

2012-02-29 09:13  nfurmento

	* trunk/gcc-plugin/tests/Makefile.am: gcc-plugin/tests/Makefile.am:
	  add rule showcheck

2012-02-28 14:19  croelandt

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc-plugin:
	  vector_scal.c: include math.h.
	  
	  We need it since we use fabs().

2012-02-24 09:25  nfurmento

	* trunk/gcc-plugin/Makefile.am,
	  trunk/gcc-plugin/examples/Makefile.am, trunk/src/Makefile.am:
	  */Makefile.am: add missing showcheck rules

2012-02-13 12:56  croelandt

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc-plugin:
	  vector_scal: fix opencl codelet.

2012-02-13 12:54  croelandt

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc-plugin:
	  vector_scal example: unregister the handle, since it is not
	  automatically done.

2012-02-11 02:24  croelandt

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc-plugin:
	  Fix the check function in the vector_scal example.
	  
	  We obviously need to check the absolute value of vector[i] -
	  i*factor.

2012-02-11 02:15  croelandt

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc-plugin:
	  Fix a crash that happened in clSetKernelArg.
	  
	  Suprisingly enough, using an int instead of a size_t makes it
	  work.

2012-02-10 16:52  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Use
	  `STARPU_VECTOR_GET_DEV_HANDLE' in OpenCL task implementation
	  wrappers.
	  
	  * gcc-plugin/src/starpu.c
	  (build_codelet_wrapper_definition)[build_body]: Adjust to use
	  the `dev_handle' field for OpenCL task implementations instead of
	  the
	  `ptr' field.

2012-02-10 16:52  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Factorize pointer addition.
	  
	  * gcc-plugin/src/starpu.c (pointer_plus): New function.
	  (array_ref): Use it.

2012-02-10 16:52  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Use `_Static_assert' when
	  available.
	  
	  * gcc-plugin/src/starpu.c (verify): New macro.
	  (build_codelet_wrapper_definition): Use it.

2012-02-10 13:00  lcourtes

	* trunk/configure.ac, trunk/gcc-plugin/src/Makefile.am: configure:
	  Use `AM_MISSING_PROG' for Bison.
	  
	  * configure.ac: Use `AM_MISSING_PROG' instead of `AC_PROG_YACC'.
	  
	  * gcc-plugin/src/Makefile.am (AM_YFLAGS): New variable.

2012-02-10 10:27  lcourtes

	* trunk/doc/chapters/c-extensions.texi,
	  trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/verbose.c: gcc: Add
	  `-fplugin-arg-starpu-verbose'.
	  
	  * gcc-plugin/src/starpu.c (verbose_output_p): New variable.
	  (build_codelet_initializer): Use it along with `inform' instead
	  of
	  plain `printf' calls.
	  (lower_starpu): Likewise.
	  (plugin_init): Set VERBOSE_OUTPUT_P when the `verbose' argument
	  is
	  passed.
	  
	  * doc/chapters/c-extensions.texi: Document
	  `-fplugin-arg-starpu-verbose'.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add `verbose.c'.
	  * gcc-plugin/tests/verbose.c: New file.
	  
	  * gcc-plugin/examples/Makefile.am (AM_CFLAGS): Add
	  `-fplugin-arg-starpu-verbose'.

2012-02-10 08:53  nfurmento

	* trunk/gcc-plugin/examples/Makefile.am:
	  gcc-plugin/examples/Makefile.am: add LDFLAGS for CUDA and OpenCL

2012-02-09 14:50  lcourtes

	* trunk/configure.ac, trunk/gcc-plugin/tests/Makefile.am: gcc:
	  Disable the test suite when the CPU back-end is unavailable.
	  
	  * configure.ac: Warn about the inability to run the test suite
	  when
	  `--disable-cpu'.
	  
	  * gcc-plugin/tests/Makefile.am (TESTS): Conditionalize on
	  `STARPU_USE_CPU'.

2012-02-09 14:49  lcourtes

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc: Update
	  comment in `vector_scal.c'.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal.c: Update outdated
	  comment.

2012-02-09 10:24  lcourtes

	* trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal.c,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal_cuda.cu: gcc:
	  Add a CUDA task implementation for `vector_scal'.
	  
	  * gcc-plugin/examples/Makefile.am
	  (vector_scal_vector_scal_SOURCES): New
	  variable.
	  (.cu.o): New rule.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal.c
	  (vector_scal_cuda): New
	  declaration.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal_cuda.cu: New file.

2012-02-09 10:24  lcourtes

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc: Make
	  the `vector_scal' example more robust.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal.c (check): Return a
	  `bool'.
	  (main): Call `check' before `shutdown'. Introduce an inner scope
	  so
	  that VECTOR is freed before `shutdown' is called (this is
	  necessary
	  when CUDA tasks are used.)

2012-02-09 10:01  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/external-task-impl.c: gcc: Have
	  `validate_task_implementation' skip external task
	  implementations.
	  
	  * gcc-plugin/src/starpu.c (validate_task_implementation): Check
	  for
	  CGRAPH != NULL.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add
	  `external-task-impl.c'.
	  
	  * gcc-plugin/tests/external-task-impl.c: New file.

2012-02-07 16:52  lcourtes

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc: Fix the
	  `vector_scal' example for OpenCL.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal.c: Include
	  <starpu_opencl.h>.
	  (vector_scal_opencl): Fix typos.

2012-02-07 13:59  lcourtes

	* trunk/.gitignore, trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal.c,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal_opencl_kernel.cl:
	  gcc: Add an OpenCL task implementation for `vector_scal'.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal.c (cl_programs):
	  New
	  variable.
	  (vector_scal_opencl): New task implementation.
	  (main)[STARPU_USE_OPENCL]: Load `vector_scal_opencl_kernel.cl'.
	  
	  * gcc-plugin/examples/vector_scal/vector_scal_opencl_kernel.cl:
	  New file.
	  
	  * gcc-plugin/examples/Makefile.am (EXTRA_DIST): New variable.

2012-02-07 13:42  lcourtes

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc:
	  Reformat `vector_scal' example (NFC).

2012-02-07 13:42  lcourtes

	* trunk/gcc-plugin/examples/vector_scal/vector_scal.c: gcc:
	  Simplify the `vector_scal' example.

2012-02-07 13:41  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/register.c:
	  gcc: The `register' pragma now determines the size of
	  `heap_allocated' vars.
	  
	  * gcc-plugin/src/starpu.c
	  (heap_allocated_orig_type_attribute_name): New
	  variable.
	  (handle_pragma_register): When PTR is heap-allocated, use its
	  original
	  type to determine its size.
	  (handle_heap_allocated_attribute): Record VAR's original type as
	  the
	  HEAP_ALLOCATED_ORIG_TYPE_ATTRIBUTE_NAME attribute.
	  (heap_allocated_p): New function.
	  
	  * gcc-plugin/tests/register.c (heap_alloc): New function.
	  (main): Call it.

2012-02-07 13:41  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Factorize automatic array
	  variable check.
	  
	  * gcc-plugin/src/starpu.c (automatic_array_variable_p): New
	  function,
	  with code taken from `handle_heap_allocated_attribute'.
	  (handle_heap_allocated_attribute): Use it.

2012-02-07 13:41  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Factorize the
	  `starpu_data_unregister' call code.
	  
	  * gcc-plugin/src/starpu.c (build_data_unregister_call): New
	  function.
	  (handle_pragma_unregister): Use it.

2012-02-07 13:41  lcourtes

	* trunk/gcc-plugin/tests/mocks.h,
	  trunk/gcc-plugin/tests/run-test.in: gcc: Augment <mocks.h> to
	  keep track of registered handles.
	  
	  * gcc-plugin/tests/mocks.h (struct handle_entry): New type.
	  (dummy_handle_to_pointer, dummy_pointer_to_handle): Remove.
	  Update
	  callers to use `handle_to_pointer' instead of
	  `dummy_handle_to_pointer'.
	  (handle_to_entry, handle_to_pointer): New macros.
	  (registered_handles): New variable.
	  (starpu_data_lookup): Look up PTR in REGISTERED_HANDLES.
	  (starpu_vector_data_register): Insert PTR in REGISTERED_HANDLES.
	  (starpu_data_unregister): Remove HANDLE from REGISTERED_HANDLES.
	  (starpu_free): Assert that PTR is not registered.
	  
	  * gcc-plugin/tests/run-test.in (%default-cflags): Add `-I
	  ../../src'.

2012-02-07 13:41  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Factorize construction of
	  data register calls.
	  
	  * gcc-plugin/src/starpu.c (build_data_register_call): New
	  function.
	  (handle_pragma_register): Use it.

2012-02-07 13:41  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Factorize array type element
	  counting.
	  
	  * gcc-plugin/src/starpu.c (array_type_element_count): New
	  procedure.
	  (handle_pragma_register): Use it.

2012-02-06 10:32  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/mocks.h,
	  trunk/include/starpu_data.h, trunk/src/util/malloc.c: gcc:
	  heap_allocated: Manipulate cleanup handlers directly.
	  
	  * gcc-plugin/src/starpu.c (handle_heap_allocated_attribute): Use
	  `push_cleanup' instead of the `cleanup' attribute. The previous
	  code
	  shouldn't have worked because it was passing a decl instead of an
	  identifier as the `cleanup' parameter (which led to a segfault in
	  `lookup_name' on i686).
	  
	  * gcc-plugin/tests/mocks.h (_starpu_free_unref): Remove.
	  (starpu_free): New function.
	  * include/starpu_data.h (_starpu_free_unref): Remove declaration.
	  * src/util/malloc.c (_starpu_free_unref): Remove.

2012-02-02 14:23  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/register.c:
	  gcc: Allow use of a PARM_DECL as the count argument of pragma
	  `register'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): Leave the
	  chain of
	  COUNT_ARG unchanged. This fixes a bug whereby passing a PARM_DECL
	  as
	  the `count' argument would screw the parameter list.
	  Reported by Ludovic Stordeur <ludovic.stordeur@inria.fr>.
	  
	  * gcc-plugin/tests/register.c (baz): New function.
	  (main): Call it. Update expected call count.

2012-01-30 11:07  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/register-errors.c: gcc: Raise an error
	  when trying to register a `void *' pointer.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): Raise an
	  error when
	  PTR is a `void *'.
	  
	  * gcc-plugin/tests/register-errors.c (void_pointer): New
	  declaration.
	  (main): Add test.

2012-01-27 09:14  nfurmento

	* trunk/doc/chapters/advanced-examples.texi,
	  trunk/examples/cg/cg_kernels.c,
	  trunk/examples/mandelbrot/mandelbrot.c,
	  trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/mocks.h,
	  trunk/include/starpu_deprecated_api.h,
	  trunk/include/starpu_util.h,
	  trunk/mpi/examples/scatter_gather/mpi_scatter_gather.c,
	  trunk/src/util/starpu_insert_task.c,
	  trunk/tests/core/insert_task.c,
	  trunk/tests/datawizard/data_lookup.c,
	  trunk/tests/datawizard/handle_to_pointer.c,
	  trunk/tools/dev/rename.sed: Function renaming:
	  starpu_pack_cl_args --> starpu_codelet_pack_args
	  starpu_unpack_cl_args --> starpu_codelet_unpack_args

2012-01-26 16:09  lcourtes

	* trunk/configure.ac, trunk/gcc-plugin/src/Makefile.am,
	  trunk/libstarpu-1.0.pc.in: gcc: Add a `gccplugin' variable to the
	  `.pc' file.
	  
	  * configure.ac: Substitute pkglibdir, gccplugindir,
	  GCC_PLUGIN_DIR_PKGCONFIG, and GCC_PLUGIN_PKGCONFIG.
	  
	  * gcc-plugin/src/Makefile.am (plugindir): Remove.
	  (plugin_LTLIBRARIES): Rename to...
	  (gccplugin_LTLIBRARIES): ... this.
	  
	  * libstarpu-1.0.pc.in (pkglibdir): New variable.
	  Substitute GCC_PLUGIN_PKGCONFIG and GCC_PLUGIN_PKGCONFIG.

2012-01-26 10:55  lcourtes

	* trunk/gcc-plugin/src/Makefile.am: gcc: Install the plug-in under
	  `lib/starpu/1.0/gcc'.
	  
	  * gcc-plugin/src/Makefile.am (plugindir): New variable.
	  (pkglib_LTLIBRARIES): Rename to...
	  (plugin_LTLIBRARIES): ... this.

2012-01-23 15:36  lcourtes

	* trunk/gcc-plugin/examples/cholesky/cholesky.h: gcc: Fix build of
	  `cholesky' example without CUDA.
	  
	  * gcc-plugin/examples/cholesky/cholesky.h: Include <limits.h>.

2012-01-23 15:25  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Generate code that aborts
	  when `starpu_init' fails.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_initialize): Check the
	  return
	  code of `starpu_init' and abort when it's non-zero.

2012-01-23 14:30  lcourtes

	* trunk/gcc-plugin/tests/register.c: gcc: Fix `register' test on
	  32-bit platforms.
	  
	  * gcc-plugin/tests/register.c (foo): Change type of `x' to `int'
	  to make
	  sure it has an alignment > 1 byte, even on i686, since <mocks.h>
	  relies on this.

2012-01-23 13:17  croelandt

	* trunk/gcc-plugin/examples/cholesky/cholesky.h: Be paranoid with
	  strtol.
	  
	  Check for :
	  
	  * overflow/underflow
	  * size is 0
	  * size is garbage

2012-01-20 16:02  lcourtes

	* trunk/gcc-plugin/tests/Makefile.am: gcc: Augment $(CLEANFILES)
	  for the tests.
	  
	  * gcc-plugin/tests/Makefile.am (CLEANFILES): Add missing files.

2012-01-20 16:02  lcourtes

	* trunk/gcc-plugin/examples/cholesky/cholesky.c: gcc: Use
	  `heap_allocated' in `cholesky'.
	  
	  * gcc-plugin/examples/cholesky/cholesky.c (__heap): New macro.
	  (dw_cholesky): Turn `matA' into a C99 array parameter.
	  (main): Use `__heap' and remove the corresponding `malloc' calls.

2012-01-20 16:02  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/heap-allocated.c,
	  trunk/gcc-plugin/tests/mocks.h, trunk/include/starpu_data.h,
	  trunk/src/util/malloc.c: gcc: Fix support of the `heap_allocated'
	  attribute.
	  
	  This partly reverts r4728 ("gcc: Make `heap_allocated' arrays
	  really
	  have an array type.").
	  
	  * gcc-plugin/src/starpu.c (handle_heap_allocated_attribute): Turn
	  var
	  into a pointer, instead of a hacked array. Use
	  `_starpu_free_unref'
	  as the cleanup handler.
	  
	  * gcc-plugin/tests/heap-allocated.c (foo): Make sure &m[0][0] !=
	  &m, and
	  m[0][0] == m. Remove wrong assertion.
	  
	  * gcc-plugin/tests/mocks.h (starpu_free): Remove.
	  (_starpu_free_unref): New function.
	  
	  * include/starpu_data.h (_starpu_free_unref)[STARPU_GCC_PLUGIN]:
	  New
	  declaration.
	  
	  * src/util/malloc.c (_starpu_free_unref): New function.

2012-01-20 16:02  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/debug-tree.c: gcc: Add the `debug_tree'
	  pragma.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_debug_tree): New
	  function.
	  (register_pragmas): Register `debug_tree'.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add `debug-tree.c'.
	  
	  * gcc-plugin/tests/debug-tree.c: New file.

2012-01-20 09:31  lcourtes

	* trunk/gcc-plugin/examples/Makefile.am: gcc: Build example
	  programs only when `STARPU_USE_CPU'.
	  
	  * gcc-plugin/examples/Makefile.am (noinst_PROGRAMS): Define only
	  when
	  STARPU_USE_CPU.

2012-01-20 09:31  lcourtes

	* trunk/gcc-plugin/src/starpu-gcc-config.h.in,
	  trunk/gcc-plugin/src/starpu.c, trunk/m4/gcc.m4: gcc: Update
	  compatibility layer for GCC 4.5.
	  
	  * gcc-plugin/src/starpu-gcc-config.h.in
	  (HAVE_DECL_BUILD_ZERO_CST): New
	  macro.
	  
	  * gcc-plugin/src/starpu.c
	  (build_zero_cst)[!HAVE_DECL_BUILD_ZERO_CST]:
	  New function.
	  (VEC_qsort): New macro.
	  (handle_pragma_register): Check whether `DECL_READ_P' is defined
	  before using it.
	  
	  * m4/gcc.m4 (STARPU_GCC_PLUGIN_SUPPORT): Check for
	  `build_zero_cst'.

2012-01-19 15:28  lcourtes

	* trunk/gcc-plugin/tests/Makefile.am: gcc: Add missing files to the
	  distribution when GCC extensions are enabled.
	  
	  * gcc-plugin/tests/Makefile.am (EXTRA_DIST): Add $(gcc_tests)
	  regardless
	  of `HAVE_GUILE'.

2012-01-19 11:35  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Generalize the error
	  statement generation function.
	  
	  * gcc-plugin/src/starpu.c (build_error_statements): New function.
	  (define_task)[error_statements]: Remove. Use
	  `build_error_statements'
	  instead.

2012-01-19 11:35  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Check the return value of
	  `insert_task' and error out when needed.
	  
	  * gcc-plugin/src/starpu.c (build_task_body): Rename to...
	  (define_task): ... this. Check the return value of
	  `starpu_insert_task' and build an error statement. Initialize
	  some of
	  TASK_DECL's field, notably its DECL_INITIAL.
	  (handle_pre_genericize): Adjust accordingly.

2012-01-17 10:09  lcourtes

	* trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/src/starpu-gcc-config.h.in,
	  trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/run-test.in, trunk/m4/gcc.m4: gcc: Refer
	  to <starpu.h> by its absolute file name.
	  
	  * gcc-plugin/src/starpu-gcc-config.h.in (STARPU_INCLUDE_DIR): New
	  macro.
	  * m4/gcc.m4 (STARPU_GCC_PLUGIN_SUPPORT): Define it.
	  
	  * gcc-plugin/src/starpu.c (include_dir): New variable.
	  (define_cpp_macros): Provide an absolute path
	  to <starpu.h>, taking INCLUDE_DIR into account.
	  (plugin_init): Check for $STARPU_GCC_INCLUDE_DIR. Parse plug-in
	  command-line arguments.
	  
	  * gcc-plugin/tests/run-test.in (%default-cflags): Add
	  `-fplugin-arg-starpu-include-dir'.
	  * gcc-plugin/examples/Makefile.am (AM_CFLAGS): Likewise.

2012-01-16 14:46  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Error out when none of
	  a task's implementations are usable.
	  
	  * gcc-plugin/src/starpu.c (task_implementation_target_to_int):
	  Add
	  support for Gordon.
	  (task_where, validate_task): New functions.
	  (lower_starpu): Call `validate_task'.

2012-01-16 14:46  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Really honor STARPU_NMAXBUFS.
	  
	  * gcc-plugin/src/starpu.c
	  (build_codelet_initializer)[access_mode_array]: Stop when INDEX
	  >=
	  STARPU_NMAXBUFS, to avoid "confused by earlier errors".

2012-01-16 09:37  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Raise an error when
	  `STARPU_NMAXBUFS' is reached.
	  
	  * gcc-plugin/src/starpu.c (pointer_type_p, count): New functions.
	  (handle_task_attribute): Emit an error when more than
	  STARPU_NMAXBUFS
	  pointer parameters are in use.
	  (task_pointer_parameter_types)[is_pointer]: Remove. Use
	  `pointer_type_p' instead.
	  
	  * gcc-plugin/tests/task-errors.c
	  (my_task_with_too_many_pointer_params):
	  New declaration.

2012-01-16 09:37  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/mocks.h:
	  gcc: Fill in the `modes' field of `starpu_codelet'.
	  
	  * gcc-plugin/src/starpu.c (output_parameter_p): Remove.
	  (output_type_p, access_mode): New functions.
	  (build_codelet_initializer)[access_mode_array]: New function. Use
	  it
	  to initialize the `modes' field.
	  (build_task_body): Use `access_mode'.
	  
	  * gcc-plugin/tests/mocks.h (starpu_insert_task): Compare TYPE
	  against
	  `cl->modes[_]'.

2012-01-11 14:27  nfurmento

	* trunk/examples/stencil/stencil-kernels.c,
	  trunk/gcc-plugin/src/starpu.c, trunk/src/core/task.c,
	  trunk/tests/core/deprecated_func.c,
	  trunk/tests/datawizard/interfaces/multiformat/advanced/same_handle.c:
	  src: revert #5079. (struct starpu_codelet)->where is not an enum
	  starpu_access_mode

2012-01-11 09:44  nfurmento

	* trunk/examples/stencil/stencil-kernels.c,
	  trunk/gcc-plugin/src/starpu.c, trunk/src/core/task.c,
	  trunk/tests/core/deprecated_func.c,
	  trunk/tests/datawizard/interfaces/multiformat/advanced/same_handle.c:
	  src: type enum starpu_access_mode has now a named constant for 0

2012-01-04 17:12  croelandt

	* trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/examples/vector_scal,
	  trunk/gcc-plugin/examples/vector_scal/vector_scal.c: GCC plugin :
	  add a simple "vector scal" example.

2011-12-16 14:25  lcourtes

	* trunk/.gitignore, trunk/doc/chapters/c-extensions.texi,
	  trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/output-pointer-errors.c,
	  trunk/gcc-plugin/tests/output-pointer.c: gcc: Add an `output'
	  type attribute for output task parameters.
	  
	  * gcc-plugin/src/starpu.c (output_attribute_name): New variable.
	  (handle_output_attribute, output_parameter_p): New functions.
	  (register_task_attributes): Register the `output' type attribute.
	  (build_task_body): Handle `output'-qualified parameters.
	  
	  * gcc-plugin/tests/output-pointer-errors.c,
	  gcc-plugin/tests/output-pointer.c: New files.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add
	  `output-pointer.c' and
	  `output-pointer-errors.c'.
	  
	  * doc/chapters/c-extensions.texi (Defining Tasks): Document the
	  `output'
	  type attribute.

2011-12-12 16:38  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Make sure
	  `STARPU_MAXIMPLEMENTATIONS' is not exceeded.
	  
	  * gcc-plugin/src/starpu.c
	  (build_codelet_initializer)[implementation_pointers]: Make sure
	  `STARPU_MAXIMPLEMENTATIONS' is not exceeded.

2011-12-12 16:38  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/mocks.h:
	  gcc: Adjust to the `{cpu,cuda,opencl}_func' deprecation.
	  
	  * gcc-plugin/src/starpu.c
	  (build_codelet_initializer)[implementation_pointers]: Make sure
	  POINTERS is NULL-terminated.
	  Don't initialize the `cpu_func', `cuda_func', and `opencl_func'
	  fields.
	  
	  * gcc-plugin/tests/mocks.h (starpu_insert_task): Remove checks of
	  the
	  `cpu_func', `cuda_func', and `opencl_func' fields.

2011-12-12 16:38  lcourtes

	* trunk/gcc-plugin/tests/pointer-tasks.c,
	  trunk/gcc-plugin/tests/scalar-tasks.c: gcc: Link against
	  libstarpu-1.0, not libstarpu.
	  
	  * gcc-plugin/tests/pointer-tasks.c: Update instructions to
	  -lstarpu-1.0.
	  * gcc-plugin/tests/scalar-tasks.c: Likewise.

2011-12-07 16:04  lcourtes

	* trunk/doc/chapters/c-extensions.texi,
	  trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/base.c,
	  trunk/gcc-plugin/tests/mocks.h: gcc: Support multiple
	  implementations per target.
	  
	  * gcc-plugin/src/starpu.c
	  (build_codelet_initializer)[field_initializer]: Don't convert
	  arrays.
	  [implementation_pointer]: Rename to...
	  [implementation_pointers]: ... this. Always traverse all of
	  IMPLS,
	  and return an array initializer.
	  Initialize both the plural `_funcs' fields and their singular
	  counterparts.
	  
	  * gcc-plugin/tests/base.c (my_other_task_cpu_bis): New function.
	  (main): Remove outdated comment.
	  
	  * gcc-plugin/tests/mocks.h (starpu_insert_task): Check both the
	  plural
	  and singular function pointers.
	  
	  * doc/chapters/c-extensions.texi (Defining Tasks): Mention
	  multi-implementation support.

2011-12-07 14:06  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Raise an error when a
	  task implementation invokes a task.
	  
	  * gcc-plugin/src/starpu.c (validate_task_implementation): New
	  function.
	  (lower_starpu): Use it.
	  
	  * gcc-plugin/tests/task-errors.c (my_external_task,
	  my_task_that_invokes_task, my_task_that_invokes_task_cpu): New
	  function declarations.

2011-12-06 15:45  lcourtes

	* trunk/examples/Makefile.am, trunk/examples/opt/Makefile.am,
	  trunk/examples/starpufft/Makefile.am,
	  trunk/examples/stencil/Makefile.am,
	  trunk/gcc-plugin/examples/Makefile.am, trunk/libstarpu.pc.in,
	  trunk/mpi/Makefile.am, trunk/socl/src/Makefile.am,
	  trunk/src/Makefile.am, trunk/tests/Makefile.am,
	  trunk/tests/opt/Makefile.am, trunk/tools/Makefile.am: Rename
	  `libstarpu.la' to `libstarpu-MAJOR.MINOR.la'.

2011-12-02 16:11  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/heap-allocated.c,
	  trunk/gcc-plugin/tests/mocks.h, trunk/include/starpu_data.h,
	  trunk/src/util/malloc.c: gcc: Make `heap_allocated' arrays really
	  have an array type.
	  
	  * gcc-plugin/src/starpu.c (handle_heap_allocated_attribute): Make
	  VAR
	  keep its array type instead of pointer type, but fiddle with its
	  size
	  and alignment. Mark the `starpu_malloc' call as side-effecting.
	  Call
	  `starpu_free' instead of `_starpu_free_unref'.
	  
	  * gcc-plugin/tests/heap-allocated.c (foo)[test_array_parm,
	  test_array_static_parm, test_pointer_parm]: New nested functions.
	  Use them and check pointer/array arithmetic.
	  (main): Pass `foo' a large value.
	  
	  * gcc-plugin/tests/mocks.h (_starpu_free_unref): Remove.
	  (starpu_free): New function.
	  * include/starpu_data.h (_starpu_free_unref): Remove declaration.
	  * src/util/malloc.c (_starpu_free_unref): Remove.

2011-12-01 16:45  lcourtes

	* trunk/gcc-plugin/examples/Makefile.am: gcc: Add
	  `cholesky_kernels.h' to the distribution.
	  
	  * gcc-plugin/examples/Makefile.am (noinst_HEADERS): Add
	  `cholesky/cholesky_kernels.h'.

2011-12-01 14:56  nfurmento

	* trunk/gcc-plugin/examples/stencil5.c: stencil5.c: add missing
	  include <stdio.h>

2011-12-01 11:02  lcourtes

	* trunk/gcc-plugin/examples/Makefile.am: gcc: Add
	  `cholesky/cholesky.h' to the distribution.

2011-11-24 10:51  nfurmento

	* trunk/gcc-plugin/src/starpu.c: gcc-plugin/src/starpu.c: remove
	  now un-needed variable

2011-11-24 10:51  nfurmento

	* trunk/gcc-plugin/src/starpu.c, trunk/include/starpu_task.h:
	  gcc-plugin: as lookup_name cannot lookup for a struct, add a
	  typedef for struct starpu_codelet

2011-11-24 09:43  nfurmento

	* trunk/doc/chapters/advanced-api.texi,
	  trunk/doc/chapters/advanced-examples.texi,
	  trunk/doc/chapters/basic-api.texi,
	  trunk/doc/chapters/basic-examples.texi,
	  trunk/doc/chapters/mpi-support.texi,
	  trunk/doc/chapters/perf-feedback.texi,
	  trunk/doc/chapters/vector_scal_c.texi,
	  trunk/doc/tutorial/hello_world.c,
	  trunk/doc/tutorial/vector_scal.c,
	  trunk/examples/audio/starpu_audio_processing.c,
	  trunk/examples/axpy/axpy.c,
	  trunk/examples/basic_examples/block.c,
	  trunk/examples/basic_examples/hello_world.c,
	  trunk/examples/basic_examples/mult.c,
	  trunk/examples/basic_examples/multiformat.c,
	  trunk/examples/basic_examples/multiformat_conversion_codelets.c,
	  trunk/examples/basic_examples/variable.c,
	  trunk/examples/basic_examples/vector_scal.c,
	  trunk/examples/basic_examples/vector_scal_c.c,
	  trunk/examples/callback/callback.c, trunk/examples/cg/cg.c,
	  trunk/examples/cg/cg_kernels.c,
	  trunk/examples/cholesky/cholesky_grain_tag.c,
	  trunk/examples/cholesky/cholesky_implicit.c,
	  trunk/examples/cholesky/cholesky_tag.c,
	  trunk/examples/cholesky/cholesky_tile_tag.c,
	  trunk/examples/filters/fblock.c,
	  trunk/examples/filters/fmatrix.c,
	  trunk/examples/filters/fvector.c,
	  trunk/examples/heat/dw_factolu.c,
	  trunk/examples/heat/dw_factolu_grain.c,
	  trunk/examples/heat/dw_factolu_tag.c,
	  trunk/examples/heat/dw_sparse_cg.c,
	  trunk/examples/incrementer/incrementer.c,
	  trunk/examples/lu/xlu_kernels.c, trunk/examples/lu/xlu_kernels.h,
	  trunk/examples/mandelbrot/mandelbrot.c,
	  trunk/examples/matvecmult/matvecmult.c,
	  trunk/examples/mult/xgemm.c, trunk/examples/openmp/vector_scal.c,
	  trunk/examples/opt/pi/pi.c, trunk/examples/opt/pi/pi_redux.c,
	  trunk/examples/ppm_downscaler/yuv_downscaler.c,
	  trunk/examples/profiling/profiling.c,
	  trunk/examples/reductions/dot_product.c,
	  trunk/examples/reductions/minmax_reduction.c,
	  trunk/examples/scheduler/dummy_sched.c,
	  trunk/examples/spmv/dw_block_spmv.c, trunk/examples/spmv/spmv.c,
	  trunk/examples/starpufft/starpufftx1d.c,
	  trunk/examples/starpufft/starpufftx2d.c,
	  trunk/examples/stencil/stencil-kernels.c,
	  trunk/examples/stencil/stencil-tasks.c,
	  trunk/examples/stencil/stencil.h,
	  trunk/examples/tag_example/tag_example.c,
	  trunk/examples/tag_example/tag_example2.c,
	  trunk/examples/tag_example/tag_example3.c,
	  trunk/examples/tag_example/tag_restartable.c,
	  trunk/examples/top/hello_world_top.c,
	  trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/mocks.h,
	  trunk/include/starpu_data.h,
	  trunk/include/starpu_data_interfaces.h,
	  trunk/include/starpu_deprecated_api.h,
	  trunk/include/starpu_task.h, trunk/include/starpu_util.h,
	  trunk/mpi/examples/cholesky/mpi_cholesky.c,
	  trunk/mpi/examples/cholesky/mpi_cholesky_distributed.c,
	  trunk/mpi/examples/mpi_lu/pxlu_kernels.c,
	  trunk/mpi/examples/mpi_lu/pxlu_kernels.h,
	  trunk/mpi/examples/scatter_gather/mpi_scatter_gather.c,
	  trunk/mpi/examples/stencil/stencil5.c, trunk/mpi/starpu_mpi.h,
	  trunk/mpi/starpu_mpi_insert_task.c,
	  trunk/mpi/tests/insert_task.c,
	  trunk/mpi/tests/insert_task_block.c,
	  trunk/mpi/tests/insert_task_cache.c,
	  trunk/mpi/tests/insert_task_owner.c,
	  trunk/mpi/tests/insert_task_owner2.c,
	  trunk/mpi/tests/insert_task_owner_data.c, trunk/mpi/tests/ring.c,
	  trunk/mpi/tests/ring_async.c,
	  trunk/mpi/tests/ring_async_implicit.c,
	  trunk/socl/src/cl_enqueuecopybuffer.c,
	  trunk/socl/src/cl_enqueuendrangekernel.c,
	  trunk/socl/src/cl_enqueuereadbuffer.c,
	  trunk/socl/src/cl_enqueuewritebuffer.c,
	  trunk/socl/src/cl_getkernelworkgroupinfo.c,
	  trunk/socl/src/command.c, trunk/socl/src/command.h,
	  trunk/socl/src/task.c,
	  trunk/src/core/dependencies/data_concurrency.c,
	  trunk/src/core/task.c, trunk/src/core/workers.c,
	  trunk/src/datawizard/coherency.h,
	  trunk/src/datawizard/interfaces/multiformat_interface.c,
	  trunk/src/datawizard/reduction.c,
	  trunk/src/drivers/cpu/driver_cpu.c,
	  trunk/src/drivers/cuda/driver_cuda.c,
	  trunk/src/drivers/driver_common/driver_common.c,
	  trunk/src/drivers/gordon/driver_gordon.c,
	  trunk/src/drivers/opencl/driver_opencl.c,
	  trunk/src/profiling/bound.c, trunk/src/util/execute_on_all.c,
	  trunk/src/util/malloc.c, trunk/src/util/starpu_data_cpy.c,
	  trunk/src/util/starpu_insert_task.c,
	  trunk/src/util/starpu_insert_task_utils.c,
	  trunk/src/util/starpu_insert_task_utils.h,
	  trunk/tests/core/declare_deps_after_submission.c,
	  trunk/tests/core/declare_deps_after_submission_synchronous.c,
	  trunk/tests/core/declare_deps_in_callback.c,
	  trunk/tests/core/empty_task_sync_point.c,
	  trunk/tests/core/empty_task_sync_point_tasks.c,
	  trunk/tests/core/execute_on_a_specific_worker.c,
	  trunk/tests/core/get_current_task.c,
	  trunk/tests/core/insert_task.c, trunk/tests/core/multithreaded.c,
	  trunk/tests/core/regenerate.c,
	  trunk/tests/core/starpu_task_wait.c,
	  trunk/tests/core/starpu_task_wait_for_all.c,
	  trunk/tests/core/static_restartable.c,
	  trunk/tests/core/static_restartable_tag.c,
	  trunk/tests/core/static_restartable_using_initializer.c,
	  trunk/tests/core/subgraph_repeat.c,
	  trunk/tests/core/subgraph_repeat_regenerate.c,
	  trunk/tests/core/tag_wait_api.c,
	  trunk/tests/core/task_wait_api.c,
	  trunk/tests/core/wait_all_regenerable_tasks.c,
	  trunk/tests/datawizard/acquire_cb_insert.c,
	  trunk/tests/datawizard/acquire_release.c,
	  trunk/tests/datawizard/acquire_release2.c,
	  trunk/tests/datawizard/copy.c,
	  trunk/tests/datawizard/critical_section_with_void_interface.c,
	  trunk/tests/datawizard/data_implicit_deps.c,
	  trunk/tests/datawizard/data_invalidation.c,
	  trunk/tests/datawizard/data_lookup.c,
	  trunk/tests/datawizard/dining_philosophers.c,
	  trunk/tests/datawizard/dsm_stress.c,
	  trunk/tests/datawizard/handle_to_pointer.c,
	  trunk/tests/datawizard/increment_redux.c,
	  trunk/tests/datawizard/increment_redux_v2.c,
	  trunk/tests/datawizard/interfaces/test_interfaces.c,
	  trunk/tests/datawizard/lazy_allocation.c,
	  trunk/tests/datawizard/manual_reduction.c,
	  trunk/tests/datawizard/mpi_like.c,
	  trunk/tests/datawizard/mpi_like_async.c,
	  trunk/tests/datawizard/readers_and_writers.c,
	  trunk/tests/datawizard/reclaim.c,
	  trunk/tests/datawizard/scratch.c,
	  trunk/tests/datawizard/sync_and_notify_data.c,
	  trunk/tests/datawizard/sync_and_notify_data_implicit.c,
	  trunk/tests/datawizard/sync_with_data_with_mem.c,
	  trunk/tests/datawizard/sync_with_data_with_mem_non_blocking.c,
	  trunk/tests/datawizard/sync_with_data_with_mem_non_blocking_implicit.c,
	  trunk/tests/datawizard/unpartition.c,
	  trunk/tests/datawizard/write_only_tmp_buffer.c,
	  trunk/tests/errorcheck/invalid_blocking_calls.c,
	  trunk/tests/errorcheck/invalid_tasks.c,
	  trunk/tests/helper/starpu_create_sync_task.c,
	  trunk/tests/microbenchs/async_tasks_overhead.c,
	  trunk/tests/microbenchs/prefetch_data_on_node.c,
	  trunk/tests/microbenchs/redundant_buffer.c,
	  trunk/tests/microbenchs/sync_tasks_overhead.c,
	  trunk/tests/microbenchs/tasks_overhead.c,
	  trunk/tests/opt/datawizard/wt_broadcast.c,
	  trunk/tests/opt/datawizard/wt_host.c,
	  trunk/tests/overlap/overlap.c,
	  trunk/tests/parallel_tasks/explicit_combined_worker.c,
	  trunk/tests/parallel_tasks/parallel_kernels.c,
	  trunk/tests/parallel_tasks/parallel_kernels_spmd.c,
	  trunk/tests/parallel_tasks/spmd_pgreedy.c,
	  trunk/tests/perfmodels/non_linear_regression_based.c,
	  trunk/tests/perfmodels/regression_based.c,
	  trunk/tools/dev/rename.sed: do not use typedef for
	  starpu_codelet, use it directly as a struct

2011-11-23 15:51  nfurmento

	* trunk/doc/chapters/advanced-api.texi,
	  trunk/doc/chapters/advanced-examples.texi,
	  trunk/doc/chapters/basic-api.texi,
	  trunk/doc/chapters/basic-examples.texi,
	  trunk/doc/chapters/mpi-support.texi,
	  trunk/doc/chapters/vector_scal_c.texi,
	  trunk/doc/tutorial/vector_scal.c,
	  trunk/examples/audio/starpu_audio_processing.c,
	  trunk/examples/axpy/axpy.c,
	  trunk/examples/basic_examples/block.c,
	  trunk/examples/basic_examples/mult.c,
	  trunk/examples/basic_examples/multiformat.c,
	  trunk/examples/basic_examples/variable.c,
	  trunk/examples/basic_examples/vector_scal.c,
	  trunk/examples/basic_examples/vector_scal_c.c,
	  trunk/examples/callback/callback.c, trunk/examples/cg/cg.c,
	  trunk/examples/cg/cg.h, trunk/examples/cg/cg_kernels.c,
	  trunk/examples/cholesky/cholesky_grain_tag.c,
	  trunk/examples/cholesky/cholesky_implicit.c,
	  trunk/examples/cholesky/cholesky_tag.c,
	  trunk/examples/cholesky/cholesky_tile_tag.c,
	  trunk/examples/filters/fblock.c,
	  trunk/examples/filters/fmatrix.c,
	  trunk/examples/filters/fvector.c,
	  trunk/examples/heat/dw_factolu.c,
	  trunk/examples/heat/dw_factolu.h,
	  trunk/examples/heat/dw_factolu_grain.c,
	  trunk/examples/heat/dw_factolu_tag.c,
	  trunk/examples/heat/dw_sparse_cg.c,
	  trunk/examples/heat/dw_sparse_cg.h,
	  trunk/examples/incrementer/incrementer.c,
	  trunk/examples/lu/xlu.c, trunk/examples/lu/xlu_implicit.c,
	  trunk/examples/lu/xlu_implicit_pivot.c,
	  trunk/examples/lu/xlu_pivot.c,
	  trunk/examples/mandelbrot/mandelbrot.c,
	  trunk/examples/matvecmult/matvecmult.c,
	  trunk/examples/mult/xgemm.c, trunk/examples/openmp/vector_scal.c,
	  trunk/examples/opt/pi/pi.c, trunk/examples/opt/pi/pi_redux.c,
	  trunk/examples/ppm_downscaler/yuv_downscaler.c,
	  trunk/examples/reductions/dot_product.c,
	  trunk/examples/reductions/minmax_reduction.c,
	  trunk/examples/spmv/dw_block_spmv.c, trunk/examples/spmv/spmv.c,
	  trunk/examples/starpufft/starpufftx.c,
	  trunk/examples/stencil/stencil-blocks.c,
	  trunk/examples/stencil/stencil-tasks.c,
	  trunk/examples/stencil/stencil.h, trunk/gcc-plugin/tests/mocks.h,
	  trunk/include/starpu_data.h, trunk/include/starpu_data_filters.h,
	  trunk/include/starpu_data_interfaces.h,
	  trunk/include/starpu_scheduler.h, trunk/include/starpu_util.h,
	  trunk/mpi/examples/cholesky/mpi_cholesky.c,
	  trunk/mpi/examples/cholesky/mpi_cholesky_distributed.c,
	  trunk/mpi/examples/mpi_lu/plu_example.c,
	  trunk/mpi/examples/mpi_lu/pxlu.c,
	  trunk/mpi/examples/mpi_lu/pxlu.h,
	  trunk/mpi/examples/scatter_gather/mpi_scatter_gather.c,
	  trunk/mpi/examples/stencil/stencil5.c, trunk/mpi/starpu_mpi.c,
	  trunk/mpi/starpu_mpi.h, trunk/mpi/starpu_mpi_collective.c,
	  trunk/mpi/starpu_mpi_datatype.c, trunk/mpi/starpu_mpi_datatype.h,
	  trunk/mpi/starpu_mpi_helper.c,
	  trunk/mpi/starpu_mpi_insert_task.c,
	  trunk/mpi/starpu_mpi_private.h,
	  trunk/mpi/tests/block_interface.c,
	  trunk/mpi/tests/block_interface_pinned.c,
	  trunk/mpi/tests/insert_task.c,
	  trunk/mpi/tests/insert_task_block.c,
	  trunk/mpi/tests/insert_task_cache.c,
	  trunk/mpi/tests/insert_task_owner.c,
	  trunk/mpi/tests/insert_task_owner2.c,
	  trunk/mpi/tests/insert_task_owner_data.c,
	  trunk/mpi/tests/mpi_detached_tag.c, trunk/mpi/tests/mpi_irecv.c,
	  trunk/mpi/tests/mpi_irecv_detached.c,
	  trunk/mpi/tests/mpi_isend.c,
	  trunk/mpi/tests/mpi_isend_detached.c, trunk/mpi/tests/mpi_test.c,
	  trunk/mpi/tests/multiple_send.c, trunk/mpi/tests/pingpong.c,
	  trunk/mpi/tests/ring.c, trunk/mpi/tests/ring_async.c,
	  trunk/mpi/tests/ring_async_implicit.c, trunk/socl/src/socl.h,
	  trunk/src/core/dependencies/data_concurrency.c,
	  trunk/src/core/dependencies/data_concurrency.h,
	  trunk/src/core/dependencies/implicit_data_deps.c,
	  trunk/src/core/dependencies/implicit_data_deps.h,
	  trunk/src/core/jobs.c, trunk/src/core/perfmodel/perfmodel.c,
	  trunk/src/core/perfmodel/perfmodel_history.c,
	  trunk/src/core/task.c, trunk/src/core/task_bundle.c,
	  trunk/src/datawizard/coherency.c,
	  trunk/src/datawizard/coherency.h,
	  trunk/src/datawizard/copy_driver.c,
	  trunk/src/datawizard/copy_driver.h,
	  trunk/src/datawizard/data_request.c,
	  trunk/src/datawizard/data_request.h,
	  trunk/src/datawizard/datastats.c,
	  trunk/src/datawizard/datastats.h, trunk/src/datawizard/filters.c,
	  trunk/src/datawizard/footprint.c,
	  trunk/src/datawizard/footprint.h,
	  trunk/src/datawizard/interfaces/bcsr_interface.c,
	  trunk/src/datawizard/interfaces/block_interface.c,
	  trunk/src/datawizard/interfaces/csr_interface.c,
	  trunk/src/datawizard/interfaces/data_interface.c,
	  trunk/src/datawizard/interfaces/data_interface.h,
	  trunk/src/datawizard/interfaces/matrix_interface.c,
	  trunk/src/datawizard/interfaces/multiformat_interface.c,
	  trunk/src/datawizard/interfaces/variable_interface.c,
	  trunk/src/datawizard/interfaces/vector_interface.c,
	  trunk/src/datawizard/interfaces/void_interface.c,
	  trunk/src/datawizard/memalloc.c, trunk/src/datawizard/memalloc.h,
	  trunk/src/datawizard/reduction.c,
	  trunk/src/datawizard/user_interactions.c,
	  trunk/src/datawizard/write_back.c,
	  trunk/src/datawizard/write_back.h, trunk/src/debug/latency.c,
	  trunk/src/debug/starpu_debug_helpers.h,
	  trunk/src/drivers/gordon/driver_gordon.c,
	  trunk/src/sched_policies/deque_modeling_policy_data_aware.c,
	  trunk/src/util/starpu_data_cpy.c,
	  trunk/src/util/starpu_insert_task_utils.c,
	  trunk/tests/core/execute_on_a_specific_worker.c,
	  trunk/tests/core/insert_task.c,
	  trunk/tests/datawizard/acquire_cb.c,
	  trunk/tests/datawizard/acquire_cb_insert.c,
	  trunk/tests/datawizard/acquire_release.c,
	  trunk/tests/datawizard/acquire_release2.c,
	  trunk/tests/datawizard/copy.c,
	  trunk/tests/datawizard/critical_section_with_void_interface.c,
	  trunk/tests/datawizard/data_implicit_deps.c,
	  trunk/tests/datawizard/data_invalidation.c,
	  trunk/tests/datawizard/data_lookup.c,
	  trunk/tests/datawizard/dining_philosophers.c,
	  trunk/tests/datawizard/dsm_stress.c,
	  trunk/tests/datawizard/handle_to_pointer.c,
	  trunk/tests/datawizard/increment_redux.c,
	  trunk/tests/datawizard/increment_redux_v2.c,
	  trunk/tests/datawizard/interfaces/test_interfaces.c,
	  trunk/tests/datawizard/interfaces/test_interfaces.h,
	  trunk/tests/datawizard/interfaces/test_vector_interface.c,
	  trunk/tests/datawizard/lazy_allocation.c,
	  trunk/tests/datawizard/manual_reduction.c,
	  trunk/tests/datawizard/mpi_like.c,
	  trunk/tests/datawizard/mpi_like_async.c,
	  trunk/tests/datawizard/readers_and_writers.c,
	  trunk/tests/datawizard/reclaim.c,
	  trunk/tests/datawizard/scratch.c,
	  trunk/tests/datawizard/sync_and_notify_data.c,
	  trunk/tests/datawizard/sync_and_notify_data_implicit.c,
	  trunk/tests/datawizard/sync_with_data_with_mem.c,
	  trunk/tests/datawizard/sync_with_data_with_mem_non_blocking.c,
	  trunk/tests/datawizard/sync_with_data_with_mem_non_blocking_implicit.c,
	  trunk/tests/datawizard/unpartition.c,
	  trunk/tests/datawizard/user_interaction_implicit.c,
	  trunk/tests/datawizard/write_only_tmp_buffer.c,
	  trunk/tests/errorcheck/invalid_blocking_calls.c,
	  trunk/tests/helper/starpu_data_cpy.c,
	  trunk/tests/microbenchs/local_pingpong.c,
	  trunk/tests/microbenchs/prefetch_data_on_node.c,
	  trunk/tests/microbenchs/redundant_buffer.c,
	  trunk/tests/microbenchs/tasks_overhead.c,
	  trunk/tests/opt/datawizard/wt_broadcast.c,
	  trunk/tests/opt/datawizard/wt_host.c,
	  trunk/tests/overlap/overlap.c,
	  trunk/tests/parallel_tasks/explicit_combined_worker.c,
	  trunk/tests/parallel_tasks/parallel_kernels.c,
	  trunk/tests/parallel_tasks/parallel_kernels_spmd.c,
	  trunk/tests/parallel_tasks/spmd_pgreedy.c,
	  trunk/tests/perfmodels/non_linear_regression_based.c,
	  trunk/tests/perfmodels/regression_based.c,
	  trunk/tools/dev/rename.sed, trunk/tools/gdbinit: Rename public
	  opaque type starpu_data_handle as starpu_data_handle_t

2011-11-23 15:06  nfurmento

	* trunk/doc/chapters/basic-api.texi,
	  trunk/doc/chapters/vector_scal_cpu.texi,
	  trunk/doc/tutorial/vector_scal_cpu.c,
	  trunk/examples/basic_examples/vector_scal_cpu.c,
	  trunk/examples/openmp/vector_scal.c, trunk/examples/spmv/spmv.c,
	  trunk/examples/stencil/stencil-kernels.c,
	  trunk/gcc-plugin/src/starpu.c,
	  trunk/include/starpu_data_interfaces.h, trunk/src/core/task.c,
	  trunk/src/datawizard/interfaces/bcsr_filters.c,
	  trunk/src/datawizard/interfaces/bcsr_interface.c,
	  trunk/src/datawizard/interfaces/block_filters.c,
	  trunk/src/datawizard/interfaces/block_interface.c,
	  trunk/src/datawizard/interfaces/csr_filters.c,
	  trunk/src/datawizard/interfaces/csr_interface.c,
	  trunk/src/datawizard/interfaces/matrix_filters.c,
	  trunk/src/datawizard/interfaces/matrix_interface.c,
	  trunk/src/datawizard/interfaces/multiformat_interface.c,
	  trunk/src/datawizard/interfaces/variable_interface.c,
	  trunk/src/datawizard/interfaces/vector_filters.c,
	  trunk/src/datawizard/interfaces/vector_interface.c,
	  trunk/tools/dev/rename.sed: Type renaming:
	  
	  s/\bstarpu_block_interface_t/struct starpu_block_interface/g
	  s/\bstarpu_matrix_interface_t/struct starpu_matrix_interface/g
	  s/\bstarpu_vector_interface_t/struct starpu_vector_interface/g
	  s/\bstarpu_variable_interface_t/struct
	  starpu_variable_interface/g
	  s/\bstarpu_csr_interface_t/struct starpu_csr_interface/g
	  s/\bstarpu_bcsr_interface_t/struct starpu_bcsr_interface/g
	  s/\bstarpu_multiformat_interface_t/struct
	  starpu_multiformat_interface/g

2011-11-23 12:52  nfurmento

	* trunk/doc/chapters/advanced-api.texi,
	  trunk/doc/chapters/basic-api.texi,
	  trunk/gcc-plugin/tests/mocks.h, trunk/include/starpu_data.h,
	  trunk/include/starpu_scheduler.h,
	  trunk/socl/src/cl_enqueuemapbuffer.c,
	  trunk/src/core/dependencies/data_concurrency.c,
	  trunk/src/core/dependencies/data_concurrency.h,
	  trunk/src/core/dependencies/implicit_data_deps.c,
	  trunk/src/core/dependencies/implicit_data_deps.h,
	  trunk/src/core/perfmodel/perfmodel.c,
	  trunk/src/core/task_bundle.c, trunk/src/datawizard/coherency.c,
	  trunk/src/datawizard/coherency.h,
	  trunk/src/datawizard/data_request.c,
	  trunk/src/datawizard/data_request.h,
	  trunk/src/datawizard/user_interactions.c,
	  trunk/src/util/starpu_insert_task_utils.c,
	  trunk/tests/core/execute_on_a_specific_worker.c,
	  trunk/tests/datawizard/dsm_stress.c,
	  trunk/tests/microbenchs/prefetch_data_on_node.c: turn
	  starpu_access_mode into an enumerated type

2011-11-17 13:35  nfurmento

	* trunk/doc/starpu.texi,
	  trunk/examples/audio/starpu_audio_processing.c,
	  trunk/examples/basic_examples/mult.c,
	  trunk/examples/basic_examples/multiformat.c,
	  trunk/examples/basic_examples/vector_scal.c,
	  trunk/examples/basic_examples/vector_scal_c.c,
	  trunk/examples/cg/cg_kernels.c,
	  trunk/examples/cholesky/cholesky.h,
	  trunk/examples/cholesky/cholesky_grain_tag.c,
	  trunk/examples/cholesky/cholesky_models.c,
	  trunk/examples/cholesky/cholesky_tag.c,
	  trunk/examples/cholesky/cholesky_tile_tag.c,
	  trunk/examples/common/blas_model.h,
	  trunk/examples/heat/dw_factolu.h,
	  trunk/examples/heat/dw_factolu_grain.c,
	  trunk/examples/heat/dw_factolu_tag.c,
	  trunk/examples/heat/dw_sparse_cg.c,
	  trunk/examples/heat/lu_kernels_model.c, trunk/examples/lu/xlu.c,
	  trunk/examples/lu/xlu.h, trunk/examples/lu/xlu_kernels.c,
	  trunk/examples/lu/xlu_pivot.c, trunk/examples/mult/xgemm.c,
	  trunk/examples/openmp/vector_scal.c, trunk/examples/opt/pi/pi.c,
	  trunk/examples/scheduler/dummy_sched.c,
	  trunk/examples/spmv/dw_block_spmv.c,
	  trunk/examples/starpufft/starpufft.h,
	  trunk/examples/starpufft/starpufftx.c,
	  trunk/examples/starpufft/starpufftx1d.c,
	  trunk/examples/starpufft/starpufftx2d.c,
	  trunk/examples/stencil/stencil-blocks.c,
	  trunk/examples/stencil/stencil-kernels.c,
	  trunk/examples/stencil/stencil-tasks.c,
	  trunk/examples/stencil/stencil.h,
	  trunk/examples/tag_example/tag_example.c,
	  trunk/examples/tag_example/tag_example2.c,
	  trunk/examples/tag_example/tag_example3.c,
	  trunk/examples/tag_example/tag_restartable.c,
	  trunk/gcc-plugin/examples/cholesky/cholesky_models.c,
	  trunk/include/starpu.h, trunk/include/starpu_data.h,
	  trunk/include/starpu_data_filters.h,
	  trunk/include/starpu_data_interfaces.h,
	  trunk/include/starpu_perfmodel.h,
	  trunk/include/starpu_scheduler.h, trunk/include/starpu_task.h,
	  trunk/include/starpu_util.h,
	  trunk/mpi/examples/cholesky/mpi_cholesky_models.c,
	  trunk/mpi/examples/cholesky/mpi_cholesky_models.h,
	  trunk/mpi/examples/mpi_lu/pxlu.c,
	  trunk/mpi/examples/mpi_lu/pxlu_kernels.c, trunk/mpi/starpu_mpi.h,
	  trunk/mpi/starpu_mpi_helper.c,
	  trunk/mpi/tests/mpi_detached_tag.c,
	  trunk/socl/src/cl_enqueuendrangekernel.c, trunk/socl/src/task.c,
	  trunk/src/core/dependencies/htable.c,
	  trunk/src/core/dependencies/htable.h,
	  trunk/src/core/dependencies/tags.c,
	  trunk/src/core/dependencies/tags.h,
	  trunk/src/core/perfmodel/perfmodel.c,
	  trunk/src/core/perfmodel/perfmodel.h,
	  trunk/src/core/perfmodel/perfmodel_history.c,
	  trunk/src/core/sched_policy.c, trunk/src/core/sched_policy.h,
	  trunk/src/datawizard/coherency.h, trunk/src/datawizard/filters.c,
	  trunk/src/datawizard/interfaces/bcsr_interface.c,
	  trunk/src/datawizard/interfaces/block_interface.c,
	  trunk/src/datawizard/interfaces/csr_interface.c,
	  trunk/src/datawizard/interfaces/data_interface.c,
	  trunk/src/datawizard/interfaces/data_interface.h,
	  trunk/src/datawizard/interfaces/matrix_interface.c,
	  trunk/src/datawizard/interfaces/multiformat_interface.c,
	  trunk/src/datawizard/interfaces/variable_interface.c,
	  trunk/src/datawizard/interfaces/vector_interface.c,
	  trunk/src/datawizard/interfaces/void_interface.c,
	  trunk/src/datawizard/memalloc.c, trunk/src/datawizard/memalloc.h,
	  trunk/src/drivers/gordon/driver_gordon.c,
	  trunk/src/profiling/bound.c, trunk/src/profiling/bound.h,
	  trunk/src/sched_policies/deque_modeling_policy_data_aware.c,
	  trunk/src/sched_policies/eager_central_policy.c,
	  trunk/src/sched_policies/eager_central_priority_policy.c,
	  trunk/src/sched_policies/heft.c,
	  trunk/src/sched_policies/parallel_greedy.c,
	  trunk/src/sched_policies/parallel_heft.c,
	  trunk/src/sched_policies/random_policy.c,
	  trunk/src/sched_policies/work_stealing_policy.c,
	  trunk/src/util/malloc.c,
	  trunk/src/util/starpu_create_sync_task.c,
	  trunk/src/util/starpu_data_cpy.c,
	  trunk/tests/core/empty_task_sync_point.c,
	  trunk/tests/core/static_restartable_tag.c,
	  trunk/tests/core/tag_wait_api.c,
	  trunk/tests/helper/starpu_create_sync_task.c,
	  trunk/tests/microbenchs/tasks_overhead.c,
	  trunk/tests/overlap/overlap.c,
	  trunk/tests/parallel_tasks/parallel_kernels.c,
	  trunk/tests/parallel_tasks/parallel_kernels_spmd.c,
	  trunk/tests/perfmodels/non_linear_regression_based.c,
	  trunk/tests/perfmodels/regression_based.c,
	  trunk/tools/starpu_perfmodel_display.c,
	  trunk/tools/starpu_perfmodel_plot.c: Datatypes renaming
	  
	  starpu_perfmodel_t -> starpu_perfmodel
	  starpu_tag_t -> starpu_tag
	  starpu_sched_policy_s -> starpu_sched_policy
	  starpu_data_interface_ops_t -> starpu_data_interface_ops

2011-10-07 13:52  lcourtes

	* trunk/.gitignore, trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/heap-allocated-errors.c,
	  trunk/gcc-plugin/tests/heap-allocated.c,
	  trunk/gcc-plugin/tests/mocks.h, trunk/include/starpu_data.h,
	  trunk/src/util/malloc.c: gcc: Add the `heap_allocated' attribute.
	  
	  * gcc-plugin/src/starpu.c (heap_allocated_attribute_name): New
	  variable.
	  (handle_heap_allocated_attribute): New function.
	  (register_task_attributes): Register it.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add
	  `heap-allocated.c' and
	  `heap-allocated-errors.c'.
	  
	  * gcc-plugin/tests/heap-allocated-errors.c,
	  gcc-plugin/tests/heap-allocated.c: New files.
	  
	  * gcc-plugin/tests/mocks.h (malloc_calls, free_calls,
	  expected_malloc_argument, expected_free_argument): New variables.
	  (starpu_malloc, _starpu_free_unref): New functions.
	  
	  * include/starpu_data.h [STARPU_GCC_PLUGIN](_starpu_free_unref):
	  New
	  declaration.
	  
	  * src/util/malloc.c (_starpu_free_unref): New function.

2011-10-07 13:52  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Fix handling of `cflags'
	  in test instructions.
	  
	  * gcc-plugin/tests/run-test.in (compile/match): Suitably parse
	  `cflags'.

2011-10-07 13:52  lcourtes

	* trunk/gcc-plugin/tests/register.c: gcc: Add tests for `register'
	  with non-vector matrices.
	  
	  * gcc-plugin/tests/register.c (main): Add two tests.

2011-10-06 11:31  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Link with the `.lo' file
	  of dependencies, not the `.o' file.
	  
	  * gcc-plugin/tests/run-test.in (compile/match)[c->o]: Return the
	  `.lo'
	  file, not the `.o' file.

2011-10-04 09:42  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/base.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Support interleaved
	  declarations & definitions of task implementations.
	  
	  * gcc-plugin/src/starpu.c (unpack_fn): New variable.
	  (handle_task_attribute): Look up `starpu_unpack_cl_args'.
	  (handle_task_implementation_attribute): Check the `where'
	  argument
	  here.
	  (task_implementation_target_to_int): New function.
	  (task_implementation_where): Use it.
	  (build_codelet_wrapper_definition): Use the global `unpack_fn'
	  instead
	  of the local `unpack_fndecl'.
	  (codelet_type): Cache the result.
	  (define_codelet): Rename to...
	  (declare_codelet): ... this. Declare the codelet without defining
	  it. Remove call to `define_codelet_wrappers'.
	  (handle_pre_genericize): Use `declare_codelet' instead
	  `define_codelet'.
	  (lower_starpu): Define the codelet wrappers and codelet here.
	  
	  * gcc-plugin/tests/base.c (my_other_task, my_other_task_cpu,
	  my_other_task_opencl): New functions.
	  (main): Invoke `my_other_task'.
	  
	  * gcc-plugin/tests/task-errors.c (my_task_nowhere): Move warning
	  from
	  definition to declaration.

2011-10-04 09:42  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Simplify `task' attribute
	  handling.
	  
	  * gcc-plugin/src/starpu.c (handle_task_implementation_attribute):
	  Modify
	  ATTR instead of building a new attribute list.

2011-09-23 09:09  nfurmento

	* trunk/gcc-plugin/examples/Makefile.am:
	  gcc-plugin/examples/Makefile.am: only enable cholesky example if
	  a blas library is enabled

2011-09-23 09:06  nfurmento

	* trunk/gcc-plugin/examples/Makefile.am:
	  gcc-plugin/examples/Makefile.am: fix location for cholesky
	  example

2011-09-22 14:12  nfurmento

	* trunk/gcc-plugin/examples/cholesky/cholesky_kernels.c:
	  gcc-plugin/examples/cholesky: un-const where not necessary

2011-09-22 14:11  nfurmento

	* trunk/gcc-plugin/examples/cholesky/cholesky.c,
	  trunk/gcc-plugin/examples/cholesky/cholesky_kernels.c:
	  gcc-plugin/examples/cholesky: fix CUDA implementation

2011-09-22 13:13  lcourtes

	* trunk/gcc-plugin/examples/cholesky/cholesky_kernels.c,
	  trunk/gcc-plugin/examples/cholesky/cholesky_kernels.h: gcc:
	  Cholesky example: Remove `const' for scalar values.
	  
	  * gcc-plugin/examples/cholesky/cholesky_kernels.h: Remove `const'
	  from
	  function prototype for scalar arguments.
	  
	  * gcc-plugin/examples/cholesky/cholesky_kernels.c: Update
	  accordingly.

2011-09-22 13:03  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Error out when a task
	  doesn't return `void'.
	  
	  * gcc-plugin/src/starpu.c (handle_task_attribute): Error out when
	  FN
	  doesn't return `void'.
	  
	  * gcc-plugin/tests/task-errors.c (my_task_not_void): New
	  declaration.

2011-09-22 13:01  nfurmento

	* trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/examples/cholesky,
	  trunk/gcc-plugin/examples/cholesky/cholesky.c,
	  trunk/gcc-plugin/examples/cholesky/cholesky.h,
	  trunk/gcc-plugin/examples/cholesky/cholesky_kernels.c,
	  trunk/gcc-plugin/examples/cholesky/cholesky_kernels.h,
	  trunk/gcc-plugin/examples/cholesky/cholesky_models.c: gcc-plugin:
	  new cholesky example

2011-09-22 08:30  nfurmento

	* trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/examples/stencil5.c: gcc-plugin: add a very
	  simple stencil example

2011-09-15 11:50  nfurmento

	* trunk/gcc-plugin/tests/run-test.in: gcc-plugin: update
	  compilation system
	  
	  gcc-plugin/tests/run-test.in: executables are created in the
	  build directory, not in the source directory

2011-09-15 08:09  nfurmento

	* trunk, trunk/doc, trunk/examples, trunk/examples/opt,
	  trunk/examples/socl, trunk/examples/starpufft,
	  trunk/examples/stencil, trunk/gcc-plugin,
	  trunk/gcc-plugin/examples, trunk/gcc-plugin/src,
	  trunk/gcc-plugin/tests, trunk/mpi, trunk/socl, trunk/socl/src,
	  trunk/src, trunk/tests, trunk/tests/opt, trunk/tools: update
	  svn:ignore files

2011-09-09 13:24  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Run tests with LC_ALL=C
	  instead of LANG=C.
	  
	  * gcc-plugin/tests/run-test.in (compile-starpu-code): Set $LC_ALL
	  instead of $LANG.

2011-09-09 13:20  lcourtes

	* trunk/gcc-plugin/src/c-expr.y,
	  trunk/gcc-plugin/src/starpu-gcc-config.h.in,
	  trunk/gcc-plugin/src/starpu.c, trunk/m4/gcc.m4: gcc: Detect a few
	  header files to support Debian's layout.
	  
	  * m4/gcc.m4 (STARPU_GCC_PLUGIN_SUPPORT): Check for c-* headers.
	  
	  * gcc-plugin/src/starpu-gcc-config.h.in
	  (HAVE_C_FAMILY_C_COMMON_H,
	  HAVE_C_COMMON_H, HAVE_C_FAMILY_C_PRAGMA_H, HAVE_C_PRAGMA_H): New
	  macro templates.
	  
	  * gcc-plugin/src/starpu.c: Adjust accordingly.
	  
	  * gcc-plugin/src/c-expr.y: Likewise.

2011-09-09 13:02  nfurmento

	* trunk/gcc-plugin/src/c-expr.y, trunk/gcc-plugin/src/starpu.c:
	  gcc-plugin: fix directory for include files c-common.h and
	  c-pragma.h

2011-09-08 09:36  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Fix another out-of-tree
	  build issue.
	  
	  * gcc-plugin/tests/run-test.in (compile/match): Prepend %SRCDIR
	  to
	  DEPENDENCIES. Reported by Olivier Aumage.

2011-09-08 07:11  lcourtes

	* trunk/gcc-plugin/README: gcc: Add note about the dependency on
	  Bison.
	  
	  * gcc-plugin/README: Add.

2011-09-08 07:10  lcourtes

	* trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/tests/run-test.in: gcc: Fix a couple more build
	  issues.
	  
	  * gcc-plugin/examples/Makefile.am (AM_CPPFLAGS): Add missing `-I'
	  flag.
	  
	  * gcc-plugin/tests/run-test.in (%default-ldflags): Use `-L
	  $builddir',
	  not `-L $srcdir'. Reported by Olivier Aumage.

2011-09-06 16:47  lcourtes

	* trunk/gcc-plugin/src/Makefile.am: gcc: Add missing `-I' CPP flag.
	  
	  * gcc-plugin/src/Makefile.am (AM_CPPFLAGS): Add
	  `-I$(top_srcdir)/include'. Thanks to Olivier Aumage.

2011-09-06 12:06  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/wait-errors.c: gcc: Error out when using
	  `pragma wait' from a task implementation.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_wait): Bail out when
	  CURRENT_FUNCTION_DECL is a task implementation.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add `wait-errors.c'.
	  
	  * gcc-plugin/tests/wait-errors.c: New file.

2011-09-06 12:06  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Compile tests both with
	  `-O0' and `-O2'.
	  
	  * gcc-plugin/tests/run-test.in (%default-cflags): Remove "-O2".
	  (build/run): Call `compile/match' both for "-O0" and "-O2".

2011-09-06 12:06  lcourtes

	* trunk/gcc-plugin/tests/lib-user.c: gcc: Fix test case to work
	  with `-O0'.
	  
	  * gcc-plugin/tests/lib-user.c (main): Align X.

2011-09-05 13:21  lcourtes

	* trunk/gcc-plugin/examples/matrix-mult.c: gcc: Use new syntactic
	  sugar in the matrix multiplication example.
	  
	  * gcc-plugin/examples/matrix-mult.c (main): Use complex
	  expressions in
	  `pragma starpu register' and `pragma starpu unregister'.

2011-09-05 13:21  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Remove leftover debugging
	  statement.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): Remove
	  `debug_tree'
	  call.

2011-09-05 10:06  lcourtes

	* trunk/.gitignore, trunk/configure.ac,
	  trunk/gcc-plugin/src/Makefile.am, trunk/gcc-plugin/src/c-expr.y,
	  trunk/gcc-plugin/src/starpu-gcc-config.h.in,
	  trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/acquire-errors.c,
	  trunk/gcc-plugin/tests/register-errors.c,
	  trunk/gcc-plugin/tests/register.c,
	  trunk/gcc-plugin/tests/unregister-errors.c, trunk/m4/gcc.m4: gcc:
	  Support arbitrary C expressions in the `register' pragma.
	  
	  * configure.ac: Look for Bison.
	  
	  * gcc-plugin/src/Makefile.am (starpu_la_SOURCES): Add `c-expr.y'.
	  (AM_CPPFLAGS): Add `-DYYERROR_VERBOSE=1'.
	  
	  * gcc-plugin/src/c-expr.y: New file.
	  
	  * gcc-plugin/src/starpu-gcc-config.h.in
	  (HAVE_DECL_BUILD_ARRAY_REF): New
	  macro.
	  
	  * gcc-plugin/src/starpu.c (read_pragma_pointer_variable): Remove.
	  (read_pragma_expressions): New function.
	  (handle_pragma_register, handle_pragma_acquire,
	  handle_pragma_unregister): Use it and adjust accordingly.
	  
	  * gcc-plugin/tests/acquire-errors.c: Adjust error messages.
	  * gcc-plugin/tests/unregister-errors.c: Likewise.
	  * gcc-plugin/tests/register-errors.c: Likewise, and add tests
	  with
	  complex expressions.
	  * gcc-plugin/tests/register.c (bar): New function.
	  (main): Add tests with complex expressions.
	  
	  * m4/gcc.m4 (STARPU_GCC_PLUGIN_SUPPORT): Look for the declaration
	  of
	  `build_array_ref'.

2011-09-05 10:06  lcourtes

	* trunk/gcc-plugin/examples/Makefile.am: gcc: Use the OpenCL and
	  CUDA CPPFLAGS when building the examples.
	  
	  * gcc-plugin/examples/Makefile.am (AM_CPPFLAGS): New variable.

2011-07-22 09:54  lcourtes

	* trunk/.gitignore, trunk/configure.ac,
	  trunk/gcc-plugin/Makefile.am, trunk/gcc-plugin/examples,
	  trunk/gcc-plugin/examples/Makefile.am,
	  trunk/gcc-plugin/examples/matrix-mult.c: gcc: Add a matrix
	  multiplication example.
	  
	  * configure.ac: Produce `gcc-plugin/examples/Makefile'.
	  
	  * gcc-plugin/Makefile.am (SUBDIRS): Add `examples'.
	  
	  * gcc-plugin/examples/Makefile.am,
	  gcc-plugin/examples/matrix-mult.c:
	  New files.

2011-07-22 09:54  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/register-errors.c: gcc: Get rid of unused
	  variable warnings in `#pragma starpu register'.
	  
	  * gcc-plugin/src/starpu.c (read_pragma_pointer_variable): Mark
	  VAR as
	  used and read on success.
	  (handle_pragma_register): Likewise for COUNT_ARG.
	  
	  * gcc-plugin/tests/register-errors.c (main): Add test for unused
	  variable warnings.

2011-07-05 12:17  lcourtes

	* trunk/.gitignore, trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/lib-user.c,
	  trunk/gcc-plugin/tests/my-lib.c, trunk/gcc-plugin/tests/my-lib.h,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Fix support for
	  separate compilation.
	  
	  * gcc-plugin/src/starpu.c (handle_task_attribute): Don't build
	  FN's body
	  here; remove check for an already existing body.
	  (task_p, task_implementation_p): New functions.
	  (maybe_define_codelet): Remove.
	  (handle_pre_genericize): When FN is a task implementation, build
	  the
	  body, codelet, and codelet wrappers for its task, unless it
	  already
	  has a body. Raise a "must not have a body" error when FN is a
	  task.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add `lib-user.c'.
	  (EXTRA_DIST): Add `my-lib.h' and `my-lib.c'.
	  
	  * gcc-plugin/tests/lib-user.c, gcc-plugin/tests/my-lib.c,
	  gcc-plugin/tests/my-lib.h: New files.
	  
	  * gcc-plugin/tests/task-errors.c: Adjust error message.

2011-07-05 12:17  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Support dependencies in
	  `run-test'.
	  
	  * gcc-plugin/tests/run-test.in (compile/match): Look for
	  `dependencies'
	  in the `instructions' directive; recurse on all dependencies and
	  succeed when all of them succeeded.

2011-07-05 12:17  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Build tests with `-O2
	  -g'.
	  
	  * gcc-plugin/tests/run-test.in (%default-cflags): Add `-g -O2'.

2011-07-05 12:17  lcourtes

	* trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/acquire.c, trunk/gcc-plugin/tests/base.c,
	  trunk/gcc-plugin/tests/lib.h, trunk/gcc-plugin/tests/mocks.h,
	  trunk/gcc-plugin/tests/pointers.c,
	  trunk/gcc-plugin/tests/register-errors.c,
	  trunk/gcc-plugin/tests/register.c,
	  trunk/gcc-plugin/tests/unregister.c: gcc: Rename `tests/lib.h' to
	  `tests/mocks.h'.
	  
	  * gcc-plugin/tests/lib.h: Rename to...
	  * gcc-plugin/tests/mocks.h: ... this.
	  
	  * gcc-plugin/tests/Makefile.am (dist_noinst_HEADERS): Update.
	  
	  * gcc-plugin/tests/acquire.c, gcc-plugin/tests/base.c,
	  gcc-plugin/tests/pointers.c, gcc-plugin/tests/register.c,
	  gcc-plugin/tests/unregister.c: Update.
	  
	  * gcc-plugin/tests/register-errors.c: Don't include <lib.h>.

2011-07-04 10:40  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/base.c, trunk/gcc-plugin/tests/lib.h,
	  trunk/gcc-plugin/tests/shutdown-errors.c: gcc: Add support for
	  `#pragma starpu shutdown'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_shutdown): New function.
	  (register_pragmas): Register it.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add
	  `shutdown-errors.c'.
	  
	  * gcc-plugin/tests/base.c (main): Use `#pragma starpu shutdown'.
	  
	  * gcc-plugin/tests/lib.h (starpu_shutdown): New function.
	  
	  * gcc-plugin/tests/shutdown-errors.c: New file.

2011-07-04 10:40  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Fix typo.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_acquire): Pass "acquire"
	  as the
	  first argument to `read_pragma_pointer_variable'.

2011-07-04 10:39  lcourtes

	* trunk/.gitignore, trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am, trunk/gcc-plugin/tests/lib.h,
	  trunk/gcc-plugin/tests/unregister-errors.c,
	  trunk/gcc-plugin/tests/unregister.c: gcc: Add support for
	  `#pragma starpu unregister VAR'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_unregister): New
	  function.
	  (register_pragmas): Register it.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add `unregister.c'
	  and
	  `unregister-errors.c'.
	  
	  * gcc-plugin/tests/lib.h (struct data_unregister_arguments): New
	  struct.
	  (data_unregister_calls, expected_unregister_arguments): New
	  variables.
	  (starpu_data_unregister): New function.
	  
	  * gcc-plugin/tests/unregister-errors.c,
	  gcc-plugin/tests/unregister.c:
	  New files.

2011-07-01 13:34  lcourtes

	* trunk/gcc-plugin/tests/run-test.in: gcc: Compile test programs
	  with $STARPU_CUDA_CPPFLAGS.
	  
	  * gcc-plugin/tests/run-test.in (%cuda-cppflags): New variable.
	  (%default-cflags): Use it.

2011-07-01 12:44  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/include/starpu_cuda.h,
	  trunk/include/starpu_data_interfaces.h,
	  trunk/include/starpu_task.h: Add
	  `STARPU_DONT_INCLUDE_CUDA_HEADERS' to stay away from the Evil
	  Empire.
	  
	  * include/starpu_cuda.h: Don't do anything when
	  STARPU_DONT_INCLUDE_CUDA_HEADERS is defined.
	  
	  * include/starpu_data_interfaces.h: Don't include
	  <cuda_runtime.h> when
	  STARPU_DONT_INCLUDE_CUDA_HEADERS is defined; define
	  `cudaStream_t' in
	  that case.
	  
	  * include/starpu_task.h: Don't include <cuda.h> when
	  STARPU_DONT_INCLUDE_CUDA_HEADERS is defined.
	  
	  * gcc-plugin/src/starpu.c (STARPU_DONT_INCLUDE_CUDA_HEADERS):
	  Define.

2011-07-01 12:01  lcourtes

	* trunk/.gitignore, trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/acquire-errors.c,
	  trunk/gcc-plugin/tests/acquire.c, trunk/gcc-plugin/tests/lib.h:
	  gcc: Add support for `#pragma starpu acquire VAR'.
	  
	  * gcc-plugin/src/starpu.c (read_pragma_pointer_variable): New
	  function.
	  (handle_pragma_register): Use it.
	  (handle_pragma_acquire): New function.
	  (register_pragmas): Register it.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add `acquire.c' and
	  `acquire-errors.c'.
	  
	  * gcc-plugin/tests/acquire-errors.c, gcc-plugin/tests/acquire.c:
	  New
	  files.
	  
	  * gcc-plugin/tests/lib.h (struct data_acquire_arguments): New
	  struct.
	  (data_acquire_calls, expected_acquire_arguments): New variables.
	  (starpu_data_acquire): New function.

2011-06-30 14:11  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/base.c, trunk/gcc-plugin/tests/lib.h,
	  trunk/gcc-plugin/tests/no-initialize.c,
	  trunk/gcc-plugin/tests/pointer-tasks.c,
	  trunk/gcc-plugin/tests/pointers.c,
	  trunk/gcc-plugin/tests/register-errors.c,
	  trunk/gcc-plugin/tests/register.c,
	  trunk/gcc-plugin/tests/scalar-tasks.c: gcc: Add rudimentary
	  `#pragma starpu initialize'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_initialize): New
	  function.
	  (register_pragmas): Register the `initialize' pragma.
	  (lower_starpu): Emit a warning when FNDECL is the main function
	  and
	  does not call `starpu_init'.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add
	  `no-initialize.c'.
	  
	  * gcc-plugin/tests/no-initialize.c: New file.
	  
	  * gcc-plugin/tests/lib.h (initialized): New variable.
	  (starpu_init): New function.
	  
	  * gcc-plugin/tests/base.c (main): Add `initialize' pragma; check
	  INITIALIZED.
	  
	  * gcc-plugin/tests/pointer-tasks.c, gcc-plugin/tests/pointers.c,
	  gcc-plugin/tests/register-errors.c, gcc-plugin/tests/register.c,
	  gcc-plugin/tests/scalar-tasks.c: Add `initialize' pragma.

2011-06-30 14:11  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/register-errors.c: gcc: Improve error
	  handling for the `register' pragma.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): Exit in error
	  cases
	  where there's nothing we can do. This avoids premature exits
	  ("confused
	  by earlier errors, bailing out").
	  
	  * gcc-plugin/tests/register-errors.c (main): Add case where COUNT
	  is a
	  identifier that does not correspond to a variable.

2011-06-30 09:38  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/pointer-tasks.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Build the body of
	  tasks instead of fiddling with the call site.
	  
	  * gcc-plugin/src/starpu.c
	  (handle_task_attribute)[build_parameter]: New
	  function. Error out when FN has a body. Build FN's parameter list
	  and body, using `build_task_body'. Remove initialization of
	  INSERT_TASK_FN and DATA_LOOKUP_FN.
	  (build_pointer_lookup): Change to operate on trees.
	  (build_task_submission): Remove.
	  (build_task_body): New function, which keeps the core of
	  `build_task_submission'.
	  (lower_starpu): Remove call to `build_task_submission' and
	  `rebuild_cgraph_edges'.
	  
	  * gcc-plugin/tests/pointer-tasks.c (main): Call `my_pointer_task'
	  with
	  integers of a different type.
	  
	  * gcc-plugin/tests/task-errors.c (my_task_with_a_body): New
	  function.

2011-06-30 09:38  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Introduce `list_remove'.
	  
	  * gcc-plugin/src/starpu.c (void_type_p, list_remove): New
	  function.
	  (build_codelet_wrapper_definition)[not_void_type_p]: Remove.
	  Use `list_remove' and `void_type_p' instead of `filter' and
	  `not_void_type_p'.

2011-06-30 09:38  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Discard erroneous
	  `task' and `task_implementation' decls.
	  
	  * gcc-plugin/src/starpu.c (handle_task_attribute): Get rid of the
	  attribute upon error.
	  (handle_task_implementation_attribute): Likewise. Always mark FN
	  as
	  used.
	  (task_pointer_parameter_types): Remove extra quotes in warning
	  message.
	  
	  * gcc-plugin/tests/task-errors.c (bar): Add `unused' attribute.
	  (my_task_almost, my_task_wrong_task_arg): New definitions.
	  (my_task_nowhere): Move warning from the declaration to the
	  definition.

2011-06-29 12:50  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/register-errors.c,
	  trunk/gcc-plugin/tests/register.c: gcc: Allow the COUNT argument
	  of the `register' pragma to be a variable name.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): Allow the
	  COUNT
	  argument to be a variable name.
	  
	  * gcc-plugin/tests/register-errors.c (main): Add test with
	  X_SIZE.
	  
	  * gcc-plugin/tests/register.c (main): Add test with Y_SIZE.

2011-06-29 12:50  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/task-errors.c: gcc: Gracefully handle
	  errors with `task' and `task_implementation'.
	  
	  * gcc-plugin/src/starpu.c (handle_task_attribute,
	  handle_task_implementation_attribute): Turn assertions into
	  graceful
	  error handling.
	  (task_implementation_where): Warn once when TASK_IMPL has an
	  unsupported target.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add `task-errors.c'.
	  
	  * gcc-plugin/tests/task-errors.c: New file.

2011-06-29 12:50  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/register-errors.c,
	  trunk/gcc-plugin/tests/register-junk.c,
	  trunk/gcc-plugin/tests/register-size-mismatch.c,
	  trunk/gcc-plugin/tests/register-unbound.c,
	  trunk/gcc-plugin/tests/register-unterminated.c,
	  trunk/gcc-plugin/tests/register.c,
	  trunk/gcc-plugin/tests/run-test.in: gcc: Improve error handling
	  and tests for `#pragma starpu register'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): Return after
	  `error_at' calls. Change the assertion on the type of VAR into an
	  error.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Remove
	  `register-junk.c',
	  `register-size-mismatch.c', `register-unbound.c', and
	  `register-unterminated.c'. Add `register-errors.c'.
	  
	  * gcc-plugin/tests/register-errors.c: New file.
	  
	  * gcc-plugin/tests/register.c (foo): New function.
	  (main): Use it; increment the expected DATA_REGISTER_CALLS value.
	  
	  * gcc-plugin/tests/run-test.in (%default-cflags): Remove `-dH',
	  which
	  caused GCC to stop upon the first error.

2011-06-28 09:48  lcourtes

	* trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/register-junk.c,
	  trunk/gcc-plugin/tests/register-size-mismatch.c,
	  trunk/gcc-plugin/tests/register-unbound.c,
	  trunk/gcc-plugin/tests/register-unterminated.c: gcc: Add
	  warning/error tests for `#pragma starpu register'.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): Add
	  `register-junk.c',
	  `register-size-mismatch.c', `register-unbound.c', and
	  `register-unterminated.c'.
	  
	  * gcc-plugin/tests/register-junk.c,
	  gcc-plugin/tests/register-size-mismatch.c,
	  gcc-plugin/tests/register-unbound.c,
	  gcc-plugin/tests/register-unterminated.c: New files.

2011-06-28 09:48  lcourtes

	* trunk/.gitignore, trunk/configure.ac, trunk/gcc-plugin/README,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/pointer-tasks.c,
	  trunk/gcc-plugin/tests/register.c,
	  trunk/gcc-plugin/tests/run-test.in,
	  trunk/gcc-plugin/tests/scalar-tasks.c: gcc: Add test suite
	  framework to check for compilation warnings, errors, etc.
	  
	  * configure.ac: Check for Guile. Output
	  `gcc-plugin/tests/run-test' and
	  make it executable.
	  
	  * gcc-plugin/tests/Makefile.am (gcc_tests): New variable.
	  (check_PROGRAMS): Remove.
	  (CLEANFILES): Add executables.
	  (TESTS_ENVIRONMENT)[HAVE_GUILE]: New variable.
	  (check-hook)[!HAVE_GUILE]: New target.
	  
	  * gcc-plugin/tests/run-test.in: New file.
	  
	  * gcc-plugin/tests/pointer-tasks.c,
	  gcc-plugin/tests/scalar-tasks.c: Add
	  `instructions' directive.
	  
	  * gcc-plugin/tests/register.c (main): Add `note' directive.

2011-06-28 09:48  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Get rid of "used but never
	  defined" warnings for file-scope tasks.
	  
	  * gcc-plugin/src/starpu.c (handle_task_attribute): Add a dummy
	  body to
	  FN when it has file scope.

2011-06-28 09:48  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/pointer-tasks.c,
	  trunk/gcc-plugin/tests/register.c: gcc: Expand macros in `#pragma
	  starpu register'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): Use
	  `pragma_lex'
	  instead of cpplib primitives.
	  (register_pragmas): Register `handle_pragma_register' with macro
	  expansion.
	  
	  * gcc-plugin/tests/pointer-tasks.c (main): Use the `COUNT' macro
	  when
	  registering POINTER_ARG2.
	  
	  * gcc-plugin/tests/register.c (main): Uncomment test that uses
	  macros as
	  arguments.

2011-06-24 14:05  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Nitpick.
	  
	  * gcc-plugin/src/starpu.c (build_pointer_lookup): Use
	  NULL_POINTER_NODE
	  instead of building a new one.

2011-06-24 14:05  lcourtes

	* trunk/gcc-plugin/tests/pointer-tasks.c: gcc: Use `#pragma starpu
	  register' in the `pointer-tasks' test.
	  
	  * gcc-plugin/tests/pointer-tasks.c: Use `#pragma starpu register'
	  instead of calling `starpu_vector_data_register'.

2011-06-24 14:05  lcourtes

	* trunk/.gitignore, trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am, trunk/gcc-plugin/tests/lib.h,
	  trunk/gcc-plugin/tests/register.c: gcc: Add support for `#pragma
	  starpu register VAR [COUNT]'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_register): New function.
	  (register_pragmas): Register the `register' pragma.
	  
	  * gcc-plugin/tests/Makefile.am (check_PROGRAMS): Add `register'.
	  
	  * gcc-plugin/tests/lib.h (struct data_register_arguments): New
	  struct.
	  (data_register_calls, expected_register_arguments): New
	  variables.
	  (starpu_vector_data_register): New function.
	  
	  * gcc-plugin/tests/register.c: New file.

2011-06-23 14:34  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/pointer-tasks.c,
	  trunk/gcc-plugin/tests/pointers.c: gcc: Determine the data mode
	  based on the constness of the pointed-to type.
	  
	  * gcc-plugin/src/starpu.c (build_task_submission): For pointers,
	  determine the mode based on the constness of the pointed-to type.
	  
	  * gcc-plugin/tests/pointer-tasks.c (my_pointer_task): Mark `x' as
	  `const int *'.
	  (pointer_arg1): Mark as `const'.
	  
	  * gcc-plugin/tests/pointers.c (my_pointer_task): Mark `x' as
	  `const int *'.
	  (my_mixed_task): Mark `y' as `const long long *'.
	  (main): Update EXPECTED_POINTER_TASK and EXPECTED_MIXED_TASK
	  accordingly.

2011-06-23 14:34  lcourtes

	* trunk/gcc-plugin/tests/lib.h: gcc: Get rid of GCC warnings in the
	  test suite.
	  
	  * gcc-plugin/tests/lib.h (struct insert_task_argument)[pointer]:
	  Mark as
	  `const void *'.

2011-06-23 14:34  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/pointer-tasks.c: gcc: Fix codelet wrappers
	  to handle interleaved scalar/pointer arguments.
	  
	  * gcc-plugin/src/starpu.c (map): New function.
	  (task_scalar_parameter_types): Remove.
	  (build_codelet_wrapper_definition)[not_void_type_p]: New
	  function.
	  [build_var_chain]: Remove.
	  [build_local_var]: New function.
	  Set VARS to contain the variables in the same order as the
	  arguments.
	  
	  * gcc-plugin/tests/pointer-tasks.c (my_pointer_task): Add scalar
	  arguments `a' and `b'.
	  (my_pointer_task_cpu): Check them.
	  (main): Update `my_pointer_task' call accordingly.

2011-06-23 14:34  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Don't introduce local
	  variables for pointer arguments.
	  
	  * gcc-plugin/src/starpu.c (build_task_submission)[local_vars]:
	  Introduce
	  a variable only when TYPE is a pointer type. Iterate on the types
	  of
	  TASK_DECL; consider the pointerness of these types, not that of
	  ARG.

2011-06-22 13:53  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Remove printfs that had
	  become annoying.
	  
	  * gcc-plugin/src/starpu.c (lower_starpu): Remove most of the
	  printfs.

2011-06-22 13:53  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/pointer-tasks.c: gcc: Have codelet
	  wrappers handle pointer arguments.
	  
	  * gcc-plugin/src/starpu.c (array_ref): New function.
	  (build_codelet_wrapper_definition)[build_scalar_var_chain]:
	  Rename
	  to...
	  [build_var_chain]: ... this. Add `type_list' and `seed'
	  parameters.
	  [build_body]: Handle pointer arguments.
	  Change VARS to hold the complete list of scalar and pointer
	  arguments.
	  
	  * gcc-plugin/tests/Makefile.am (check_PROGRAMS): Add
	  `pointer-tasks'.
	  (pointer_tasks_LDADD): New variable.
	  
	  * gcc-plugin/tests/pointer-tasks.c: New file.

2011-06-22 13:53  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/lib.h: gcc:
	  Convert pointers to handles when submitting pointer tasks.
	  
	  * gcc-plugin/src/starpu.c (data_lookup_fn): New variable.
	  (handle_task_attribute)[LOOKUP_STARPU_FUNCTION]: New macro. Use
	  it.
	  Initialize `data_lookup_fn'.
	  (build_pointer_lookup): New function.
	  (build_task_submission): Use it.
	  
	  * gcc-plugin/tests/lib.h (starpu_insert_task): For STARPU_[RW]*,
	  make
	  sure we have a handle, not a raw data pointer.
	  (pointer_as_int, int_as_pointer, dummy_pointer_to_handle,
	  dummy_handle_to_pointer): New macros.
	  (starpu_data_lookup): Alias for `dummy_pointer_to_handle'.
	  (starpu_handle_get_local_ptr): Alias for
	  `dummy_handle_to_pointer'.

2011-06-22 13:53  lcourtes

	* trunk/gcc-plugin/tests/pointers.c: gcc: Test submission of a
	  mixed pointer/scalar task.
	  
	  * gcc-plugin/tests/pointers.c (my_mixed_task, my_mixed_task_cpu,
	  my_mixed_task_opencl): New functions.
	  (main): Use it.

2011-06-15 10:20  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/base.c:
	  gcc: Add note about implicit integer type conversion in task
	  submissions.
	  
	  * gcc-plugin/src/starpu.c (build_task_submission): Add comment
	  about
	  things to fix.
	  
	  * gcc-plugin/tests/base.c (main): Add test with `y_as_long_int',
	  along
	  with comment explaining what to fix.

2011-06-15 10:20  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/base.c:
	  gcc: Handle task calls with non-addressable variables.
	  
	  * gcc-plugin/src/starpu.c (build_task_submission)[local_vars]:
	  Introduce
	  local variables for anything that is not addressable; use it.
	  Mark the
	  new variables as addressable.
	  
	  * gcc-plugin/tests/base.c (my_scalar_task): Change type of `y' to
	  `char'.
	  (main): Update accordingly.

2011-06-15 10:20  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Convert constant arguments to
	  the corresponding formal parameter type.
	  
	  * gcc-plugin/src/starpu.c (build_task_submission)[local_vars]:
	  Use the
	  TASK_DECL's formal parameter types, not the actual argument
	  types.
	  Convert the new variables initial value to the formal parameter's
	  type.

2011-06-15 10:20  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/base.c,
	  trunk/gcc-plugin/tests/scalar-tasks.c: gcc: Handle task calls
	  with constants.
	  
	  * gcc-plugin/src/starpu.c (build_task_submission): Return a
	  `gimple_seq'
	  instead of a `gimple'; update caller.
	  [local_vars]: New nested function. Introduce local variables for
	  constant arguments, and pass them to INSERT_TASK_FN.
	  
	  * gcc-plugin/tests/base.c (my_scalar_task): Add `z' parameter.
	  (my_scalar_task_cpu, my_scalar_task_opencl): Update accordingly.
	  (main): Update accordingly. Add calls to `my_scalar_task' with
	  constant arguments.
	  
	  * gcc-plugin/tests/scalar-tasks.c (main): Call `my_scalar_task'
	  with
	  constants.

2011-05-06 14:24  lcourtes

	* trunk/gcc-plugin/tests/lib.h: gcc: Update `starpu_insert_task'
	  prototype.
	  
	  * gcc-plugin/tests/lib.h (starpu_insert_task): Return `int'.

2011-04-28 12:30  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am, trunk/gcc-plugin/tests/lib.h,
	  trunk/gcc-plugin/tests/pointers.c: gcc: In task submission, pass
	  raw pointers to `starpu_insert_task'.
	  
	  * gcc-plugin/src/starpu.c (build_task_submission): Pass raw
	  pointers.
	  
	  * gcc-plugin/tests/Makefile.am (check_PROGRAMS): Add `pointers'.
	  
	  * gcc-plugin/tests/lib.h (starpu_insert_task): Check pointer
	  arguments.
	  (starpu_data_lookup, starpu_handle_get_local_ptr): New functions.
	  
	  * gcc-plugin/tests/pointers.c: New file.

2011-04-28 12:30  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Initialize the `nbuffers'
	  field of codelets.
	  
	  * gcc-plugin/src/starpu.c (task_pointer_parameter_types): New
	  function.
	  (build_codelet_initializer)[pointer_arg_count]: New function.
	  Initialize the `nbuffers' field.

2011-04-28 12:30  lcourtes

	* trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/base.c, trunk/gcc-plugin/tests/lib.h: gcc:
	  Factorize the test stubs into <lib.h>.
	  
	  * gcc-plugin/tests/base.c (tasks_submitted,
	  expected_insert_task_arguments, starpu_insert_task,
	  starpu_unpack_cl_args): Move to...
	  * gcc-plugin/tests/lib.h: ... here. New file.
	  
	  * gcc-plugin/tests/Makefile.am (dist_noinst_HEADERS,
	  AM_CPPFLAGS): New
	  variables.

2011-04-28 12:30  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Pass field initializers to
	  the codelet constructor in the right order.
	  
	  * gcc-plugin/src/starpu.c (build_constructor_from_unsorted_list):
	  New
	  function.
	  (build_codelet_initializer): Use it. Uncomment the `cuda_func'
	  initializer.

2011-04-14 13:55  lcourtes

	* trunk/.dir-locals.el, trunk/gcc-plugin/.dir-locals.el: Tell Emacs
	  to behave.

2011-04-11 08:50  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/scalar-tasks.c: gcc: Add `#pragma starpu
	  wait'.
	  
	  * gcc-plugin/src/starpu.c (handle_pragma_wait): New function.
	  (register_pragmas): Register `wait'.
	  
	  * gcc-plugin/tests/scalar-tasks.c (main): Use `#pragma starpu
	  wait'
	  instead of `starpu_task_wait_for_all ()'.

2011-04-11 08:50  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Cosmetic changes.
	  
	  * gcc-plugin/src/starpu.c (build_codelet_wrapper_type): Use
	  PTR_TYPE_NODE instead of building a similar node.
	  (build_codelet_wrapper_definition)[build_body]: Remove generated
	  debugging statements. Mark calls as side-effecting.

2011-04-11 08:50  lcourtes

	* trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/scalar-tasks.c: gcc: Fix parameter
	  declarations in task implementation wrappers.
	  
	  * gcc-plugin/src/starpu.c
	  (build_codelet_wrapper_definition)[build_parameters]: Add
	  `wrapper_decl' parameter. Set the `DECL_ARG_TYPE' of each
	  parameter.
	  Mark them as used. Return a chained PARM_DECL, not a TREE_LIST.
	  Set the `DECL_CONTEXT' of RESULT.
	  
	  * gcc-plugin/tests/scalar-tasks.c: New file.
	  
	  * gcc-plugin/tests/Makefile.am (check_PROGRAMS): Add
	  `scalar-tasks'.
	  (scalar_tasks_LDADD): New variable.

2011-04-07 16:16  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Use `size_in_bytes' instead
	  of our own `sizeof_type'.
	  
	  * gcc-plugin/src/starpu.c (sizeof_type): Remove.
	  (build_task_submission): Use `size_in_bytes' instead of
	  `sizeof_type'.

2011-03-30 15:39  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Have the codelet structure
	  inherit the visibility of the task.
	  
	  * gcc-plugin/src/starpu.c (define_codelet): Have CL_DEF inherit
	  TREE_PUBLIC from TASK_DECL.

2011-03-30 15:39  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Cleanup the codelet wrapper
	  generation.
	  
	  * gcc-plugin/src/starpu.c (build_codelet_wrapper_identifier):
	  Return a
	  private identifier.
	  (build_codelet_wrapper_definition): Move the body type
	  initialization
	  in `build_body'. Call `rest_of_decl_compilation', to be on the
	  safe
	  side. Restore CFUN to its previous value.

2011-03-30 15:39  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Prevent codelet wrappers from
	  being removed.
	  
	  * gcc-plugin/src/starpu.c (build_codelet_wrapper_definition):
	  Have DECL
	  inherit TREE_PUBLIC from TASK_IMPL. Mark it as needed so that it
	  doesn't vanish.

2011-03-29 16:20  lcourtes

	* trunk/gcc-plugin/src/starpu.c, trunk/gcc-plugin/tests/base.c:
	  gcc: Unpack `cl_args' in the body of task implementation
	  wrappers.
	  
	  * gcc-plugin/src/starpu.c
	  (task_implementation_wrapper_attribute_name):
	  New variable.
	  (filter, for_each, task_implementation_list,
	  task_scalar_parameter_types, task_implementation_wrapper,
	  build_codelet_wrapper_identifier): New functions.
	  (build_codelet_wrapper_definition): Build calls to
	  `starpu_unpack_cl_args' and TASK_IMPL.
	  (define_codelet_wrappers): New function.
	  (define_codelet): Use it.
	  (build_codelet_initializer): Take the address of the wrapper of
	  IMPL_DECL, not that of IMPL_DECL. Use `task_implementation_list'
	  instead of custom code.
	  
	  * gcc-plugin/tests/base.c (struct insert_task_argument): New
	  type.
	  (expected_insert_task_arguments): New variable.
	  (starpu_insert_task): Check whether the arguments match
	  EXPECTED_INSERT_TASK_ARGUMENTS.
	  (starpu_unpack_cl_args): New function.
	  (main): Initialize EXPECTED_INSERT_TASK_ARGUMENTS.

2011-03-29 16:19  lcourtes

	* trunk/.gitignore, trunk/configure.ac,
	  trunk/gcc-plugin/src/starpu-gcc-config.h.in,
	  trunk/gcc-plugin/src/starpu.c, trunk/m4/gcc.m4: gcc: Check for
	  specific GCC functions.
	  
	  * m4/gcc.m4 (_STARPU_WITH_GCC_PLUGIN_API): New macro.
	  (STARPU_GCC_PLUGIN_SUPPORT): Use it. Check for the declarations
	  of
	  `build_call_expr_loc_vec' and `build_call_expr_loc_array'.
	  
	  * gcc-plugin/src/starpu-gcc-config.h.in: New file.
	  
	  * configure.ac: Output <starpu-gcc-config.h>.
	  
	  * gcc-plugin/src/starpu.c: Include <starpu-gcc-config.h>.
	  (build_call_expr_loc_array)[!HAVE_DECL_BUILD_CALL_EXPR_LOC_ARRAY]:
	  New
	  function.
	  (build_call_expr_loc_vec)[!HAVE_DECL_BUILD_CALL_EXPR_LOC_VEC]:
	  New
	  function.

2011-03-29 16:19  lcourtes

	* trunk/gcc-plugin/src/starpu.c: gcc: Pass the cl_arg size in
	  bytes, not bits.
	  
	  * gcc-plugin/src/starpu.c (sizeof_type): New function.
	  (build_task_submission): Use it.

2011-03-22 17:14  lcourtes

	* trunk/Makefile.am, trunk/configure.ac, trunk/gcc-plugin,
	  trunk/gcc-plugin/COPYING, trunk/gcc-plugin/Makefile.am,
	  trunk/gcc-plugin/README, trunk/gcc-plugin/src,
	  trunk/gcc-plugin/src/Makefile.am, trunk/gcc-plugin/src/starpu.c,
	  trunk/gcc-plugin/tests, trunk/gcc-plugin/tests/Makefile.am,
	  trunk/gcc-plugin/tests/base.c, trunk/m4/gcc.m4: Add preliminary
	  GCC plug-in.
	  
	  * configure.ac: Add `--enable-gcc-extensions'.
	  
	  * m4/gcc.m4: New file.
	  
	  * Makefile.am (SUBDIRS)[BUILD_GCC_PLUGIN]: Add `gcc-plugin'.
	  
	  * gcc-plugin: New directory.

