Commit Graph

113026 Commits

Author SHA1 Message Date
Hristian Kirtchev 6ec084f387 exp_alfa.adb: Add local constant Disable_Processing_Of_Renamings;
2011-11-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_alfa.adb: Add local constant
	Disable_Processing_Of_Renamings;
	(Expand_Alfa_N_Object_Renaming_Declaration): Disable
	the name evaluation of object renamings for now.
	(Expand_Potential_Renaming): Do not perform the substitution
	for now.
	* exp_util.adb (Remove_Side_Effects): Remove processing for
        functions with side effects in Alfa mode.

From-SVN: r180953
2011-11-04 14:57:31 +01:00
Arnaud Charlet 73fe16797b [multiple changes]
2011-11-04  Gary Dismukes  <dismukes@adacore.com>

	* bindgen.adb (Gen_Elab_Calls): In the case
	of the AAMP target, set elaboration entities to 1 rather than
	incrementing.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Install_Limited_With_Unit): To establish the
	proper entities on the ancestors of a child unit that appear
	in a limited_with clause, follow the unit links because the
	units are not analyzed and scope information is incomplete.

2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_N_Selected_Component): Refine code
	setting the Atomic_Sync_Required flag to detect one more case.
	* exp_util.adb (Activate_Atomic_Synchronization): Refine code
	setting the Atomic_Sync_Required flag to exclude more cases,
	depending on the parent of the node to be examined.

2011-11-04  Bob Duff  <duff@adacore.com>

	* g-excact.adb: Minor: use named notation.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb: Improve error messages for illegal iterators.

From-SVN: r180952
2011-11-04 14:55:34 +01:00
Arnaud Charlet b2ab8c33ed [multiple changes]
2011-11-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_alfa.adb: Add with and use clauses for Exp_Ch8 and
	Sem_Util.
	(Expand_Alfa): Alphabetize cases on first choice. Add
	processing for object renaming declarations, identifiers and
	expanded names.
	(Expand_Alfa_N_In): Remove useless return.
	(Expand_Alfa_N_Object_Renaming_Declaration): New routine.
	(Expand_Potential_Renaming): New routine.
	* exp_ch8.adb (Evaluate_Name): Moved to the top level.
	(Expand_N_Object_Declaration): Alphabetize local variables. Move
	Evaluate_Name out to the top level.
	* exp_ch8.ads (Evaluate_Name): Moved from body to package spec.
	* exp_util.adb (Remove_Side_Effects): Add processing for
	functions with side effects in Alfa mode.

2011-11-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* gnat_rm.texi: Add entries for
	restrictions No_Relative_Delay, No_Requeue_Statements and
	No_Stream_Optimizations.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb: Set type of entity in prefixed call, for
	completeness in a generic context.

From-SVN: r180951
2011-11-04 14:52:11 +01:00
Arnaud Charlet 4c31825389 [multiple changes]
2011-11-04  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb: Minor refactoring (renaming of a parameter).

2011-11-04  Robert Dewar  <dewar@adacore.com>

	* atree.ads: Minor reformatting.

2011-11-04  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d
	and -gnatd.e here
	* exp_ch2.adb (Expand_Entity_Reference): Use
	Activate_Atomic_Synchronization
	* exp_ch4.adb (Expand_N_Explicit_Dereference): Use
	Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent):
	Activate_Atomic_Synchronization (Expand_N_Selected_Component):
	Use Activate_Atomic_Synchronization
	* exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): New
	procedure.
	* sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply to
	N_Selected_Component node

From-SVN: r180950
2011-11-04 14:48:52 +01:00
Robert Dewar 37765e95f1 sem_prag.adb, [...]: Minor reformatting.
2011-11-04  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting.

