tree-vectorizer.c (new_loop_vec_info): Initialize LOOP_VINFO_COST_MODEL_MIN_ITERS.
commit3a70f3efefc0128192b8cf482c9999ed28142b83
authorDorit Nuzman <dorit@il.ibm.com>
Thu, 5 Jul 2007 13:15:20 +0000 (5 13:15 +0000)
committerDorit Nuzman <dorit@gcc.gnu.org>
Thu, 5 Jul 2007 13:15:20 +0000 (5 13:15 +0000)
treeee93a0ac09d7ead4c5c794ce3dc4ce957c9b9d27
parentfd06b1700741dc4f9b1a8ce457f8eae8c9ad8c83
tree-vectorizer.c (new_loop_vec_info): Initialize LOOP_VINFO_COST_MODEL_MIN_ITERS.

        * tree-vectorizer.c (new_loop_vec_info): Initialize
        LOOP_VINFO_COST_MODEL_MIN_ITERS.
        * tree-vectorizer.h (_loop_vec_info): Added new filed
        min_profitable_iters.
        (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
        (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
        * tree-vect-analyze.c (vect_analyze_operations): Set
        LOOP_VINFO_COST_MODEL_MIN_ITERS.
        * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
        VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
        Fix calculation of peel_iters_prologue. Move consideration of epilogue
        and prologue cost to after they are computed.
        (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
        TARG_VEC_STMT_COST.
        (vect_model_simple_cost): Takes additional argument dt. Consider cost
        of creating vectors from scalars according to dt.
        (vect_model_store_cost): Likewise.
        (vectorizable_call): Use dt array instead of scalar dt. Call
        vect_model_simple_cost with additional argument dt.
        (vectorizable_assignment): Likewise.
        (vectorizable_operation): Likewise.
        (vectorizable_type_demotion): Likewise.
        (vectorizable_type_promotion): Likewise.
        (vectorizable_store): Use dt array instead of scalar dt. Call
        vect_model_store_cost with additional argument dt.
        (vect_do_peeling_for_loop_bound): Don't call
        vect_estimate_min_profitable_iters. Instead, lookup
        LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
        "may not be profitable".

        * gcc.dg/vect/costmodel/ppc: New directory.
        * gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp: New.
        * gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-31d.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-68a.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-68b.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-68c.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c: New test.
        * gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c: New test.
  * gcc.dg/vect/costmodel/i386/costmodel-vect-68.c: Now vectorized.

From-SVN: r126368
23 files changed:
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-68.c
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31d.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68b.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68c.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c [copied from gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-68.c with 51% similarity]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-68.c
gcc/tree-vect-analyze.c
gcc/tree-vect-transform.c
gcc/tree-vectorizer.c
gcc/tree-vectorizer.h