aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphite-interchange.c
AgeCommit message (Collapse)AuthorFilesLines
2010-09-30Fix pbb_number_of_iterations_at_time.Sebastian Pop1-1/+1
2010-09-09 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.c (pbb_number_of_iterations): Removed. (pbb_number_of_iterations_at_time): Correctly compute the number of iterations in the transformed loop. * graphite-poly.h (pbb_number_of_iterations): Removed. From-SVN: r164802
2010-08-20vec.h (FOR_EACH_VEC_ELT): Define.Nathan Froyd1-5/+5
gcc/ * vec.h (FOR_EACH_VEC_ELT): Define. * c-decl.c: Use it. * cfgloop.c: Likewise. * cfgloopmanip.c: Likewise. * cgraph.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * config/bfin/bfin.c: Likewise. * config/mips/mips.c: Likewise. * config/rs6000/rs6000.c: Likewise. * dbxout.c: Likewise. * df-scan.c: Likewise. * dominance.c: Likewise. * dse.c: Likewise. * dwarf2out.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * ggc-common.c: Likewise. * gimplify.c: Likewise. * graphite-blocking.c: Likewise. * graphite-clast-to-gimple.c: Likewise. * graphite-dependences.c: Likewise. * graphite-interchange.c: Likewise. * graphite-poly.c: Likewise. * graphite-scop-detection.c: Likewise. * graphite-sese-to-poly.c: Likewise. * graphite.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * implicit-zee.c: Likewise. * ipa-prop.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-emit.c: Likewise. * lambda-code.c: Likewise. * loop-invariant.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lto-cgraph.c: Likewise. * lto-opts.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.c: Likewise. * lto-symtab.c: Likewise. * matrix-reorg.c: Likewise. * opts.c: Likewise. * predict.c: Likewise. * print-tree.c: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched.c: Likewise. * sese.c: Likewise. * stor-layout.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-chrec.c: Likewise. * tree-data-ref.c: Likewise. * tree-emutls.c: Likewise. * tree-inline.c: Likewise. * tree-into-ssa.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-loop-linear.c: Likewise. * tree-mudflap.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-parloops.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * value-prof.c: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. * vmsdbgout.c: Likewise. gcc/ada/ * gcc-interface/decl.c: Use FOR_EACH_VEC_ELT. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. gcc/c-family/ * c-common.c: Use FOR_EACH_VEC_ELT. * c-gimplify.c: Likewise. * c-pragma.c: Likewise. gcc/cp/ * call.c: Use FOR_EACH_VEC_ELT. * class.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * error.c: Likewise. * except.c: Likewise. * mangle.c: Likewise. * method.c: Likewise. * name-lookup.c: Likewise. * parser.c: Likewise. * pt.c: Likewise. * repo.c: Likewise. * semantics.c: Likewise. * typeck2.c: Likewise. gcc/fortran/ * trans-openmp.c: Use FOR_EACH_VEC_ELT. gcc/java/ * class.c: Use FOR_EACH_VEC_ELT. * expr.c: Likewise. * jcf-parse.c: Likewise. * resource.c: Likewise. gcc/lto/ * lto.c: Use FOR_EACH_VEC_ELT. From-SVN: r163401
2010-08-11Partially removing cloog.h and graphite-clast-to-gimple.h where possible. ↵Andreas Simbuerger1-1/+0
Removing unused function check_poly_representation. 2010-07-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de> * graphite-cloog-util.h: Added cloog.h. * graphite-blocking.c: Removed cloog.h. * graphite-dependences.c: Same. * graphite-interchange.c: Same. * graphite-poly.c: Same. * graphite-ppl.c: Same. * graphite-scop-detection.c: Same. * graphite-sese-to-poly.c: Removed cloog.h. Removed graphite-clast-to-gimple.h. (check_poly_representation): Removed (unused). * graphite-sese-to-poly.h (check_poly_representation): Removed (unused). From-SVN: r163135
2010-08-11Resolve CLooG's value_* macros to their respective mpz_* counterparts.Andreas Simbuerger1-1/+1
2010-07-04 Andreas Simbuerger <simbuerg@fim.uni-passau.de> * graphite-clast-to-gimple.c (precision_for_value): Resolve value_* calls to matching mpz_* calls. (precision_for_interval): Same. (gcc_type_for_interval): Same. (compute_type_for_level): Same. * graphite-interchange.c (lst_interchange_profitable_p): Same. * graphite-poly.c (psct_scattering_dim_for_loop_depth): Same. * graphite-ppl.c (ppl_max_for_le_pointset): Same. (ppl_min_for_le_pointset): Same. From-SVN: r163133
2010-05-06Replace Value with mpz_tAndreas Simbuerger1-6/+6
2010-04-12 Andreas Simbuerger <simbuerg@fim.uni-passau.de> * graphite-blocking.c (pbb_strip_mine_profitable_p): Replace Value with mpz_t. * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same. (precision_for_value): Same. (precision_for_interval): Same. (gcc_type_for_interval): Same. (graphite_create_new_guard): Same. (compute_bounds_for_level): Same. (graphite_create_new_loop_guard): Same. * graphite-interchange.c (build_linearized_memory_access): Same. (pdr_stride_in_loop): Same. (memory_strides_in_loop_1): Same. (memory_strides_in_loop): Same. (extend_scattering): Same. (psct_scattering_dim_for_loop_depth): Same. (pbb_number_of_iterations): Same. * graphite-poly.h (debug_iteration_domains): Same. * graphite-ppl.c (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same. (ppl_set_inhomogeneous_gmp): Same. (ppl_strip_loop): Same. (ppl_lexico_compare_linear_expressions): Same. (ppl_read_polyhedron_matrix): Same. (ppl_max_for_le_pointset): Same. * graphite-ppl.h (ppl_read_polyhedron_matrix): Same. (tree_int_to_gmp): Same. (gmp_cst_to_tree): Same. (ppl_set_inhomogeneous): Same. (ppl_set_inhomogeneous_tree): Same. (ppl_set_coef): Same. (ppl_set_coef_tree): Same. * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same. (build_scop_scattering): Same. (scan_tree_for_params_right_scev): Same. (scan_tree_for_params): Same. (find_params_in_bb): Same. (find_scop_parameters): Same. (add_upper_bounds_from_estimated_nit): Same. (build_loop_iteration_domains): Same. (add_condition_to_domain): Same. (pdr_add_memory_accesses): Same. From-SVN: r159133
2010-05-06Resolve CLooG's value_* macros to their respective mpz_* counterparts.Andreas Simbuerger1-22/+28
2010-04-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de> * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve CLooG's value_* macros to their respective mpz_* counterparts. * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same. (graphite_create_new_loop_guard): Same. * graphite-interchange.c (build_linearized_memory_access): Same. (pdr_stride_in_loop): Same. (memory_strides_in_loop_1): Same. (1st_interchange_profitable_p): Same. * graphite-poly.c (extend_scattering): Same. (psct_scattering_dim_for_loop_depth): Same. (pbb_number_of_iterations): Same. (pbb_number_of_iterations_at_time): Same. * graphite-poly.h (new_1st_loop): Same. * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same. (oppose_constraint): Same. (insert_constraint_into_matrix): Same. (ppl_set_inhomogeneous_gmp): Same. (ppl_set_coef_gmp): Same. (ppl_strip_loop): Same. (ppl_lexico_compare_linear_expressions): Same. (ppl_max_for_le_pointset): Same. (ppl_min_for_le_pointset): Same. (ppl_build_realtion): Same. * graphite-ppl.h (gmp_cst_to_tree): Same. (ppl_set_inhomogeneous): Same. (ppl_set_inhomogeneous_tree): Same. (ppl_set_coef): Same. (ppl_set_coef_tree): Same. * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same. (build_scop_scattering): Same. (add_value_to_dim): Same. (scan_tree_for_params_right_scev): Same. (scan_tree_for_params_int): Same. (scan_tree_for_params): Same. (find_params_in_bb): Same. (find_scop_parameters): Same. (add_upper_bounds_from_estimated_nit): Same. (build_loop_iteration_domains): Same. (create_linear_expr_from_tree): Same. (add_condition_to_domain): Same. (pdr_add_memory_accesses): Same. From-SVN: r159132
2010-01-08Memoize memory strides per loop.Sebastian Pop1-6/+20
2010-01-07 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (memory_stride_in_loop): Renamed pdr_stride_in_loop. (memory_strides_in_loop): Renamed memory_strides_in_loop_1. (memory_strides_in_loop): Memoize the memory strides per loop. (lst_interchange_profitable_p): Do not initialize to zero the memory strides. * graphite-poly.h (struct lst): Add a field memory_strides. (LST_LOOP_MEMORY_STRIDES): New. (new_lst_loop): Initialize LST_LOOP_MEMORY_STRIDES to -1. (free_lst): Clear LST_LOOP_MEMORY_STRIDES. From-SVN: r155725
2010-01-08Compute memory strides on a whole loop.Sebastian Pop1-54/+27
2010-01-07 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (memory_strides_in_loop_depth): Renamed memory_strides_in_loop. Gather memory strides on a whole loop. (pbb_interchange_profitable_p): Renamed lst_interchange_profitable_p. (lst_interchange_profitable_p): Removed. (lst_try_interchange_loops): Call lst_interchange_profitable_p. From-SVN: r155724
2010-01-07Fix memory leaks.Sebastian Pop1-3/+15
2010-01-06 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c (save_clast_name_index): Free slot before allocating a new one. (copy_renames): Check that slot is not NULL. (mark_bb_with_pbb): Same. (compute_cloog_iv_types_1): Same. * graphite-interchange.c (lst_perfect_nestify): Free the before, nest, and after LSTs. (lst_try_interchange_loops): Same. From-SVN: r155702
2010-01-07re PR middle-end/42178 (Invalid memory access in graphite)Sebastian Pop1-58/+24
Fix PR42178. 2010-01-05 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/42178 * graphite-interchange.c (lst_try_interchange_loops): Do not return the before, nest, and after LSTs. (lst_try_interchange): Removed. (lst_interchange_select_inner): Do not iterate over the LSTs if they were modified. (lst_interchange_select_outer): Apply interchange on the outer loop until there are no more changes in the inner loops. From-SVN: r155701
2009-12-23Fix PR42334: correct the update of the LST on loop interchange and distribution.Sebastian Pop1-49/+55
2009-12-15 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/42178 PR middle-end/42334 * graphite-interchange.c (lst_perfect_nestify): Reset to NULL the LSTs that are empty. (lst_do_interchange_1): Renamed lst_interchange_select_inner. (lst_try_interchange): Reimplemented. (lst_interchange_select_inner): Same. (lst_do_interchange): Renamed lst_interchange_select_outer. Reimplemented. (scop_do_interchange): Update use of lst_interchange_select_outer. * graphite-interchange.c (lst_try_interchange): Do not increment the the OUTER index when there is no AFTER kernel. Do not increment the OUTER index for after processing the AFTER kernel. (lst_interchange_select_inner): Call lst_try_interchange only on loops. (lst_interchange_select_outer): Do not pass in a pointer to the OUTER index. Do not pass to lst_interchange_select_inner the OUTER index. (scop_do_interchange): Update use of lst_interchange_select_outer. * graphite-interchange.c (lst_try_interchange): Do not modify OUTER index. Call lst_interchange_select_inner only once. (lst_interchange_select_inner): Update use of lst_try_interchange. (lst_interchange_select_outer): Update. * testsuite/g++.dg/graphite/pr42130.C: Add -fgraphite-identity. * testsuite/gcc.dg/graphite/block-0.c: Un-XFAILed. * testsuite/gcc.dg/graphite/pr42211.c: New. * testsuite/gfortran.dg/graphite/pr42334.f90: New. * testsuite/gfortran.dg/graphite/graphite.exp (DEFAULT_FLAGS_GRAPHITE_IDENTITY): Remove -fdump-tree-graphite-all. * testsuite/gfortran.dg/graphite/interchange-1.f: Add comment. Clean the graphite dump file. * testsuite/gfortran.dg/graphite/interchange-2.f: Same. * testsuite/gfortran.dg/graphite/pr42334-1.f: New. From-SVN: r155418
2009-11-25graphite-interchange.c (memory_strides_in_loop_depth): New.Sebastian Pop1-22/+30
2009-11-18 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (memory_strides_in_loop_depth): New. (pbb_interchange_profitable_p): Call memory_strides_in_loop_depth. From-SVN: r154639
2009-11-25graphite-interchange.c (build_partial_difference): New.Konrad Trifunovic1-38/+96
2009-11-04 Konrad Trifunovic <konrad.trifunovic@inria.fr> * graphite-interchange.c (build_partial_difference): New. (memory_stride_in_loop): Refactored the computation of equality constraints into build_partial_difference function. Added support for debugging stride computations. From-SVN: r154634
2009-11-25graphite-interchange.c (lst_perfect_nestify): Pass 3 parameters for the ↵Sebastian Pop1-50/+114
loops created by the loop distribution. 2009-11-03 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (lst_perfect_nestify): Pass 3 parameters for the loops created by the loop distribution. Do not modify the input LSTs. (lst_try_interchange_loops): Same. Use a temporary LST for the transformed schedule. Call lst_update_scattering before data dependence analysis. (lst_try_interchange): Pass an extra parameter INDEX. (lst_do_interchange_1): New. (lst_do_interchange): Call lst_do_interchange_1. (scop_do_interchange): Call lst_update_scattering. * graphite-poly.c (apply_poly_transforms): Do not call lst_update_scattering. * graphite-poly.h (lst_pred): New. (lst_succ): New. (lst_find_first_pbb): Return NULL when not found. (lst_empty_p): New. (lst_insert_in_sequence): Allow LST1 to be NULL. (lst_replace): New. (lst_substitute_3): New. * gcc.dg/graphite/interchange-1.c: XFail. * gcc.dg/graphite/interchange-8.c: XFail. * gcc.dg/graphite/interchange-11.c: XFail. From-SVN: r154632
2009-11-25graphite-interchange.c (lst_perfectly_nested_p): New.Sebastian Pop1-15/+56
2009-10-30 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (lst_perfectly_nested_p): New. (lst_perfect_nestify): New. (lst_try_interchange_loops): Call store_lst_schedule, lst_perfectly_nested_p, lst_perfect_nestify and restore_lst_schedule. (scop_do_interchange): Avoid redundant legality test. Call lst_do_interchange on a copy of SCOP_TRANSFORMED_SCHEDULE. * graphite-poly.c (apply_poly_transforms): Call lst_update_scattering. * graphite-poly.h (psct_static_dim): New. (lst_dewey_number_at_depth): New. (lst_find_pbb): Restructured. (lst_find_first_pbb): Restructured. (lst_find_last_pbb): New. (lst_contains_p): New. (lst_contains_pbb): New. (lst_create_nest): New. (lst_remove_from_sequence): New. (pbb_update_scattering): New. (lst_update_scattering_under): New. (lst_update_scattering_seq): New. (lst_update_scattering): New. (lst_insert_in_sequence): New. (lst_distribute_lst): New. (lst_remove_all_before_including_pbb): New. (lst_remove_all_before_excluding_pbb): New. From-SVN: r154631
2009-11-25graphite-interchange.c (memory_stride_in_loop): Delete p1, lma and new_cstr.Sebastian Pop1-5/+7
2009-10-17 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (memory_stride_in_loop): Delete p1, lma and new_cstr. From-SVN: r154609
2009-11-25graphite-interchange.c: Fix comments.Sebastian Pop1-1/+2
2009-10-16 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c: Fix comments. * gcc.dg/graphite/block-1.c: Fix comments. From-SVN: r154598
2009-11-25graphite-interchange.c (memory_stride_in_loop): The depth argument ↵Sebastian Pop1-3/+6
corresponds to a dynamic time dimension... 2009-10-15 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (memory_stride_in_loop): The depth argument corresponds to a dynamic time dimension, so use psct_dynamic_dim to refer to the transformed scattering dimension. From-SVN: r154595
2009-11-25graphite-interchange.c (memory_stride_in_loop): Fix comments.Sebastian Pop1-4/+4
2009-10-15 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (memory_stride_in_loop): Fix comments. From-SVN: r154594
2009-11-25graphite-blocking.c (lst_do_strip_mine): Avoid strip mining the root of the LST.Sebastian Pop1-2/+3
2009-10-15 Sebastian Pop <sebastian.pop@amd.com> * graphite-blocking.c (lst_do_strip_mine): Avoid strip mining the root of the LST. * graphite-interchange.c (lst_do_interchange): Avoid interchanging the root of the LST. * graphite-poly.c (scop_to_lst): Fix LST sequence in an outermost fake loop. (print_lst): Print the root of LST in a different format. * graphite-poly.h (lst_depth): Adjust to include the root of the LST. From-SVN: r154593
2009-11-25graphite-interchange.c (build_linearized_memory_access): Pass an offset as ↵Konrad Trifunovic1-63/+172
parameter. 2009-10-14 Konrad Trifunovic <konrad.trifunovic@gmail.com> Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (build_linearized_memory_access): Pass an offset as parameter. (memory_stride_in_loop): Include transform scattering in the access functions to be able to querry the strides in the transformed loops. (pbb_interchange_loop_depths): Interchange the psct_dynamic_dim, not the psct_iterator_dim. Co-Authored-By: Sebastian Pop <sebastian.pop@amd.com> From-SVN: r154583
2009-11-25graphite-interchange.c (lst_apply_interchange): New.Sebastian Pop1-26/+130
2009-10-06 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (lst_apply_interchange): New. (lst_interchange_profitable_p): New. (lst_try_interchange_loops): New. (lst_try_interchange): New. (lst_do_interchange): New. (pbb_do_interchange): Removed. (scop_do_interchange): Call lst_do_interchange. From-SVN: r154563
2009-11-25graphite-clast-to-gimple.c (build_cloog_prog): Use pbb_index.Sebastian Pop1-1/+1
2009-10-05 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c (build_cloog_prog): Use pbb_index. * graphite-interchange.c (pbb_do_interchange): Same. * graphite-poly.c (print_scattering_function): Same. (debug_pdrs): Same. * graphite-poly.h (pbb_loop): New. * graphite-sese-to-poly.c (create_linear_expr_from_tree): Use pbb_loop. From-SVN: r154557
2009-08-28graphite-interchange.c (pbb_interchange_profitable_p): Adjust the strides by ↵Sebastian Pop1-1/+7
multiplying by PDR_NB_REFS. 2009-08-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (pbb_interchange_profitable_p): Adjust the strides by multiplying by PDR_NB_REFS. * graphite-poly.c (can_collapse_pdr): New. (pdr_find_duplicate): New. (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs. Initialize PDR_NB_REFS. * graphite-poly.h (struct poly_dr): Add field nb_refs. (PDR_NB_REFS): New. (new_poly_dr): Number of subscripts is a graphite_dim_t. From-SVN: r151191
2009-08-28graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.Konrad Trifunovic1-2/+2
2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com> * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset. * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset. * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le. * graphite-interchange.c (build_linearized_memory_access): Same. (memory_stride_in_loop): Same. From-SVN: r151184
2009-08-15Correct the use of ppl_Pointset_Powerset_C_Polyhedron_maximize.Sebastian Pop1-29/+0
2009-08-15 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/40981 * graphite-interchange.c (ppl_max_for_le): Moved... * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le. * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of ppl_Pointset_Powerset_C_Polyhedron_maximize. * graphite-ppl.h (ppl_max_for_le): Declared. From-SVN: r150789
2009-08-12Reimplement interchange heuristic.Sebastian Pop1-21/+225
2009-08-11 Sebastian Pop <sebastian.pop@amd.com> Pranav Garg <pranav.garg2107@gmail.com> * graphite-interchange.c (gather_access_strides): Removed. (ppl_max_for_le): New. (build_linearized_memory_access): New. (memory_stride_in_loop): New. (pbb_interchange_profitable_p): Reimplemented. * graphite-ppl.h (ppl_new_id_map): New. (ppl_interchange): New. * testsuite/gcc.dg/graphite/interchange-6.c: XFAILed. Co-Authored-By: Pranav Garg <pranav.garg2107@gmail.com> From-SVN: r150692
2009-08-12Remove interchange heuristic.Sebastian Pop1-228/+4
2009-08-11 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (compute_subscript): Removed. (compute_array_size_cstr): Removed. (compute_array_size_poly): Removed. (compute_array_size): Removed. (gather_access_strides_poly): Removed. (gather_access_strides): Empty. From-SVN: r150691
2009-08-12Undo changes to the PDR representation.Sebastian Pop1-1/+1
2009-08-11 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (compute_array_size): Remove use of PDR_DATA_CONTAINER. * graphite-poly.c (new_poly_dr): Remove argument data_container. Do not initialize PDR_DATA_CONTAINER. (print_pdr): Do not print PDR_DATA_CONTAINER. * graphite-poly.h (struct poly_dr): Remove data_container field. (PDR_DATA_CONTAINER): Removed. * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of PDR_DATA_CONTAINER. (build_poly_dr): Same. From-SVN: r150689
2009-08-12Restore original scattering when the transform is not legal.Sebastian Pop1-0/+11
2009-08-05 Sebastian Pop <sebastian.pop@amd.com> * graphite-blocking.c (scop_do_strip_mine): Call store_scattering. Early return without analyzing the data dependences if no transform has been done. Call restore_scattering if the transform is not legal. (graphite-interchange.c): Same. * graphite-poly.c (print_scattering_function): Test for PBB_TRANSFORMED. (graphite_read_transforms): Initialize PBB_TRANSFORMED. (apply_poly_transforms): Do not gcc_assert that the transform is legal. (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL. Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES, PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING. (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL. * graphite-poly.h (struct poly_scattering): New. (struct poly_bb): Add original, transformed, and saved fields. Remove transformed_scattering, original_scattering, nb_local_variables, and nb_scattering_transform fields. (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New. (poly_scattering_new): New. (poly_scattering_free): New. (poly_scattering_copy): New. (store_scattering_pbb): New. (store_scattering): New. (restore_scattering_pbb): New. (restore_scattering): New. * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Initialize PBB_TRANSFORMED and PBB_ORIGINAL. From-SVN: r150686
2009-07-31New Graphite files.Sebastian Pop1-0/+398
2009-07-30 Sebastian Pop <sebastian.pop@amd.com> * ChangeLog.graphite: New. * graphite-blocking.c: New. * graphite-clast-to-gimple.c: New. * graphite-clast-to-gimple.h: New. * graphite-dependences.c: New. * graphite-dependences.h: New. * graphite-interchange.c: New. * graphite-poly.c: New. * graphite-poly.h: New. * graphite-ppl.c: New. * graphite-ppl.h: New. * graphite-scop-detection.c: New. * graphite-scop-detection.h: New. * graphite-sese-to-poly.c: New. * graphite-sese-to-poly.h: New. * sese.c: New. * sese.h: New. From-SVN: r150300