Skip to content
Commits on Feb 8, 2012
  1. Disabling PRE and LIM

    committed Feb 6, 2012
    This is a HACK at the moment. We really do not want to introduce additional
    memory dependences, before running graphite. After graphite these passes are
    probably very helpful, but before they block a lot of transformations. We need
    to find a better solution here.
  2. Derive the size of the induction variables directly from the clast

    committed Jan 13, 2012
    With this we do not need the LST (loop structure tree) to derive the types of
    the induction variables. Also, we do not derive them from the first statement in
    the loop body (an arbitrary choice), but consider all statements. This is not
    yet entirely correct, but better than we were before and as good as we can get
    with the current implementation of CLooG.
    Tobias Grosser  <>
    	* graphite-clast-to-gimple.c (compute_bounds_for_level): Removed.
    	(clast_get_body_of_loop): Removed.
    	(compute_bounds_for_loop): New.
    	(graphite_create_new_loop): Use compute_bounds_for_loop instead of
    	compute_bounds_for_level and clast_get_body_of_loop.
    	(set_cloog_options): Ask CLooG to preserve the iteration domains in
    	the clast.
  3. Add isl scheduling optimizer

    committed Jan 12, 2012
    The isl scheduling optimizer implements the scheduling algorithm first developed
    in Pluto [1]. Pluto has shown significant speedups and is nowadays even
    implemented in the IBM XL-C compiler. The implementation of this pass is a first
    draft and was copied largely from Polly. We need still to adapt the code to the
    gcc coding style and we need to tune the isl scheduler. At the moment we get
    reasonable compile times (at most 2x-3x slowdown) and first speedups. We now
    need to tune the compile time and start to investigate which optimizations and
    heuristics need to be tuned in our reimplementation.
    Tobias Grosser  <>
  4. Use isl data structures to create CLooG input

    committed Jan 10, 2012
    We now use only isl functions throughout the main code path.
    We need PPL at the moment still for the interchange cost function and the
    openscop import/export. Fixing the interchange cost function should not be
    too difficult, openscop may eventually be removed and readded when needed.
    After this a large amount of code can be removed.
    Tobias Grosser  <>
Commits on Feb 6, 2012
  1. @sebpop

    Disable loop flattening

    sebpop committed with Aug 15, 2011
    Sebastian Pop <>
  2. Use isl for dependency analysis

    committed Jan 13, 2012
    Sebastian Pop  <>
    Tobias Grosser  <>
  3. @sebpop

    Implement interchange with isl

    sebpop committed with Aug 13, 2011
    The cost function is still implemented in PPL.
    Sebastian Pop  <>
    Tobias Grosser  <>
  4. @sebpop

    Implement strip-mine with isl

    sebpop committed with Aug 12, 2011
    Sebastian Pop  <>
    Tobias Grosser  <>
  5. @sebpop

    Construct the isl based pdr->accesses and pdr->extent

    sebpop committed with Aug 10, 2011
    Sebastian Pop  <>
    Tobias Grosser  <>
  6. Construct the isl based pbb->schedule

    committed Jan 12, 2012
    Sebastian Pop  <>
    Tobias Grosser  <>
  7. Construct the isl based pbb->domain

    committed Jan 11, 2012
    Sebastian Pop  <>
    Tobias Grosser  <>
  8. Construct the isl based scop->context

    committed Jan 13, 2012
    Sebastian Pop  <>
    Tobias Grosser  <>
  9. Set isl to abort on error

    committed Jan 13, 2012
    Tobias Grosser  <>
  10. Allocate an isl_ctx

    committed Jan 13, 2012
      Sebastian Pop  <>
      Tobias Grosser  <>
