Commit Graph

99492 Commits

Author SHA1 Message Date
GCC Administrator c460cd49da Daily bump.
From-SVN: r158199
2010-04-11 00:17:00 +00:00
Uros Bizjak 27431d88dd i386.md (ashr<mode>3): Macroize expander from ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
* config/i386/i386.md (ashr<mode>3): Macroize expander from
	ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
	(*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
	pattern from *ashr{di,ti}3_1 and corresponding splitters using
	DWI mode iterator.
	(*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
	from corresponding peephole2 patterns.
	(ashrdi3_cvt): Rename from ashrdi3_63_rex64.
	(ashrsi3_cvt): Rename from ashrsi3_31.
	(*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
	(x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
	and x86_64_shift_adj_3 using SWI48 mode iterator.
	(*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
	*ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
	and *ashrdi3_cmp_rex64 using SWI mode iterator.
	(*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
	(*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
	*ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
	and *ashrdi3_cmp_rex64 using SWI mode iterator.
	(*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
	(*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
	*ashrdi3_one_bit_cconly_rex64. Macroize insn from
	*ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
	SWI mode iterator.
	(sign_extend splitters): Update for renamed ashr{di,si}3_patterns.
	* config/i386/i386.c (ix86_split_ashr): Update for renamed
	x86_shift<mode>_adj_3 expander.

From-SVN: r158195
2010-04-10 19:20:47 +02:00
Jie Zhang a6d57223b1 re PR target/43417 (SH: 4.4 ICE in final_scan_insn, at final.c:2604)
PR target/43417
	* gcc.target/sh/pr43417.c: New test.

From-SVN: r158192
2010-04-10 15:12:14 +00:00
Tobias Burnus 687ea68f03 re PR fortran/43591 (PPC: internal compiler error: in gfc_traverse_expr, at fortran/expr.c:3604)
2010-04-10  Tobias Burnus  <burnus@net-b.de>

        PR fortran/43591
        * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
        proc-pointers and type-bound procedures.
        (gfc_specification_expr): Check proc-pointers for pureness.

2010-04-10  Tobias Burnus  <burnus@net-b.de>

        PR fortran/43591
        * gfortran.dg/spec_expr_6.f90: New test.

From-SVN: r158191
2010-04-10 16:24:46 +02:00
Wei Guozhi 85c9bcd418 re PR target/42601 (Simplify code to address function static variables with option -fpic)
PR target/42601
	* config/arm/arm.c (arm_pic_static_addr): New function.
	(legitimize_pic_address): Call arm_pic_static_addr when it detects
	a static symbol.
	(arm_output_addr_const_extra): Output expression for new pattern.
	* config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.

From-SVN: r158189
2010-04-10 13:13:47 +00:00
Bernd Schmidt 52c1d580dd reload1.c (eliminate_regs_in_insn): Don't restore an operand if doing so would replace the entire pattern.
* reload1.c (eliminate_regs_in_insn): Don't restore an operand
	if doing so would replace the entire pattern.

From-SVN: r158188
2010-04-10 12:33:17 +00:00
Bernd Schmidt 4143fd3683 Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
* Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
	* web.c: Include "insn-config.h" and "recog.h".
	(union_match_dups): New function.
	(web_main): Call it.
	(union_defs): Don't try to recognize match_dups.

From-SVN: r158187
2010-04-10 12:30:29 +00:00
Bernd Schmidt 979740a089 ira-costs.c (record_reg_classes): Ignore alternatives that are not enabled.
* ira-costs.c (record_reg_classes): Ignore alternatives that are
	not enabled.

From-SVN: r158186
2010-04-10 12:28:25 +00:00
GCC Administrator 93c02eae9a Daily bump.
From-SVN: r158181
2010-04-10 00:16:59 +00:00
Uros Bizjak ef0f4a034d re PR target/43707 (gcc.c-torture/execute/ashldi-1.c)
PR target/43707
	PR target/43709
	* config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
	and splitter pattern.  Change splitter operand 1 predicate to
	nonmemory_operand.

From-SVN: r158177
2010-04-09 23:12:42 +02:00
Martin Jambor add5d9980a ipa-cp.c (ipcp_lats_are_equal): Return true also if the two lattices are addresses of CONST_DECLs with the same...
2010-04-09  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
	lattices are addresses of CONST_DECLs with the same initial value.
	(ipcp_print_all_lattices): Print values of CONST_DECLs.
	* ipa-prop.c (ipa_print_node_jump_functions): Likewise.

From-SVN: r158176
2010-04-09 22:24:11 +02:00
Eric Botcazou 43ba743ca9 loop-invariant.c (replace_uses): New static function.
* loop-invariant.c (replace_uses): New static function.
	(move_invariant_reg): Use it to ensure we can replace the uses.

From-SVN: r158175
2010-04-09 20:13:59 +00:00
Hariharan Sandanagobalane c3fd7b4dbf picochip.c (picochip_rtx_costs): Use correct function template.
* config/picochip/picochip.c (picochip_rtx_costs): Use correct function
          template.
          (picochip_override_options): Enable section anchors only above O1.
          (picochip_reorg): Fixed a couple of build warnings.

From-SVN: r158174
2010-04-09 19:25:03 +00:00
Rainer Orth fcf5268611 configure.ac (plugin -rdynamic test): Log result.
* configure.ac (plugin -rdynamic test): Log result.
	* configure: Regenerate.
	* config/sol2.h (LINK_SPEC): Handle -rdynamic.
	(RDYNAMIC_SPEC): Define.
	* config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.

From-SVN: r158173
2010-04-09 17:35:18 +00:00
Rainer Orth 55c4f71558 configure.ac: Determine Sun ld version numbers.
* configure.ac: Determine Sun ld version numbers.
	(comdat_group): Restrict GNU ld version checks to gld.
	(comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
	(enable_comdat): Support --enable-comdat.
	* configure: Regenerate.
	* doc/install.texi (Configuration): Document --enable-comdat.

From-SVN: r158172
2010-04-09 17:32:54 +00:00
Rainer Orth 62e0852342 sol2-gld.h: Remove SPARC reference.
* config/sparc/sol2-gld.h: Remove SPARC reference.
	Rename ...
	* config/sol2-gld.h: ... here.
	* config.gcc (sparc*-*-solaris2*): Reflect this.
	(i[34567]86-*-solaris2*): Use it.

From-SVN: r158171
2010-04-09 17:02:52 +00:00
Steve Ellcey 034288ef5c ia64.c (ia64_dfa_new_cycle): Remove unused variable setup_clocks_p.
2010-04-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
	setup_clocks_p.
	(final_emit_insn_group_barriers): Remove unused variable prev_insn.

From-SVN: r158170
2010-04-09 16:25:21 +00:00
Manuel López-Ibáñez d8a12e8478 re PR preprocessor/43195 (#pragma once and -H)
2010-04-09  Manuel López-Ibáñez <manu@gcc.gnu.org>

	PR cpp/43195
libcpp/
	* files.c (report_missing_guard): Test for #pragma once.
testsuite/
	* gcc.dg/cpp/pr43195.c: New.
	* gcc.dg/cpp/pr43195.h: New.

From-SVN: r158169
2010-04-09 16:08:42 +00:00
Manuel López-Ibáñez d0b8780d9f re PR other/42965 (no "warnings being treated as errors" for individual -Werror=x options)
2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 42965
	* diagnostic.c (diagnostic_initialize): Initialize
	some_warnings_are_errors.
	(diagnostic_finish): New.
	(diagnostic_action_after_output): Call it before exiting.
	(diagnostic_report_diagnostic): Do not print message here. Set
	some_warnings_are_errors.
	* diagnostic.h (diagnostic_context): Delete
	issue_warnings_are_errors_message. Add some_warnings_are_errors.
	(diagnostic_finish): Declare.
	* toplev.c (toplev_main): Call it before exit.
testsuite/
	* gcc.dg/Werror-6.c: Adjust.
	* gcc.dg/Werror-implicit-function-declaration.c: Likewise.
	* gcc.dg/Werror-4.c: Likewise.
	* gcc.dg/Wdeclaration-after-statement-3.c: Likewise.
	* gcc.dg/Wswitch-enum-error.c: Likewise.
	* gcc.dg/Wpointer-arith.c: Likewise.
	* gcc.dg/Wfatal.c: Likewise.
	* gcc.dg/Wswitch-error.c: Likewise.
	* g++.dg/warn/unused-result1-Werror.c: Likewise.
	* gcc.dg/Werror-9.c: Delete. Duplicate of Werror-4.c.
	* gcc.dg/cpp/warn-undef-2.c: Likewise.
	* gcc.dg/cpp/warn-traditional-2.c: Likewise.
	* gcc.dg/cpp/warn-comments-2.c: Likewise.
	* gcc.dg/cpp/warn-variadic-2.c: Likewise.
	* gcc.dg/cpp/warning-directive-2.c: Likewise.
	* gcc.dg/cpp/warn-long-long-2.c: Likewise.
	* gcc.dg/cpp/warn-deprecated-2.c: Likewise.
	* gcc.dg/cpp/warn-multichar-2.c: Likewise.
	* gcc.dg/cpp/warn-normalized-3.c: Likewise.
	* gcc.dg/cpp/warn-cxx-compat-2.c: Likewise.
	* gcc.dg/cpp/warn-trigraphs-3.c: Likewise.
	* gcc.dg/cpp/warn-unused-macros-2.c: Likewise.
	* gcc.dg/cpp/warn-trigraphs-4.c: Likewise.
	* gcc.dg/cpp/warn-redefined-2.c: Likewise.
	* g++.dg/cpp/warning-directive-2.C: Likewise.
	* gfortran.dg/warning-directive-2.F90: Likewise.

From-SVN: r158168
2010-04-09 15:45:52 +00:00
Jason Merrill cb6addf4a6 re PR c++/42623 ([C++0x] Function template default arguments: Invalid expressions are allowed)
PR c++/42623
	* c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
	for incomplete type.

From-SVN: r158167
2010-04-09 11:20:58 -04:00
Jason Merrill 93e9807aa5 re PR c++/41788 (-Wpacked option changes the layout of packed non-POD structs)
PR c++/41788
	* stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
	based on a warning flag.

From-SVN: r158166
2010-04-09 11:19:17 -04:00
Richard Guenther 7436722073 tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
2010-04-09  Richard Guenther  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): Dump
	TYPE_VECTOR_SUBPARTS.

From-SVN: r158165
2010-04-09 13:44:49 +00:00
Iain Sandoe 8351bca7e4 re PR bootstrap/43684 (multiple 'set but not used' errors.)
gcc/
2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>

	PR bootstrap/43684
	* varasm.c (default_assemble_visibility): Wrap vars that are 
	set, but unused, by targets without GAS.
	* config/rs6000/rs6000.c: (paired_emit_vector_compare): 
	Remove set, but unused, vars.
	(rs6000_legitimize_tls_address): Likewise.
	(altivec_expand_dst_builtin): Likewise.
	* config/darwin.c (machopic_classify_symbol): Likewise.
	(machopic_indirection_name): Likewise.

gcc/fortran/
2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>

	PR bootstrap/43684
	* gfortranspec.c (lang_specific_driver): Do not expose vars 
	only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
	for such.

From-SVN: r158164
2010-04-09 13:34:33 +00:00
Uros Bizjak 014753cc4d i386.md (DWI): New mode iterator.
* config/i386/i386.md (DWI): New mode iterator.
	(S): New mode attribute.
	(shift_operand): Ditto.
	(shift_immediate_operand): Ditto.
	(ashl_input_operand): Ditto.
	(ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
	using SDWIM mode iterator.
	(*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
	pattern from *ashl{di,ti}3_1 and corresponding splitters using
	DWI mode iterator.
	(*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
	from corresponding peephole2 patterns.
	(x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
	and x86_64_shift_adj_1 using SWI48 mode iterator.
	(x86_shift<mode>_adj_2): Ditto.
	(*ashldi3_1_rex64): Split TYPE_LEA pattern.
	(*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
	using SWI48 mode iterator.
	(*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
	*ashldi3_cmp_rex64 using SWI mode iterator.
	(*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
	*ashldi3_cconly_rex64 using SWI mode iterator.
	* config/i386/i386.c (ix86_split_ashl): Update for renamed
	x86_shift<mode>_adj_{1,2}.
	(ix86_split_ashr): Ditto.
	(ix86_split_lshr): Ditto.

From-SVN: r158163
2010-04-09 15:29:24 +02:00
Richard Guenther 88dd71504e target.h (builtin_conversion): Pass in input and output types.
2010-04-09  Richard Guenther  <rguenther@suse.de>

	* target.h (builtin_conversion): Pass in input and output types.
	* targhooks.c (default_builtin_vectorized_conversion): Adjust.
	* targhooks.h (default_builtin_vectorized_conversion): Likewise.
	* tree-vect-stmts.c (vectorizable_conversion): Adjust.
	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.

	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
	Handle AVX modes.
	* config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.

From-SVN: r158162
2010-04-09 13:21:43 +00:00
Eric Botcazou 7d7a1fe859 gigi.h (maybe_variable): Delete.
* gcc-interface/gigi.h (maybe_variable): Delete.
	(protect_multiple_eval): Likewise.
	(maybe_stabilize_reference): Likewise.
	(gnat_save_expr): Declare.
	(gnat_protect_expr): Likewise.
	(gnat_stabilize_reference): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use
	gnat_stabilize_reference.
	(maybe_variable): Delete.
	(elaborate_expression_1): Use gnat_save_expr.
	* gcc-interface/trans.c (Attribute_to_gnu): Use gnat_protect_expr.
	(call_to_gnu): Pass NULL to gnat_stabilize_reference.
	(gnat_to_gnu) <N_Object_Declaration>: Use gnat_save_expr.
	<N_Slice>: Use gnat_protect_exp.
	<N_Selected_Component>: Pass NULL to gnat_stabilize_reference.
	<N_In>: Use gnat_protect_expr.
	Pass NULL to gnat_stabilize_reference.
	(build_unary_op_trapv): Use gnat_protect_expr.
	(build_binary_op_trapv): Likewise.
	(emit_range_check): Likewise.
	(emit_index_check): Likewise.
	(convert_with_check): Likewise.
	(protect_multiple_eval): Move to utils2.c file.
	(maybe_stabilize_reference): Merge into...
	(gnat_stabilize_reference): ...this.  Move to utils2.c file.
	(gnat_stabilize_reference_1): Likewise.
	* gcc-interface/utils.c (convert_to_fat_pointer): Use gnat_protect_expr
	instead of protect_multiple_eval.
	* gcc-interface/utils2.c (compare_arrays): Likewise.
	(nonbinary_modular_operation): Likewise.
	(maybe_wrap_malloc): Likewise.
	(build_allocator): Likewise.
	(gnat_save_expr): New function.
	(gnat_protect_expr): Rename from protect_multiple_eval.  Early return
	in common cases.  Propagate TREE_READONLY onto dereferences.
	(gnat_stabilize_reference_1): Move from trans.c file.
	(gnat_stabilize_reference): Likewise.

From-SVN: r158159
2010-04-09 10:49:46 +00:00
Richard Guenther 3f2060fd38 re PR target/43152 (vcond<> not supported for AVX float modes)
2010-04-09  Richard Guenther  <rguenther@suse.de>

	PR target/43152
	* config/i386/sse.md (vcond<mode>): Handle AVX modes as well.

From-SVN: r158158
2010-04-09 10:41:37 +00:00
Richard Guenther b690cc0f33 tree-vectorizer.h (struct _stmt_vec_info): Document that vectype is the type of the LHS.
2010-04-09  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.h (struct _stmt_vec_info): Document
	that vectype is the type of the LHS.
	(supportable_widening_operation, supportable_narrowing_operation): 
	Get both input and output vector types as arguments.
	(vect_is_simple_use_1): Declare.
	(get_same_sized_vectype): Likewise.
	* tree-vect-loop.c (vect_determine_vectorization_factor):
	Set STMT_VINFO_VECTYPE to the vector type of the def.
	(vectorizable_reduction): Adjust.
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern):
	Adjust.  Specify the output vector type.
	(vect_pattern_recog_1): Adjust.
	* tree-vect-stmts.c (get_same_sized_vectype): New function.
	(vectorizable_call): Adjust.
	(vectorizable_conversion): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion): Likewise.
	(vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
	the def.
	(vect_is_simple_use_1): New function.
	(supportable_widening_operation): Get both input and output
	vector types.
	(supportable_narrowing_operation): Likewise.
	* tree-vect-slp.c (vect_schedule_slp_instance): Adjust.

From-SVN: r158157
2010-04-09 10:40:14 +00:00
Eric Botcazou ced572837c gigi.h (gnat_mark_addressable): Rename parameter.
* gcc-interface/gigi.h (gnat_mark_addressable): Rename parameter.
	* gcc-interface/decl.c (maybe_variable): Do not set TREE_STATIC on _REF
	node.  Use the type of the operand to set TREE_READONLY.
	* gcc-interface/trans.c (Identifier_to_gnu): Do not set TREE_STATIC on
	_REF node.  Do not overwrite TREE_READONLY.
	(call_to_gnu): Rename local variable and fix various nits.  In the
	copy-in/copy-out case, build the SAVE_EXPR manually.
	(convert_with_check): Call protect_multiple_eval in lieu of save_expr
	and fold the computations.
	(protect_multiple_eval): Always save entire fat pointers.
	(maybe_stabilize_reference): Minor tweaks.
	(gnat_stabilize_reference_1): Likewise.  Do not deal with tcc_constant,
	tcc_type and tcc_statement.
	* gcc-interface/utils.c (convert_to_fat_pointer): Call
	protect_multiple_eval in lieu of save_expr.
	(convert): Minor tweaks.
	(maybe_unconstrained_array): Do not set TREE_STATIC on _REF node.
	(builtin_type_for_size): Call gnat_type_for_size directly.
	* gcc-interface/utils2.c (contains_save_expr_p): Delete.
	(contains_null_expr): Likewise
	(gnat_build_constructor): Do not call it.
	(compare_arrays): Deal with all side-effects, use protect_multiple_eval
	instead of gnat_stabilize_reference to protect the operands.
	(nonbinary_modular_operation): Call protect_multiple_eval in lieu of
	save_expr.
	(maybe_wrap_malloc): Likewise.
	(build_allocator): Likewise.
	(build_unary_op) <INDIRECT_REF>: Do not set TREE_STATIC on _REF node.
	(gnat_mark_addressable): Rename parameter.

From-SVN: r158156
2010-04-09 10:10:25 +00:00
Kai Tietz 3e65f25191 cygming.h (TARGET_OS_CPP_BUILTINS): Add __thiscall and _thiscall as predefined macros.
2010-04-09  Kai Tietz  <kai.tietz@onevision.com>

        * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
        __thiscall and _thiscall as predefined macros.
        * config/i386/i386.c (ix86_handle_cconv_attribute): Add
        thiscall attribute handling.
        (ix86_comp_type_attributes): Likewise.
        (ix86_function_regparm): Likewise.
        (ix86_return_pops_args): Likewise.
        (init_cumulative_args): Likewise.
        (find_drap_reg): Likewise.
        (ix86_static_chain): Likewise.
        (x86_this_parameter): Likewise.
        (x86_output_mi_thunk): Likewise.
        (ix86_attribute_table): Add description for thiscall attribute.
        * config/i386/i386.h (ix86_args): Adjust comment for member
        fastcall.
        * doc/extend.texi: Add documentation for thiscall.

From-SVN: r158155
2010-04-09 10:58:00 +02:00
Kai Tietz c688a8b0d7 pr35504.C: Add check for thiscall.
2010-04-09  Kai Tietz  <kai.tietz@onevision.com>

        * g++.dg/other/pr35504.C: Add check for thiscall.
        * g++.dg/torture/stackalign/eh-thiscall-1.C: New.
        * gcc.dg/torture/stackalign/thiscall-1.c: New.

From-SVN: r158153
2010-04-09 10:52:54 +02:00
Manuel López-Ibáñez dc8d273907 re PR c++/28584 (Cast to pointer from integer of different size)
2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/28584
	* c.opt (Wint-to-pointer-cast): Available in C++.
	* doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
cp/
	* typeck.c (cp_build_c_cast): Warn for casting integer to larger
	pointer type.
testsuite/
	* gcc.dg/Wint-to-pointer-cast-1.c: Move to...
	* c-c++-common/Wint-to-pointer-cast-1.c: ...  here.
	* gcc.dg/Wint-to-pointer-cast-2.c: Move to...	
	* c-c++-common/Wint-to-pointer-cast-2.c: ...  here.
	* gcc.dg/Wint-to-pointer-cast-3.c: Move to...	
	* c-c++-common/Wint-to-pointer-cast-3.c: ...  here. Update.
	* g++.old-deja/g++.mike/warn1.C: Add -Wno-int-to-pointer-cast.
	* g++.dg/other/increment1.C: Likewise.

From-SVN: r158150
2010-04-09 07:49:41 +00:00
Tobias Burnus d3a9eea2c0 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-09  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * decl.c (variable_decl, match_attr_spec): Fix setting the array
        spec.
        * array.c (match_subscript,gfc_match_array_ref): Add coarray
        * support.
        * data.c (gfc_assign_data_value): Ditto.
        * expr.c (gfc_check_pointer_assign): Add check for coarray
        * constraint.
        (gfc_traverse_expr): Traverse also through codimension expressions.
        (gfc_is_coindexed, gfc_has_ultimate_allocatable,
        gfc_has_ultimate_pointer): New functions.
        * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for
        * coarrays.
        (gfc_array_ref): Add codimen.
        (gfc_array_ref): Add in_allocate.
        (gfc_is_coindexed, gfc_has_ultimate_allocatable,
        gfc_has_ultimate_pointer): Add prototypes.
        * interface.c (compare_parameter, compare_actual_formal,
        check_intents): Add coarray constraints.
        * match.c (gfc_match_iterator): Add coarray constraint.
        * match.h (gfc_match_array_ref): Update interface.
        * primary.c (gfc_match_varspec): Handle codimensions.
        * resolve.c (coarray_alloc, inquiry_argument): New static
        * variables.
        (check_class_members): Return gfc_try instead for error recovery.
        (resolve_typebound_function,resolve_typebound_subroutine,
        check_members): Handle return value of check_class_members.
        (resolve_structure_cons, resolve_actual_arglist, resolve_function,
        check_dimension, compare_spec_to_ref, resolve_array_ref,
        resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
        resolve_allocate_expr, resolve_ordinary_assign): Add coarray
        support.
        * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
        Skip over coarray refs.
        (gfc_array_allocate) Add support for references containing coindexes.
        * trans-expr.c (gfc_add_interface_mapping): Copy coarray
        * attribute.
        (gfc_map_intrinsic_function): Ignore codimensions.

2010-04-09  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray_7.f90: New test.
        * gfortran.dg/coarray_8.f90: New test.

From-SVN: r158149
2010-04-09 07:54:29 +02:00
Bud Davis 824935eed3 re PR fortran/28039 (Warn when ignoring extra characters in the format specification)
2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>

	PR fortran/28039
	* gfortran.dg/fmt_with_extra.f: Remove xfail and update test.

From-SVN: r158148
2010-04-09 03:25:09 +00:00
Bud Davis d0a2c5a9e7 re PR fortran/28039 (Warn when ignoring extra characters in the format specification)
2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>

	PR fortran/28039
	* io.c (check_format_string):  Added check for additional non 
	blank characters after the format string was successfully 
	parsed.
	* io.c (check_format): Changed the error messages for positive
	int required and period required to drop through the error logic
	and report with gfc_error instead of gfc_error_now.  Corrected
	format postion for hollerith strings.

From-SVN: r158147
2010-04-09 02:03:10 +00:00
GCC Administrator c02105beb3 Daily bump.
From-SVN: r158143
2010-04-09 00:17:20 +00:00
Eric Botcazou d47d0a8d97 tree.h (TREE_ADDRESSABLE): Document its effect for function types.
* tree.h (TREE_ADDRESSABLE): Document its effect for function types.
	* calls.c (expand_call): Pass the function type to aggregate_value_p.
	* function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
	the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
	function type instead.  Reorder and simplify checks.

	* gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
ada/
	* gcc-interface/ada-tree.h (TYPE_RETURNS_UNCONSTRAINED_P): Rename into.
	(TYPE_RETURN_UNCONSTRAINED_P): ...this.
	(TYPE_RETURNS_BY_REF_P): Rename into.
	(TYPE_RETURN_BY_DIRECT_REF_P): ...this.
	(TYPE_RETURNS_BY_TARGET_PTR_P): Delete.
	* gcc-interface/gigi.h (create_subprog_type): Adjust parameter names.
	(build_return_expr): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>:
	Rename local variables.  If the return Mechanism is By_Reference, pass
	return_by_invisible_ref_p to create_subprog_type instead of toggling
	TREE_ADDRESSABLE.  Test return_by_invisible_ref_p in order to annotate
	the mechanism.  Use regular return for contrained types with non-static
	size and return by invisible reference for unconstrained return types
	with default discriminants.  Update comment.
	* gcc-interface/trans.c (Subprogram_Body_to_gnu): If the function
	returns by invisible reference, turn the RESULT_DECL into a pointer.
	Do not handle DECL_BY_REF_P in the CICO case here.
	(call_to_gnu): Remove code handling return by target pointer.  For a
	function call, if the return type has non-constant size, generate the
	assignment with an INIT_EXPR.
	(gnat_to_gnu) <N_Return_Statement>: Remove dead code in the CICO case.
	If the function returns by invisible reference, build the copy return
	operation manually.
	(add_decl_expr): Initialize the variable with an INIT_EXPR.
	* gcc-interface/utils.c (create_subprog_type): Adjust parameter names.
	Adjust for renaming of macros.  Copy the node only when necessary.
	(create_subprog_decl): Do not toggle TREE_ADDRESSABLE on the return
	type, only change DECL_BY_REFERENCE on the RETURN_DECL.
	(convert_from_reference): Delete.
	(is_byref_result): Likewise.
	(gnat_genericize_r): Likewise.
	(gnat_genericize): Likewise.
	(end_subprog_body): Do not call gnat_genericize.
	* gcc-interface/utils2.c (build_binary_op) <INIT_EXPR>: New case.
	(build_return_expr): Adjust parameter names, logic and comment.

From-SVN: r158139
2010-04-08 20:16:36 +00:00
Jing Yu dc5ee869f5 Fix a problematic logic at unswitch-loops pass.
2010-04-07  Jing Yu  <jingyu@google.com>
            Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/42720
	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
	loop unswitch conditions here from
	(tree_unswitch_single_loop).

Co-Authored-By: Zdenek Dvorak <ook@ucw.cz>

From-SVN: r158138
2010-04-08 18:16:57 +00:00
Sebastian Pop 98c07c54a0 Fix comments, simplify logic.
2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Fix comments and simplify logic.

From-SVN: r158136
2010-04-08 17:32:23 +00:00
Sebastian Pop 6cbcfa9d67 Remove unused parameter.
2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
	(tree_if_conversion): Same.  Update call to if_convertible_loop_p.
	(main_tree_if_conversion): Update call to tree_if_conversion.

From-SVN: r158135
2010-04-08 17:32:17 +00:00
Manuel López-Ibáñez 1401cf37c0 re PR driver/42485 (-V switch broken)
2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 42485
	* doc/invoke.texi (-b,-V): Delete.
	* doc/tm.texi: Do not mention -b.
	* gcc.c (display_help): Delete -b and -V.
	(process_command): Delete -b and -V.
	* gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.

From-SVN: r158134
2010-04-08 17:21:26 +00:00
Christian Borntraeger 40ac4f73fa Implement target hook for loop unrolling
2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
            Wolfgang Gellerich  <gellerich@de.ibm.com>

        Implement target hook for loop unrolling
        * target.h (loop_unroll_adjust): Add a new target hook function.
        * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
        * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
        * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
        (s390_loop_unroll_adjust): Implement the new target hook for s390.
        * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll target hook
        (decide_unroll_stupid): Likewise.


Co-Authored-By: Wolfgang Gellerich <gellerich@de.ibm.com>

From-SVN: r158132
2010-04-08 15:07:57 +00:00
Rainer Orth 07c60ef701 re PR target/43643 (gcc -m64 -pg corrupts %rdx / %rcx register)
gcc:
	PR target/43643
	* config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.

	gcc/testsuite:
	PR target/43643
	* gcc.dg/pr43643.c: New test.

From-SVN: r158130
2010-04-08 14:48:46 +00:00
Tobias Burnus 3e2f637e5c module.c (use_iso_fortran_env_module): Fix standard check.
2010-04-08  Tobias Burnus  <burnus@net-b.de>

        * module.c (use_iso_fortran_env_module): Fix standard check.

2010-04-08  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/iso_fortran_env_6.f90: Add more checks.

From-SVN: r158129
2010-04-08 16:44:37 +02:00
Rainer Orth dd178909bb install.texi (Specific, [...]): Fix grammar.
* doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
	(Specific, *-*-solaris2*): Likewise.
	Don't prefer Sun as over GNU as.

From-SVN: r158127
2010-04-08 14:41:43 +00:00
Wolfgang Gellerich cc6ae6a1e6 s390.c (override_options): Adjust the z10 defaults for max-unroll-times...
2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.c (override_options): Adjust the z10
          defaults for max-unroll-times, max-completely-peeled-insns
          and max-completely-peel-times.

From-SVN: r158122
2010-04-08 11:45:34 +00:00
Andreas Krebbel adfa3cd32b s390.c (s390_expand_movmem): Issue prefetch instructions for z10.
2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_expand_movmem): Issue prefetch
	instructions for z10.
	(s390_expand_setmem): Likewise.
	(s390_expand_cmpmem): Likewise.

From-SVN: r158116
2010-04-08 11:23:23 +00:00
Richard Guenther 84ae6d7ba5 re PR tree-optimization/43679 (ice in gen_lsm_tmp_name, at tree-ssa-loop-im.c:1812)
2010-04-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43679
	* tree-ssa-pre.c (eliminate): Only propagate copies.

	* gcc.c-torture/compile/pr43679.c: New testcase.

From-SVN: r158112
2010-04-08 10:21:23 +00:00
Jakub Jelinek 5a905a2b23 re PR bootstrap/43681 (bootstrap fails with "unused" var message for an apparently used var.)
PR bootstrap/43681
	* expr.c (block_move_libcall_safe_for_call_parm): Avoid
	set but not used variable warning.

From-SVN: r158111
2010-04-08 12:12:35 +02:00
Wei Guozhi 7548c1be3a re PR target/41653 (not optimal result for multiplication with constant when -Os is specified)
PR target/41653
        * config/arm/arm.c (thumb1_size_rtx_costs): New function.
        (arm_size_rtx_costs): Call the new function when optimized for size.

From-SVN: r158110
2010-04-08 09:27:44 +00:00