This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [fortran patch] Don't use TREE_LISTs for storing arguments to intrinsic functions


Hi,

I've attached an updated version of the patch which fixes the 3 PRs
opened against it in my absense. It passes bootstrap and regression
testing but as shown with the last patch, this doesn't necessarily
indicate that the patch is correct.

In an attempt to minimise the potential of any further breakage, I've
ran the patched compiler through the Polyhedron 2k5 benchmarks and the
"all.f90" file from CP2K meta-bug PR29975 - all completed successfully
although the CP2K code did trigger an different ICE that has now been
fixed and a reduced testcase included for it.

If anyone has any other benchmarks or tests they think would be
suitable for this sort of patch then I'd be glad to make use of them
before this gets approved/committed. Needless to say I'll be
monitoring Bugzilla for a while after the patch gets committed to
watch out for any new problems caused by the patch.

Ok to apply?

Cheers,
Lee.

:ADDPATCH fortran:

fortran/
2007-07-05  Lee Millward  <lee.millward@gmail.com>

	PR fortran/32222
	PR fortran/32238
	PR fortran/32242
	* trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust
	to operate on a stack allocated array for the intrinsic arguments
	instead of creating a TREE_LIST. Add two new parameters for the
	array and the number of elements. Update all callers to allocate
	an array of the correct length to pass in.
	(gfc_intrinsic_argument_list_length): New function.
	(gfc_conv_intrinsic_mnimax): Call it.
	(gfc_conv_intrinsic_merge): Likewise.
	(gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR
	constructors.
	(gfc_conv_intrinsic_cmplx): Likewise.
	(gfc_conv_intrinsic_ctime): Likewise.
	(gfc_covn_intrinsic_fdate): Likewise.
	(gfc_conv_intrinsic_ttynam): Likewise.
	(gfc_conv_intrinsic_ishftc): Likewise.
	(gfc_conv_intrinsic_index): Likewise.
	(gfc_conv_intrinsic_scan): Likewise.
	(gfc_conv_intrinsic_verify): Likewise.
	(gfc_conv_intrinsic_trim): Likewise.
	(gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors.
	(gfc_conv_intrinsic_exponent): Likewise.
	(gfc_conv_intrinsic_bound): Likewise.
	(gfc_conv_intrinsic_abs): Likewise.
	(gfc_conv_intrinsic_mod): Likewise.
	(gfc_conv_intrinsic_sign): Likewise.
	(gfc_conv_intrinsic_len): Likewise.
	(gfc_conv_intrinsic_adjust): Likewise.
	(gfc_conv_intrinsic_si_kind): Likewise.
	
testsuite/
2007-07-05  Lee Millward  <lee.millward@gmail.com>

* gfortran.dg/cmplx_intrinsic_1.f90: New test.

	PR fortran/32222
	* gfortran.dg/pr32222.f90: New test.

	PR fortran/32238
	* gfortran.dg/pr32238.f90: New test.

	PR fortran/32242
	* gfortran.dg/pr32242.f90: New test

Attachment: intrinsics.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]