Commits on Jan 13, 2012
  1. Add isl data structures

    committed Jan 13, 2012
  2. @sebpop


    sebpop committed with Aug 3, 2011
    The attribute was only used with the old cloog-ppl.
    Sebastian Pop <>
    	* graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
    	new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
  3. Handle clast_expr_name properly

    committed Jan 11, 2012
    CLooG 0.16.0 introduced clast_expr_name, which allows a name to appear anywhere
    in an expression. Graphite did not yet support this. Without this patch Graphite
    will fail, as soon as CLooG generates a clast_expr_name at a place which is not
    a clast_expr_term->var.
    Tobias Grosser <>
    	* graphite-clast-to-gimple.c (clast_name_to_index,
    	clast_name_to_lb_ub, clast_name_to_gcc): Change types.
    	(clast_to_gcc_expression): Add clast_expr_name as a new
    	case. Do not assume a clast_expr_term points always to a
    	(type_for_clast_term): Do not assume a clast_expr_term points always to
    	a clast_expr_name.
    	(type_for_clast_name): New.
    	(type_for_clast_expr): Add clast_expr_name as a new case.
  4. Move to new Cloog interface.

    committed Aug 9, 2011
    The new cloog interface is a lot simpler and cleaner. It was especifically
    introduced to use Cloog as a library. As the old interface may be removed
    anytime, it is time to switch to the new one. This also simplifies the
    graphite code significantly.
    Tobias Grosser <>
      * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
      of the string, no just a reference.
      (clast_name_index): Add a new field, that specifies if we need to free the
      (free_clast_name_index): If necessary, free the name string.
      (clast_name_index_elt_info): Calculate the hash based on the string content,
      not the memory location it is stored in.
      (clast_name_to_level): Specify that we do not need to free the name.
      (clast_name_to_index): Dito.
      (clast_name_to_lb_ub): Dito.
      (eq_clast_name_indexes): Compare the strings, not their base pointers.
      (free_scattering): Removed.
      (initialize_cloog_names): Renamed to add_names_to_union_domain().
      (add_names_to_union_domain): Changed to work on a union_domain, instead of a
      CloogNames structure.
      (build_cloog_prog): Removed.
      (build_cloog_union_domain): New.
      (generate_cloog_input): New.
      (scop_to_clast): Use CloogInput instead of CloogProgram.
      (print_generated_program): Adapt to new scop_to_clast() and do not
      print the CloogProgram any more.
      (create_params_index): Removed, functionality integrated in
      (gloog): Adapt to new scop_to_clast().
      * graphite-clast-to-gimple.h (scop_to_clast): Remove.
  5. Remove code that supported legacy CLooG.

    committed Jul 21, 2011
    Get rid of a lot of old code.
    2011-07-21  Tobias Grosser  <>
    	* configure: Regenerated.
    	* config/cloog.m4: Do not define CLOOG_ORG
    and in gcc/
    2011-07-21  Tobias Grosser  <>
    	* (graphite-clast-to-gimple.o, graphite-cloog-util.o):
    	Remove graphite-cloog-util.h.
    	* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
    	build_iv_mapping, translate_clast_user, translate_clast,
    	free_scattering, initialize_cloog_names, build_cloog_prog,
    	create_params_index): Do not use old compatibility functions.
    	(clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
    	* graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
    	compatibility functions.
    	(new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
    	* graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
    	* graphite.c (graphite.c): Do not call outdated cloog_initialize() and
    	* graphite-cloog-compat.h: Remove.
  6. Require cloog 0.17.0

    committed Jul 21, 2011
    We switch right ahead to the most recent version of CLooG. This
    version is compatible with the most recent version of isl, which
    is the isl version that will be used in the next versions of Graphite.
    Tobias Grosser  <>
    	* configure: Regenerated.
    	* Require cloog isl 0.17.0
  7. Make CLooG isl the only supported CLooG version.

    committed Jul 21, 2011
    CLooG ppl is outdated and unmaintained. CLooG isl is actively maintained and
    provides several features that allow us to fix remaining Graphite bugs.
    2011-07-21  Tobias Grosser  <>
    	* configure: Regenerated.
    	* config/cloog.m4: Remove support for CLooG-ppl and CLooG-parma,
    	both and legacy versions. The only supported version will
    	be CLooG with the isl backend.
  8. Fix code generation for stride > 1

    committed Jan 13, 2012
    Tobias Grosser <>
    	* graphite-clast-to-gimple.c (graphite_create_new_loop): Fix code
    	generation for strides > 1.
  9. @sebpop

    Fix memory leak

    sebpop committed with Aug 10, 2011
    Sebastian Pop <>
    	* graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
Commits on Jan 9, 2012
  1. 2012-01-09 Tom de Vries <>

    vries committed Jan 9, 2012
    	    Andrew Pinski  <>
    	* reorg.c (fill_slots_from_thread): Don't speculate frame-related insns.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  2. 2012-01-09 Benjamin Kosnik <>

    bkoz committed Jan 9, 2012
    	* (WARN_CXXFLAGS): Add -Wabi.
    	* Regenerate.
    	* doc/ Same.
    	* include/ Same.
    	* libsupc++/ Same.
    	* src/ Same.
    	* testsuite/ Same.
    	* po/ Same.
    	* python/ Same.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  3. * gcc-interface/trans.c (call_to_gnu): Create the temporary for the

    ebotcazou committed Jan 9, 2012
    	return value in the variable-sized return type case if the target is
    	an array with fixed size.  However, do not create it if this is the
    	expression of an object declaration.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  4. 2012-01-09 Paul Thomas <>

    pault committed Jan 9, 2012
    	PR fortran/51791
    	* interface.c (matching_typebound_op): Drill down through
    	possible parentheses to obtain base expression. Do not test for
    	'class_ok' but, instead for the class structure components.
    	* resolve.c (resolve_ordinary_assign): Extend error message for
    	polymorphic assignment to advise checking for specific
    	PR fortran/51792
    	* resolve.c (resolve_typebound_function): Restore 'static' to
    2012-01-09  Paul Thomas  <>
    	PR fortran/51791
    	* gfortran.dg/typebound_operator_7.f03: Insert parentheses
    	around base object in first assignment in main program.
    	* gfortran.dg/typebound_operator_10.f03: New test.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  5. 2012-01-09 Harald Anlauf <>

    burnus committed Jan 9, 2012
                Tobias Burnus  <>
            PR fortran/51197
            * runtime/backtrace.c (show_backtrace): Modify wording written
            before the backtrace.
            * runtime/compile_options.c (show_signal): New function.
            (backtrace_handler): Use it.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  6. 2012-01-09 Martin Jambor <>

    jamborm committed Jan 9, 2012
            PR tree-optimization/51759
    	* g++.dg/ipa/pr51759.C: New test.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  7. gcc/

    rsandifo committed Jan 9, 2012
    	* sched-int.h (bb_note): Move to...
    	* basic-block.h:
    	* haifa-sched.c (bb_note): Move to...
    	* cfgrtl.c:
    	* function.c (next_block_for_reg): New function.
    	(move_insn_for_shrink_wrap): Likewise.
    	(prepare_shrink_wrap): Rewrite to use the above.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  8. * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko.

    ebotcazou committed Jan 9, 2012
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  9. 2012-01-09 Mikael Morin <>

    mikael committed Jan 9, 2012
    	PR fortran/51758
    	* trans-array.c (gfc_walk_elemental_function_args):
    	Skip over NULL() actual arguments.
    2012-01-09  Tobias Burnus  <>
    	PR fortran/51758
    	* gfortran.dg/optional_absent_2.f90: New.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  10. * config/sparc/sol2-unwind.h (sparc64_is_sighandler): Check that the

    ebotcazou committed Jan 9, 2012
    	purported sigacthandler address isn't null before dereferencing it.
    	(sparc_is_sighandler): Likewise.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
  11. 2012-01-09 Tobias Burnus <>

    burnus committed Jan 9, 2012
            * gfortran.texi: Bump copyright year.
            (Fortran 2003 Status): Update polymorphism item, add
            item for generic interface with DT name.
    git-svn-id: svn+ssh:// 138bc75d-0d04-0410-961f-82ee72b054a4
Something went wrong with that request. Please try again.