[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