[Bug middle-end/38520] [graphite] wrong code with -O3 -fgraphite-identity on polyhedron benchmarks

howarth at nitro dot med dot uc dot edu gcc-bugzilla@gcc.gnu.org
Wed Jan 7 03:09:00 GMT 2009



------- Comment #4 from howarth at nitro dot med dot uc dot edu  2009-01-07 03:09 -------
This issue appears to be resolved with...

http://gcc.gnu.org/ml/gcc-patches/2009-01/msg00295.html

2009-01-06  Jan Sjodin  <jan.sjodin@amd.com>

        PR tree-optimization/38492
        PR tree-optimization/38498
        * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
        * tree-chrec.h (scev_is_linear_expression): Declared.
        * graphite.c (graphite_cannot_represent_loop_niter): New.
        (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
        (graphite_loop_normal_form): Use gcc_assert.
        (scan_tree_for_params): Use CASE_CONVERT.
        (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
        (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
        Use gcc_assert.  Discard scops that contain unhandled cases.
        (build_scop_conditions): Return a boolean status for unhandled cases.
        (strip_mine_profitable_p): Print the loop number, not its depth.
        (is_interchange_valid): Pass the depth of the loop nest, don't
        recompute it wrongly.
        (graphite_trans_bb_block): Same.
        (graphite_trans_bb_block): Print tentative of loop blocking.
        (graphite_trans_scop_block): Do not print that the loop has been
        blocked.
        (graphite_transform_loops): Do not handle scops that contain condition
        scalar phi nodes.

        * testsuite/gcc.dg/graphite/pr38500.c: Fixed warning as committed
        in trunk.
        * testsuite/gcc.dg/graphite/block-0.c: Update test.
        * testsuite/gcc.dg/graphite/block-1.c: Same.
        * testsuite/gcc.dg/graphite/block-2.c: Remove xfail and test for
blocking.
        * testsuite/gcc.dg/graphite/block-4.c: Remove test for strip mine.
        * testsuite/gcc.dg/graphite/block-3.c: New.
        * testsuite/gcc.dg/graphite/pr38498.c: New.

On i686-apple-darwin9 with this patch applied to r143144, all of the polyhedron
benchmarks pass with correct results.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38520



More information about the Gcc-bugs mailing list