diff mbox

fix broken loop-doloop.c

Message ID 525577E7.3040302@redhat.com
State New
Headers show

Commit Message

Andrew MacLeod Oct. 9, 2013, 3:36 p.m. UTC
Most of loop-doloop.c is wrapped by
#ifdef HAVE_doloop_end
<...>
#endif

so on my bootstraps/builds, it doesn't exercise the code.  It was 
pointed out to me the restructuring broke this file on some targets.
This should fix it by calling the refactored get_max_loop_iterations() 
function.  cross compiled for rs6000 to verify compilation.

committed as revision 203324

Andrew
diff mbox

Patch

	* loop-doloop.c (doloop_modify, doloop_optimize): Use 
	get_max_loop_iterations.

Index: loop-doloop.c
===================================================================
*** loop-doloop.c	(revision 203285)
--- loop-doloop.c	(working copy)
*************** doloop_modify (struct loop *loop, struct
*** 460,466 ****
  
        /* Determine if the iteration counter will be non-negative.
  	 Note that the maximum value loaded is iterations_max - 1.  */
!       if (max_loop_iterations (loop, &iterations)
  	  && (iterations.ule (double_int_one.llshift
  			       (GET_MODE_PRECISION (mode) - 1,
  				GET_MODE_PRECISION (mode)))))
--- 460,466 ----
  
        /* Determine if the iteration counter will be non-negative.
  	 Note that the maximum value loaded is iterations_max - 1.  */
!       if (get_max_loop_iterations (loop, &iterations)
  	  && (iterations.ule (double_int_one.llshift
  			       (GET_MODE_PRECISION (mode) - 1,
  				GET_MODE_PRECISION (mode)))))
*************** doloop_modify (struct loop *loop, struct
*** 552,558 ****
      double_int iter;
      rtx iter_rtx;
  
!     if (!max_loop_iterations (loop, &iter)
  	|| !iter.fits_shwi ())
        iter_rtx = const0_rtx;
      else
--- 552,558 ----
      double_int iter;
      rtx iter_rtx;
  
!     if (!get_max_loop_iterations (loop, &iter)
  	|| !iter.fits_shwi ())
        iter_rtx = const0_rtx;
      else
*************** doloop_optimize (struct loop *loop)
*** 669,675 ****
  
    count = copy_rtx (desc->niter_expr);
    iterations = desc->const_iter ? desc->niter_expr : const0_rtx;
!   if (!max_loop_iterations (loop, &iter)
        || !iter.fits_shwi ())
      iterations_max = const0_rtx;
    else
--- 669,675 ----
  
    count = copy_rtx (desc->niter_expr);
    iterations = desc->const_iter ? desc->niter_expr : const0_rtx;
!   if (!get_max_loop_iterations (loop, &iter)
        || !iter.fits_shwi ())
      iterations_max = const0_rtx;
    else