[patch,libfortran] [4.7/4.8/4.9 Regression] PR38199 missed optimization: I/O performance

Tobias Burnus burnus@net-b.de
Wed Mar 12 18:46:00 GMT 2014


Jerry DeLisle wrote:
> +      if (dtp->common.unit == 0)
> +	{
> +	  len = string_len_trim (dtp->internal_unit_len,
> +				     dtp->internal_unit);
> +	  if (len > 0)
> +	    dtp->internal_unit_len = len;
> +	  iunit->recl = dtp->internal_unit_len;
> +	}
Is there a reason for having the "len > 0" check? And would the 
following work?

   dtp->internal_unit_len = len ? len : 1;

> +	  if (len > 0)
> +	    dtp->internal_unit_len = len;

Ditto.

Otherwise, it looks good to me - even if Dominique has found another 
special case [PR38199, Comment 14], where the performance is with patch 
is 7% lower.

Tobias



More information about the Fortran mailing list