This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Graphite-OpenCL patches


Hi,

This is the patches for the Graphite-OpenCL code described in our GCC Summit
paper.  The largest patch, 'graphite-opencl.patch' is the combined patch
relative to the current Graphite branch.  It is split into three separate
chunks as follows:

1. graphite-opencl-1.patch is just trivial code motion to make some of the
graphite functions from graphite-clast-to-gimple.c exposed for the new files.

2. graphite-opencl-2.patch exports one more function from
graphite-dependences.c and adds a new function that conservatively estimates
upper subscript bound from the loop iteration domain.

3. graphite-opencl-3.patch adds new files with the implementation and makes
all necessary adjustments to Makefile.in, common.opt and other files.

The combined patch and the broken-out parts are attached to this message.

Sebastian, Tobias: can the changes in these patches be incorporated into the
graphite branch in some form?

Some implementation details and performance results can be found in our paper,
available on the GCC Wiki ( http://gcc.gnu.org/wiki/summit2010 ).

I'd like to compliment Alexey (Cc'ed) for the hard work in producing these
patches.

Happy holidays!

ChangeLogs:

[1]
2010-12-24  Alexey Kravets  <kayrick@ispras.ru>

        * graphite-clast-to-gimple.c (struct clast_name_index): Move
        definition to graphite-clast-to-gimple.h.
        (clast_name_to_index): Ditto.
        (clast_name_index_elt_info): Ditto.
        (eq_clast_name_indexes): Ditto.
        (save_clast_name_index): Export.
        (clast_name_to_gcc): Ditto.
        (clast_to_gcc_expression): Ditto.
        (gcc_type_for_clast_expr): Ditto.
        (graphite_create_new_guard): Ditto.
        (gcc_type_for_iv_of_clast_loop): Ditto.
        (graphite_create_new_loop): Ditto.
        (build_iv_mapping): Ditto.
        (graphite_create_new_loop_guard): Ditto.
        (debug_clast_name_index): New.
        (debug_clast_name_indices): New debug function.

[2]
2010-12-24  Alexander Monakov  <amonakov@ispras.ru>

        * graphite-dependences.c (graphite_outer_subscript_bound): New.
        (graphite_carried_dependence_level_k): Export.
        * graphite-dependences.h (graphite_outer_subscript_bound): Declare.
        (graphite_carried_dependence_level_k): Ditto.

[3]
2010-12-24  Alexey Kravets  <kayrick@ispras.ru>

       * Makefile.in (OBJS-common): Add graphite-opencl-codegen.o,
        graphite-opencl-meta-clast.o and graphite-opencl.o.
        (graphite-opencl-codegen.o): New.
        (graphite-opencl-meta-clast.o): New.
        (graphite-opencl.o): New.
        (GTFILES): Add graphite-opencl.c.
        * common.opt (fgraphite-opencl): New.
        (fgraphite-opencl-cpu): New.
        (fgraphite-opencl-ignore-depth-heuristic): New.
        (fgraphite-opencl-ignore-mem-heuristic): New.
        (fgraphite-opencl-ignore-dep): New.
        (fgraphite-opencl-ignore-types): New.
        (fgraphite-opencl-depth-base): New.
        (fgraphite-opencl-debug): New.
        * graphite-opencl-codegen.c: New file.
        * graphite-opencl-meta-clast.c: New file.
        * graphite-opencl.c: New file.
        * graphite-opencl.h: New file.
        * graphite.c (graphite_transform_loops): Call graphite_opencl_init and
        graphite_opencl_finalize.
        * tree-ssa-loop.c (gate_graphite_transforms): Handle
        flag_graphite_opencl.
        * graphite-clast-to-gimple.c (gloog): Call opencl_transform_clast.
        * dbgcnt.def (opencl_scop_cnt): New counter.

Attachment: graphite-opencl.patch.gz
Description: Binary data

Attachment: graphite-opencl-1.patch.gz
Description: Binary data

Attachment: graphite-opencl-2.patch.gz
Description: Binary data

Attachment: graphite-opencl-3.patch.gz
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]