From-SVN: r180949
2011-11-04 14:46:55 +01:00
Arnaud Charlet 8c18a165e2 [multiple changes]
2011-11-04  Yannick Moy  <moy@adacore.com>

	* atree.adb, atree.ads (Set_Original_Node): New set procedure.
	* sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects):
	In ASIS mode, no splitting of aspects between conjuncts.
	(Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma
	expressions refer to the original aspect expressions through
	the Original_Node link. This is used in semantic analysis for
	ASIS mode, so that the original expression also gets analyzed.
	* sem_prag.adb (Preanalyze_TC_Args,
	Check_Precondition_Postcondition,
	Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma
	generated from a source aspect, also analyze the original aspect
	expression.
	(Check_Expr_Is_Static_Expression): New procedure
	similar to existing procedure Check_Arg_Is_Static_Expression,
	except called on expression inside pragma.

2011-11-04  Tristan Gingold  <gingold@adacore.com>

	* prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from
	Find_Project.Try_Path_Name.
	(Find_Project): Use Find_Name_In_Path to implement Try_Path_Name.

2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	* s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile.

2011-11-04  Pascal Obry  <obry@adacore.com>

	* projects.texi: Add short description for qualifiers aggregate
	and aggregate library.

2011-11-04  Matthew Heaney  <heaney@adacore.com>

	* Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb]
	* a-cgaaso.adb: Replaced implementation with instantiation
	of Generic_Sort.
	* a-cogeso.ad[sb] This is the new Ada 2012 unit
	Ada.Containers.Generic_Sort

From-SVN: r180948
2011-11-04 14:45:01 +01:00
Tristan Gingold 872b942a5b vms.h (ASM_OUTPUT_DEF): Do not switch section.
2011-11-04  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.

From-SVN: r180947
2011-11-04 13:39:21 +00:00
Joel Sherrill 7084e0378d re PR target/50989 (sparc libgcc2 __udivmoddi4 has undefined reference to .umul)
2011-11-04  Joel Sherrill  <joel.sherrill@oarcorp.com>

	PR target/50989
	* config.host (sparc-*-rtems*): Add sparc/t-softmul.

From-SVN: r180946
2011-11-04 12:57:40 +00:00
Ira Rosen ba65ae4288 Unrevert:
2011-10-24  Ira Rosen  <ira.rosen@linaro.org>

        PR tree-optimization/50730
        * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic
        block analysis if encountered unsupported data-ref.

From-SVN: r180945
2011-11-04 12:55:06 +00:00
Jason Merrill b25dd954c4 re PR c++/48370 (G++ fails to extend reference temporary lifetime in some situations)
PR c++/48370
	* call.c (extend_ref_init_temps, extend_ref_init_temps_1): New.
	(set_up_extended_ref_temp): Use it.  Change cleanup parm to VEC.
	(initialize_reference): Just call convert_like.
	* decl.c (grok_reference_init): Just call initialize_reference.
	(build_init_list_var_init): Remove.
	(check_initializer): Change cleanup parm to VEC.  Handle references
	like other types.  Call perform_implicit_conversion instead
	of build_init_list_var_init.  Don't use build_aggr_init for
	aggregate initialization of arrays.
	(cp_finish_decl): Change cleanup to VEC.
	* typeck2.c (store_init_value): Call extend_ref_init_temps.
	Use build_vec_init for non-constant arrays.
	* init.c (expand_aggr_init_1): Adjust.
	(build_vec_init): Avoid re-converting an initializer
	that's already digested.
	* mangle.c (mangle_ref_init_variable): Add a discriminator.
	* cp-tree.h: Adjust.
	* typeck.c (convert_for_initialization): Adjust.
	* decl2.c (maybe_emit_vtables): Adjust.

From-SVN: r180944
2011-11-04 08:54:08 -04:00
Arnaud Charlet 5972791c34 [multiple changes]
2011-11-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch2.adb (Expand_Entity_Reference): Do not set
	Atomic_Sync_Required for the case of a prefix of an attribute.
	* exp_ch4.adb (Expand_N_Explicit_Dereference): May require
	atomic synchronization
	(Expand_N_Indexed_Component): Ditto.
	(Expand_B_Selected_Component): Ditto.
	* sem_prag.adb (Process_Suppress_Unsuppress):
	Disable/Enable_Atomic_Synchronization can now occur for array
	types with pragma Atomic_Components.
	* sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur on
	N_Explicit_Dereference nodes and on N_Indexed_Component nodes.

2011-11-04  Gary Dismukes  <dismukes@adacore.com>

	* gnat_ugn.texi: Editorial corrections for gnattest section.

From-SVN: r180943
2011-11-04 13:04:55 +01:00
Rainer Orth 1a03203481 Restore c6x-elf bootstrap
* config/c6x/t-elf (LIB2ADDEH): Set.
	* config/c6x/t-c6x-elf: Remove.

From-SVN: r180942
2011-11-04 11:55:52 +00:00
Rainer Orth d385f772fe Use sol2-c[1n].S on more targets
* config/i386/sol2-ci.S: Rename to ...
	* config/i386/crti.S: ... this.
	* config/i386/sol2-cn.S: Rename to ...
	* config/i386/crtn.S: ... this.
	* config/sparc/sol2-ci.S: Rename to ...
	* config/sparc/crti.S: ... this.
	* config/sparc/sol2-cn.S: Rename to ...
	* config/sparc/crtn.S: ... this.
	* config/t-sol2 (CUSTOM_CRTIN): Remove.
	(crti.o, crtn.o): Remove.

From-SVN: r180941
2011-11-04 11:54:17 +00:00
Tom de Vries 5a042b4748 re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-11-04  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50763
	* gcc.dg/pr50763-5.c: New test.

From-SVN: r180940
2011-11-04 11:44:50 +00:00
Robert Dewar 8751a35c53 sem_prag.adb: Minor reformatting.
2011-11-04  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: Minor reformatting.
	* gnat_rm.texi: Update documentation for pragma Warnings (Off,
	"***") usage.
	* exp_ch2.adb (Expand_Entity_Reference): Only set
	Atomic_Sync_Required on entities that are variables. Doesn't
	make any sense on anything else.

From-SVN: r180939
2011-11-04 12:00:33 +01:00
Robert Dewar fb5d63c68a exp_ch2.adb (Expand_Entity_Reference): Extend handling of atomic sync to type case.
2011-11-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch2.adb (Expand_Entity_Reference): Extend handling of
	atomic sync to type case.
	* sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can
	apply to types.

From-SVN: r180938
2011-11-04 11:58:44 +01:00
Tom de Vries c2d1a4747c re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-11-04  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50763
	* g++.dg/pr50763-4.C: New test.

From-SVN: r180936
2011-11-04 10:56:39 +00:00
Arnaud Charlet a51cd0ece5 [multiple changes]
2011-11-04  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Warn_On_Useless_Assignment): More accurate test
	for call vs assign.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-11-04  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: Detect more cases of Long_Float inconsistencies at
	compile time.

