+2018-01-10 Jan Hubicka <hubicka@ucw.cz>
+
+ PR middle-end/83189
+ * gfortran.fortran-torture/compile/pr83189.f90: New testcase.
+ * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero
+ profile.
+
2018-01-10 Jan Hubicka <hubicka@ucw.cz>
PR middle-end/83575
+2018-01-10 Jan Hubicka <hubicka@ucw.cz>
+
+ PR middle-end/83189
+ * gfortran.fortran-torture/compile/pr83189.f90: New testcase.
+
2018-01-10 Jan Hubicka <hubicka@ucw.cz>
* gcc.c-torture/compile/pr83575.c: New testcase.
+++ /dev/null
-Module radin_mod
- INTEGER, PARAMETER :: DP = selected_real_kind(14,200)
-Contains
- Subroutine SPLIFT (X,Y,YP,YPP,N,IERR,ISX,A1,B1,AN,BN)
- Integer, Intent(in) :: N,ISX
- Real(dp), Intent(in) :: X(N),Y(N),A1,B1,AN,BN
- Real(dp), Intent(out) :: YP(N),YPP(N)
- Real(dp), Allocatable, Dimension(:,:) :: W
- NM1 = N-1
- NM2 = N-2
- If (ISX.Gt.0) GO TO 40
- Do I=2,N
- If (X(I)-X(I-1) .Le. 0) Then
- IERR = 3
- Return
- Endif
- End Do
- Allocate(W(N,3))
-40 YPP(1) = 4*B1
- DOLD = (Y(2)-Y(1))/W(2,2)
- Do I=2,NM2
- DNEW = (Y(I+1) - Y(I))/W(I+1,2)
- YPP(I) = 6*(DNEW - DOLD)
- YP(I) = DOLD
- DOLD = DNEW
- End Do
- Return
- End Subroutine SPLIFT
-End Module radin_mod
-
--- /dev/null
+Module radin_mod
+ INTEGER, PARAMETER :: DP = selected_real_kind(14,200)
+Contains
+ Subroutine SPLIFT (X,Y,YP,YPP,N,IERR,ISX,A1,B1,AN,BN)
+ Integer, Intent(in) :: N,ISX
+ Real(dp), Intent(in) :: X(N),Y(N),A1,B1,AN,BN
+ Real(dp), Intent(out) :: YP(N),YPP(N)
+ Real(dp), Allocatable, Dimension(:,:) :: W
+ NM1 = N-1
+ NM2 = N-2
+ If (ISX.Gt.0) GO TO 40
+ Do I=2,N
+ If (X(I)-X(I-1) .Le. 0) Then
+ IERR = 3
+ Return
+ Endif
+ End Do
+ Allocate(W(N,3))
+40 YPP(1) = 4*B1
+ DOLD = (Y(2)-Y(1))/W(2,2)
+ Do I=2,NM2
+ DNEW = (Y(I+1) - Y(I))/W(I+1,2)
+ YPP(I) = 6*(DNEW - DOLD)
+ YP(I) = DOLD
+ DOLD = DNEW
+ End Do
+ Return
+ End Subroutine SPLIFT
+End Module radin_mod
+
{
/* Avoid dropping loop body profile counter to 0 because of zero count
in loop's preheader. */
- freq_e = freq_e.force_nonzero ();
+ if (freq_h.nonzero_p () && !(freq_e == profile_count::zero ()))
+ freq_e = freq_e.force_nonzero ();
scale_loop_frequencies (loop, freq_e.probability_in (freq_h));
}