[Bug tree-optimization/23391] [4.1 regression] Tree checking failure due to scev
sebastian dot pop at cri dot ensmp dot fr
gcc-bugzilla@gcc.gnu.org
Mon Aug 15 00:34:00 GMT 2005
------- Additional Comments From sebastian dot pop at cri dot ensmp dot fr 2005-08-15 00:34 -------
Subject: Re: [4.1 regression] Tree checking failure due to scev
This patch should fix the problem. There are some more cases that use
build_int_cst instead of build_real. I'll propose a more complete
patch later.
*** tree-scalar-evolution.c.~2.35.~ 2005-08-13 19:06:26.000000000 +0200
--- tree-scalar-evolution.c 2005-08-15 02:36:50.000000000 +0200
***************
*** 1680,1686 ****
opnd10 = TREE_OPERAND (opnd1, 0);
chrec10 = analyze_scalar_evolution (loop, opnd10);
chrec10 = chrec_convert (type, chrec10, at_stmt);
! res = chrec_fold_minus (type, build_int_cst (type, 0), chrec10);
break;
case MULT_EXPR:
--- 1680,1688 ----
opnd10 = TREE_OPERAND (opnd1, 0);
chrec10 = analyze_scalar_evolution (loop, opnd10);
chrec10 = chrec_convert (type, chrec10, at_stmt);
! res = chrec_fold_multiply (type, chrec10, SCALAR_FLOAT_TYPE_P (type)
! ? build_real (type, dconstm1)
! : build_int_cst_type (type, -1));
break;
case MULT_EXPR:
*** tree-chrec.c.~2.23.~ 2005-08-13 19:06:26.000000000 +0200
--- tree-chrec.c 2005-08-15 02:20:51.000000000 +0200
***************
*** 284,291 ****
return build_polynomial_chrec
(CHREC_VARIABLE (op1),
chrec_fold_minus (type, op0, CHREC_LEFT (op1)),
! chrec_fold_multiply (type, CHREC_RIGHT (op1),
! build_int_cst_type (type, -1)));
default:
{
--- 284,292 ----
return build_polynomial_chrec
(CHREC_VARIABLE (op1),
chrec_fold_minus (type, op0, CHREC_LEFT (op1)),
! chrec_fold_multiply (type, CHREC_RIGHT (op1), SCALAR_FLOAT_TYPE_P (type)
! ? build_real (type, dconstm1)
! : build_int_cst_type (type, -1)));
default:
{
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23391
More information about the Gcc-bugs
mailing list