diff options
author | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-11-01 18:58:30 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-11-01 18:58:30 +0000 |
commit | e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc (patch) | |
tree | 9735446d963776d1da355444a3a00df028cd2e7b | |
parent | d0d7f522e8ae999d4d31b9906626f87209785811 (diff) | |
download | gcc-e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc.zip gcc-e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc.tar.gz gcc-e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc.tar.bz2 |
re PR tree-optimization/46259 (Revision 166102 failed 416.gamess in SPEC CPU 2006)
gcc/
2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
PR tree-optimization/46259
Revert:
2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
build_vector_from_val.
gcc/testsuite/
2010-11-01 H.J. Lu <hongjiu.lu@intel.com>
Nathan Froyd <froydnj@codesourcery.com>
PR tree-optimization/46259
* gfortran.dg/pr46259.f: New testcase.
From-SVN: r166139
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr46259.f | 19 | ||||
-rw-r--r-- | gcc/tree-vect-stmts.c | 10 |
4 files changed, 45 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 89a214b..fad03f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2010-11-01 Nathan Froyd <froydnj@codesourcery.com> + + PR tree-optimization/46259 + + Revert: + + 2010-10-30 Nathan Froyd <froydnj@codesourcery.com> + + * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use + build_vector_from_val. + 2010-11-01 DJ Delorie <dj@redhat.com> * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 33ff798..fcfe11a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-11-01 H.J. Lu <hongjiu.lu@intel.com> + Nathan Froyd <froydnj@codesourcery.com> + + PR tree-optimization/46259 + * gfortran.dg/pr46259.f: New testcase. + 2010-11-01 Paul Koning <ni1d@arrl.net> * gcc.c-torture/compile/20080625-1.c: Skip if pdp11. diff --git a/gcc/testsuite/gfortran.dg/pr46259.f b/gcc/testsuite/gfortran.dg/pr46259.f new file mode 100644 index 0000000..d74e549 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr46259.f @@ -0,0 +1,19 @@ +! PR tree-optimization/46259 +! { dg-do compile } +! { dg-options "-O3" } + SUBROUTINE RDSTFR(FRGMNT,IFRAG,PROVEC,FOCKMA, + * MXBF,MXMO,MXMO2,NTMOF) + PARAMETER (MXPT=100, MXFRG=50, MXFGPT=MXPT*MXFRG) + CHARACTER*8 WORD,MNAME,PNAME,RNAME + COMMON /FRGSTD/ CORD(3,MXPT),PCORD(3,MXPT),POLT(9,MXPT), + * INLPR(4*MXPT),IKFR(MXPT),IKLR(MXPT), + * MNAME(MXPT),PNAME(MXPT),RNAME(MXPT) + DO 10 I=1,MXPT + INLPR(4*(I-1)+1)=0 + INLPR(4*(I-1)+2)=0 + INLPR(4*(I-1)+3)=0 + INLPR(4*(I-1)+4)=0 + IKLR(I)=0 + RNAME(I)=' ' + 10 CONTINUE + END diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 67e9e2b..183bb11 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -987,7 +987,9 @@ vect_get_vec_def_for_operand (tree op, gimple stmt, tree *scalar_def) loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo); tree vec_inv; tree vec_cst; + tree t = NULL_TREE; tree def; + int i; enum vect_def_type dt; bool is_simple_use; tree vector_type; @@ -1049,7 +1051,13 @@ vect_get_vec_def_for_operand (tree op, gimple stmt, tree *scalar_def) if (vect_print_dump_info (REPORT_DETAILS)) fprintf (vect_dump, "Create vector_inv."); - vec_inv = build_vector_from_val (vector_type, def); + for (i = nunits - 1; i >= 0; --i) + { + t = tree_cons (NULL_TREE, def, t); + } + + /* FIXME: use build_constructor directly. */ + vec_inv = build_constructor_from_list (vector_type, t); return vect_init_vector (stmt, vec_inv, vector_type, NULL); } |