2011-11-04  Matthew Heaney  <heaney@adacore.com>

	* Makefile.rtl, impunit.adb: Added a-sfecin.ads,
	* a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb],
	a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb]
	* a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb],
	a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb],
	a-sulcin.ad[sb]: New files.

2011-11-04  Geert Bosch  <bosch@adacore.com>

	* i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads,
	s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads,
	i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads,
	s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK.
	* gcc-interface/Makefile.in: Remove libgnala and related objects.

From-SVN: r180935
2011-11-04 11:55:41 +01:00
Jakub Jelinek 635c6321d4 i386.c (ix86_expand_vector_convert_uns_vsivsf): New function.
* config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
	function.
	* config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
	New prototype.
	* config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
	For floatunsv8siv8sf2 require TARGET_AVX2.

	* gcc.dg/torture/vec-cvt-1.c: Enable commented out inttoflttestui
	test.

From-SVN: r180934
2011-11-04 11:39:25 +01:00
Jakub Jelinek 2f2da9e931 i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add XORP argument.
* config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
	XORP argument.  Subtract 0x1p31 instead of 0x1p32.  Use normal
	signalling comparison instead of non-signalling.  Store into
	*XORP pseudo holding 0x80000000 integers if 0x1p31 has been
	subtracted and 0 otherwise.
	* config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
	Adjust prototype.
	* config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
	already for TARGET_SSE2.  Xor in vector initialized by
	ix86_expand_adjust_ufix_to_sfix_si at the end.
	(vec_pack_ufix_trunc_<mode>): Likewise.

	* gcc.dg/torture/vec-cvt-1.c: Enable flttointtestui test.

