OSDN Git Service

PR tree-optimization/23433
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 21 Aug 2005 10:59:15 +0000 (10:59 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 21 Aug 2005 10:59:15 +0000 (10:59 +0000)
        * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
        REAL_CST when the type is SCALAR_FLOAT_TYPE_P.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103317 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr23433.c [new file with mode: 0644]
gcc/tree-chrec.c

index 6e2b4d8..1329cf2 100644 (file)
@@ -1,5 +1,11 @@
 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
 
+       PR tree-optimization/23433
+        * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
+        REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
+
+2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
+
        PR tree-optimization/23434
         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
         the iteration bound is not an INTEGER_CST.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23433.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23433.c
new file mode 100644 (file)
index 0000000..464d4b5
--- /dev/null
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+double transport_sumexp(int numexp)
+{
+  int k,j;
+  double xk1 = 1.0;
+  for(k=1; k<=numexp;k++)
+    for(j=1;j<=3;j++)
+      xk1 += 1.0;
+  return xk1;
+}
index 87cc148..8dae916 100644 (file)
@@ -539,6 +539,9 @@ chrec_apply (unsigned var,
   if (dump_file && (dump_flags & TDF_DETAILS))
     fprintf (dump_file, "(chrec_apply \n");
 
+  if (TREE_CODE (x) == INTEGER_CST && SCALAR_FLOAT_TYPE_P (type))
+    x = build_real_from_int_cst (type, x);
+
   if (evolution_function_is_affine_p (chrec))
     {
       /* "{a, +, b} (x)"  ->  "a + b*x".  */