[PATCH] Updated Cray Pointer Patch

Asher Langton langton2@llnl.gov
Mon Oct 10 05:52:00 GMT 2005


Here's an updated Cray Pointer patch.

-Asher



2005-10-09 Asher Langton <langton2@llnl.gov>

	PR fortran/17031
	PR fortran/22282
	* check.c (gfc_check_loc) : New function
	
	* decl.c (variable_decl): New variables cp_as and sym. Added a 		
	check for variables that have already been declared as Cray
	Pointers, so we can get the necessary attributes without adding
	a new symbol.
	(attr_decl1): Added code to catch pointee symbols and "fix"
	their array specs
	(cray_pointer_decl): New method
	(gfc_match_pointer): Added Cray pointer parsing code
	(gfc_mod_pointee_as): New method

	* expr.c (gfc_check_assign): added a check to catch vector-type
	assignments to pointees with an unspecified final dimension.

	* gfortran.h: (GFC_ISYM_LOC): New
	(symbol_attribute): Added cray_pointer and cray_pointee bits
	(gfc_array_spec): Added cray_pointee and cp_was_assumed bools
	(gfc_symbol): Added gfc_symbol *cp_pointer
	(gfc_option): Added flag_cray_pointer
	(gfc_add_cray_pointee): Declare
	(gfc_add_cray_pointer ): Declare
	(gfc_mod_pointee_as): Declare

	*gfortran.texi: Added section on Cray pointers, removed Cray
	pointers from list of proposed extensions

	* intrinsic.c (add_functions): add code for loc() intrinsic

	* intrinsic.h (gfc_check_loc): Declare
	(gfc_resolve_loc): Declare


	* intrinsic.texi: Added documentation for loc intrinsic
	
	* invoke.texi: Documented -fcray-pointer flag

	* iresolve.c (gfc_resolve_loc): New

	* lang.opt: Added fcray-pointer flag

	* options.c (gfc_init_options): Intialized 		
	gfc_match_option.flag_cray_pointer
	(gfc_handle_option): deal with -fcray-pointer

	* parse.c:(resolve_equivalence): Added code prohibiting Cray
	pointees in equivalence statements.

	* resolve.c (resolve_array_ref): added code to prevent bounds
	checking for Cray Pointee arrays.
	(resolve_equivalence): Prohibited pointees in equivalence
	statements.

	* symbol.c (check_conflict): Added Cray pointer/pointee 	
	attribute checking
	(gfc_add_cray_pointer): New
	(gfc_add_cray_pointee): New
	(gfc_copy_attr): New code for Cray pointers and pointees

	* trans-array.c (gfc_trans_auto_array_allocation): added code to
	prevent space from being allocated for pointees
	(gfc_conv_array_parameter): added code to catch pointees and 	
	correctly set their base address.

	* trans-decl.c (gfc_finish_var_decl): added code to prevent 	
	pointee declarations from making it to the back end.
	(gfc_create_module_variable): same

	* trans-expr.c (gfc_conv_variable): added code to detect and
	translate pointees
	(gfc_conv_cray_pointee): New

	* trans-intrinsic.c (gfc_conv_intrinsic_loc): New
	(gfc_conv_intrinsic_function): added entry point for loc 		
	translation

	* trans.h (gfc_conv_cray_pointee): Declare

2005-10-09 Asher Langton <langton2@llnl.gov>

	PR fortran/17031
	PR fortran/22282
	*gfortran.dg/cray_pointers_1.f90: New
	*gfortran.dg/cray_pointers_2.f90: New
	*gfortran.dg/cray_pointers_3.f90: New
	*gfortran.dg/loc_1.f90: New
	*gfortran.dg/loc_2.f90: New
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cp_patch_10_09c.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051010/2de803c1/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: loc_2.f90
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051010/2de803c1/attachment.f90>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: loc_1.f90
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051010/2de803c1/attachment-0001.f90>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cray_pointers_3.f90
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051010/2de803c1/attachment-0002.f90>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cray_pointers_1.f90
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051010/2de803c1/attachment-0003.f90>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cray_pointers_2.f90
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051010/2de803c1/attachment-0004.f90>


More information about the Gcc-patches mailing list