From-SVN: r180933
2011-11-04 11:37:04 +01:00
Jakub Jelinek 4a00c76146 tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle not just FLOAT_EXPR and FIX_TRUNC_EXPR...
* tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
	not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
	WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what
	vectorizable_type_demotion and vectorizable_type_promotion did.
	Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer
	is {,un}signed {char,short}.
	(vect_create_vectorized_demotion_stmts): Fix comment typo.  For
	recursive calls unconditionally use VEC_PACK_TRUNC_EXPR.
	Push vec_dest back to the vec_dsts vector at the end.
	(vect_create_vectorized_promotion_stmts): Don't recurse, do just
	one step.  Removed multi_step_cvt, vec_dsts, slp_node and
	prev_stmt_info arguments, add vec_dest argument.  Push always
	into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0
	with vec_tmp at the end after freeing old *vec_oprnd0 vector.
	(vectorizable_type_demotion, vectorizable_type_promotion): Removed.
	(vect_analyze_stmt): Don't call vectorizable_type_demotion and
	vectorizable_type_promotion.  Call vectorizable_conversion even
	for SLP bb vectorization.
	(vect_transform_stmt): Call vectorizable_conversion instead of
	vectorizable_type_demotion and vectorizable_type_promotion.
	(supportable_widening_operation): Clear *multi_step_cvt first,
	simplify c1/c2 computation, free *interm_types vector on failure.
	(supportable_narrowing_operation): Clear *multi_step_cvt first,
	free *interm_types vector on failure, handle multi-step
	FIX_TRUNC_EXPR.

	* gcc.dg/torture/vec-cvt-1.c: New test.

From-SVN: r180932
2011-11-04 11:35:44 +01:00
Eric Botcazou 25ec1790d7 decl.c (gnat_to_gnu_entity): Do not assert that the type of the parameters isn't dummy in type_annotate_only...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert
	that the type of the parameters isn't dummy in type_annotate_only mode.

From-SVN: r180931
2011-11-04 10:27:02 +00:00
Arnaud Charlet a31945d7ce [multiple changes]
2011-11-04  Matthew Heaney  <heaney@adacore.com>

	* a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb],
	a-coorma.ad[sb], a-ciorma.ad[sb], a-coormu.ad[sb], a-ciormu.ad[sb],
	a-cohama.ad[sb], a-cihama.ad[sb], a-cohase.ad[sb], a-cihase.ad[sb],
	a-convec.ad[sb], a-coinve.ad[sb] (Assign, Copy): New operations
	added to package.

2011-11-04  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb: Minor reformatting

2011-11-04  Gary Dismukes  <dismukes@adacore.com>

	* bindgen.adb (Gen_Elab_Calls): In the case of the AAMP target,
	initialize elaboration entities to zero when specs are processed.

From-SVN: r180930
2011-11-04 10:58:07 +01:00
Tristan Gingold 1ba878a991 fde-vms.c: Do not include md-unwind-support.h
2011-11-04  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/fde-vms.c: Do not include md-unwind-support.h

