target.h (builtin_vectorization_cost): Add new target builtin.
authorDorit Nuzman <dorit@il.ibm.com>
Thu, 12 Jul 2007 12:17:03 +0000 (12:17 +0000)
committerDorit Nuzman <dorit@gcc.gnu.org>
Thu, 12 Jul 2007 12:17:03 +0000 (12:17 +0000)
commite95b59d2abbeea533bfcea315ed2b47412f21470
tree85414467a7c6b6b6755c5dbe54511f8981c7db54
parente1c8221962aa8dfba5b2462449bccfe10c2d561e
target.h (builtin_vectorization_cost): Add new target builtin.

2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>

        * target.h (builtin_vectorization_cost): Add new target builtin.
        * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
        * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
        (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
        * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
        uninitialized variables.
        * tree-vect-transform.c (cost_for_stmt): New function.
        (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
        using cost 1 for all scalar stmts. Be less conservative when
        estimating the number of prologue/epulogue iterations. Call
        targetm.vectorize.builtin_vectorization_cost. Return
        min_profitable_iters-1.
        (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
        initialization cost instead of TARG_VEC_STMT_COST. Use
        TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
        epilogue code. Fix epilogue cost computation.
        * config/spu/spu.c (spu_builtin_vectorization_cost): New.
        (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
        * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
        (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
        (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
        (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.

2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>

        * gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c: Loops now
        get vectorized.
        * gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: Loops
        now get vectorized.
        * gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp: New.
        * gcc.dg/vect/costmodel/spu/costmodel-fast-math-vect-pr29925.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31a.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31b.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31c.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31d.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-76a.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-76c.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68a.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68b.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68c.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68d.c: New.
        * lib/target-supports.exp (check_effective_target_vect_int_mul):
        Add spu.

From-SVN: r126584
26 files changed:
gcc/ChangeLog
gcc/config/spu/spu.c
gcc/config/spu/spu.h
gcc/target-def.h
gcc/target.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-fast-math-vect-pr29925.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-31a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-31b.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-31c.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-31d.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-33.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-68a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-68b.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-68c.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-68d.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-76a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-76c.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp
gcc/tree-vect-transform.c
gcc/tree-vectorizer.h