Merge from trunk.
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 28 Apr 2014 14:41:50 +0000 (14:41 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 28 Apr 2014 14:41:50 +0000 (14:41 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@209864 138bc75d-0d04-0410-961f-82ee72b054a4

25 files changed:
1  2 
gcc/c-family/c-common.c
gcc/c/c-decl.c
gcc/c/c-parser.c
gcc/c/c-typeck.c
gcc/cgraph.c
gcc/config/arm/arm.c
gcc/config/avr/avr.c
gcc/config/rs6000/predicates.md
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
gcc/cselib.c
gcc/dwarf2out.c
gcc/expr.c
gcc/gimple-ssa-strength-reduction.c
gcc/go/go-gcc.cc
gcc/omp-low.c
gcc/rtl.h
gcc/rtlanal.c
gcc/system.h
gcc/tree-ssa-structalias.c
gcc/tree-vect-generic.c
gcc/tree-vect-patterns.c
gcc/tree-vrp.c
gcc/tree.h

Simple merge
diff --cc gcc/c/c-decl.c
Simple merge
Simple merge
Simple merge
diff --cc gcc/cgraph.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/cselib.c
Simple merge
diff --cc gcc/dwarf2out.c
Simple merge
diff --cc gcc/expr.c
Simple merge
@@@ -1111,14 -1114,18 +1111,17 @@@ create_mul_imm_cand (gimple gs, tree ba
             X = Y * c
             ============================
             X = (B + i') * (S * c)  */
-         base = base_cand->base_expr;
-         index = base_cand->index;
 -        temp = tree_to_double_int (base_cand->stride)
 -               * tree_to_double_int (stride_in);
 -        if (double_int_fits_to_tree_p (TREE_TYPE (stride_in), temp))
 +        temp = wi::to_widest (base_cand->stride) * wi::to_widest (stride_in);
-         stride = wide_int_to_tree (TREE_TYPE (stride_in), temp);
-         ctype = base_cand->cand_type;
-         if (has_single_use (base_in))
-           savings = (base_cand->dead_savings 
-                      + stmt_cost (base_cand->cand_stmt, speed));
++        if (wi::fits_to_tree_p (temp, TREE_TYPE (stride_in)))
+           {
+             base = base_cand->base_expr;
+             index = base_cand->index;
 -            stride = double_int_to_tree (TREE_TYPE (stride_in), temp);
++            stride = wide_int_to_tree (TREE_TYPE (stride_in), temp);
+             ctype = base_cand->cand_type;
+             if (has_single_use (base_in))
+               savings = (base_cand->dead_savings 
+                          + stmt_cost (base_cand->cand_stmt, speed));
+           }
        }
        else if (base_cand->kind == CAND_ADD && integer_onep (base_cand->stride))
        {
Simple merge
diff --cc gcc/omp-low.c
Simple merge
diff --cc gcc/rtl.h
Simple merge
diff --cc gcc/rtlanal.c
Simple merge
diff --cc gcc/system.h
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/tree-vrp.c
Simple merge
diff --cc gcc/tree.h
Simple merge