From-SVN: r180929
2011-11-04 09:25:41 +00:00
Tristan Gingold 735f469bdf alpha.c (alpha_write_linkage): Remove fundecl argument.
2011-11-04  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/alpha.c (alpha_write_linkage): Remove fundecl
	argument.  Conditionally generate crash debug info.  Adjust
	for alpha_funcs_tree removal.
	(machine_function): Add links field.
	(alpha_start_function): Conditionally generate crash debug info.
	(alpha_end_function): Adjust call to alpha_write_linkage.
	(alpha_funcs): Remove.
	(links_kind): Remove.
	(alpha_links): Remove num, target and lkind field.  Add func field.
	(alpha_links_tree): Remove.
	(alpha_funcs_tree): Remove.
	(alpha_need_linkage): Remove.
	(alpha_use_linkage): Change prototype.  Adjust.
	(alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL.
	Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro.
	* config/alpha/alpha-protos.h (alpha_use_linkage): Update.
	(alpha_need_linkage): Remove.
	* config/alpha/alpha.md: Update calls to alpha_use_linkage.
	Adjust calls to alpha_need_linkage.

From-SVN: r180928
2011-11-04 09:11:27 +00:00
Mikael Morin 75118c2ead re PR fortran/43829 (Scalarization of reductions)
PR fortran/43829
	* gfortran.dg/function_optimize_7.f90: Disable sum inlining.
	* gfortran.dg/inline_sum_1.f90: New.
	* gfortran.dg/inline_sum_2.f90: New.
	* gfortran.dg/inline_sum_bounds_check_1.f90: New.
	* gfortran.dg/inline_sum_bounds_check_2.f90: New.
	* gfortran.dg/inline_product_1.f90: New.

From-SVN: r180922
2011-11-04 00:45:48 +00:00
Kaz Kojima 02750c15b6 t-sh: Use $(gcc_compile) instead of $(compile).
* config/sh/t-sh: Use $(gcc_compile) instead of $(compile).

From-SVN: r180921
2011-11-04 00:41:58 +00:00
Mikael Morin 0c08de8f8b re PR fortran/43829 (Scalarization of reductions)
PR fortran/43829
	* trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic
	case in the assertion.
	* trans-intrinsic (enter_nested_loop): New function.
	(gfc_conv_intrinsic_arith): Support non-scalar cases.
	(nest_loop_dimension, walk_inline_intrinsic_arith): New functions.
	(walk_inline_intrinsic_function): Handle sum and product.
	(gfc_inline_intrinsic_function_p): Ditto.
	* trans.h (gfc_get_loopinfo): New macro.

From-SVN: r180920
2011-11-04 00:31:19 +00:00
Mikael Morin 44d23d9e74 trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent expression variable.
* trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent
	expression variable.  Use it.

From-SVN: r180919
2011-11-04 00:23:14 +00:00
Mikael Morin b1a65f62f9 trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop pointer.
* trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop
	pointer.  Use it.

From-SVN: r180918
2011-11-04 00:21:14 +00:00
Mikael Morin bc4b3d2dfd trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling cleanup.
* trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling
	cleanup.

From-SVN: r180917
2011-11-04 00:19:11 +00:00
GCC Administrator 6492221c6c Daily bump.
From-SVN: r180916
2011-11-04 00:18:17 +00:00
Mikael Morin a831ffb8a2 trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions.
* trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions.

From-SVN: r180913
2011-11-04 00:17:07 +00:00
Mikael Morin 93ee6382c7 frontend-passes.c (cfe_register_funcs): Return early in the case of an inline intrinsic function.
* frontend-passes.c (cfe_register_funcs): Return early in the case
	of an inline intrinsic function.
	(optimize_binop_array_assignment): Skip optimization in the case of
	an inline intrinsic function.

From-SVN: r180911
2011-11-04 00:14:58 +00:00
Mikael Morin 00b9bf8b7d array.c (match_subscript): Skip whitespaces before setting locus.
* array.c (match_subscript): Skip whitespaces before setting locus.
	* matchexp.c (match_level_1): Ditto.

From-SVN: r180910
2011-11-04 00:12:54 +00:00
Mikael Morin aa6ad95c05 trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's temporary rank to the loop rank.
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's
	temporary rank to the loop rank. Mark ss chains for multiple loop
	if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
	and start another.

From-SVN: r180909
2011-11-04 00:11:39 +00:00
Mikael Morin 610f068d4c trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's temporary rank to the loop rank.
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's
	temporary rank to the loop rank. Mark ss chains for multiple loop
	if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
	and start another.

From-SVN: r180908
2011-11-04 00:09:27 +00:00
Mikael Morin 89d65e2d2f trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate offset twice in generated code.
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate
	offset twice in generated code.

From-SVN: r180907
2011-11-04 00:05:51 +00:00
Mikael Morin fafcf9e64b trans-expr.c (gfc_conv_procedure_call): Handle temporaries for arguments to elemental calls.
* trans-expr.c (gfc_conv_procedure_call): Handle temporaries for
	arguments to elemental calls.
	* trans-stmt.c (replace_ss): New function.
	(gfc_conv_elemental_dependencies): Remove temporary loop handling.
	Create a new ss for the temporary and replace the original one with it.
	Remove fake array references. Recalculate all offsets.

From-SVN: r180906
2011-11-04 00:04:27 +00:00
Mikael Morin 121c82c9ac trans-array.h (gfc_free_ss, [...]): New prototypes.
* trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes.
	* trans-array.c (gfc_free_ss): Remove forward declaration.
	Make non-static.
	(set_delta, gfc_set_delta): Remove forward declaration.
	Make non-static and rename the former to the later. Update uses.

From-SVN: r180905
2011-11-04 00:00:23 +00:00
Mikael Morin 9645e798ba trans.h (gfc_inline_intrinsic_function_p): Move prototype...
* trans.h (gfc_inline_intrinsic_function_p): Move prototype...
	* gfortran.h (gfc_inline_intrinsic_function_p): ... here.
	* dependency.c (gfc_check_argument_var_dependency): Check dependencies
	of inline intrinsics' arguments.

From-SVN: r180904
2011-11-03 23:58:20 +00:00
Mikael Morin 8e24054ba4 trans-array.c (gfc_trans_preloop_setup): New pointers to outer dimension's ss and loop.
* trans-array.c (gfc_trans_preloop_setup): New pointers to outer
	dimension's ss and loop. Use them.

From-SVN: r180903
2011-11-03 23:56:20 +00:00
Mikael Morin d769d0df73 trans-array.c (outermost_loop): New function.
* trans-array.c (outermost_loop): New function.
	(gfc_trans_array_constructor, gfc_set_vector_loop_bounds,
	gfc_add_loop_ss_code): Put generated code out of the outermost loop.

From-SVN: r180902
2011-11-03 23:53:42 +00:00
Mikael Morin f03077b019 trans-array.c (constant_array_constructor_loop_size): Handle multiple loops.
* trans-array.c (constant_array_constructor_loop_size):
	Handle multiple loops.

From-SVN: r180901
2011-11-03 23:51:04 +00:00
Mikael Morin b2f82aaa78 trans-array.c (get_rank, [...]): New functions.
* trans-array.c (get_rank, get_loop_upper_bound_for_array):
	New functions.
	(gfc_trans_array_constructor): Handle multiple loops.

From-SVN: r180900
2011-11-03 23:48:29 +00:00
Mikael Morin 4616ef9b85 trans.h (struct gfc_loopinfo): New field parent.
* trans.h (struct gfc_loopinfo): New field parent.
	* trans-array.c (gfc_cleanup_loop): Free nested loops.
	(gfc_add_ss_to_loop): Set nested_loop's parent loop.
	(gfc_trans_array_constructor): Update assertion.
	(gfc_conv_loop_setup): Ditto.

From-SVN: r180899
2011-11-03 23:45:19 +00:00
Mikael Morin 30ae600f1f trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss.
* trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss.
	Call recursively gfc_add_loop_ss_code for all the nested loops.
	(gfc_conv_ss_startstride): Only get the descriptor for the outermost
	ss. Call recursively gfc_conv_ss_startstride for all the nested loops.
	(set_loop_bounds): Call recursively for all the nested loops.
	(set_delta): Ditto.

From-SVN: r180898
2011-11-03 23:41:28 +00:00
Mikael Morin 9d75804367 trans.h (struct gfc_loopinfo): New fields nested and next.
* trans.h (struct gfc_loopinfo): New fields nested and next.
	* trans-array.c (gfc_add_ss_to_loop): Update list of nested list if
	ss has non-null nested_ss field.

From-SVN: r180897
2011-11-03 23:39:11 +00:00
Mikael Morin 06cd4e1b5a trans-array.c (gfc_trans_create_temp_array): Loop over the parents.
* trans-array.c (gfc_trans_create_temp_array): Loop over the parents.

From-SVN: r180895
2011-11-03 23:37:24 +00:00
Mikael Morin d6b3a0d72c trans-array.c (get_array_ref_dim, [...]): Rename the former to the latter and loop over the parents.
* trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): 
	Rename the former to the latter and loop over the parents.
	(innermost_ss): New function.
	(get_array_ref_dim_for_loop_dim): New function.
	(gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim.
	(set_loop_bounds): Use get_array_dim_for_loop_dim).

From-SVN: r180894
2011-11-03 23:34:53 +00:00