Commit Graph

102484 Commits

Author SHA1 Message Date
GCC Administrator 299137e385 Daily bump.
From-SVN: r163665
2010-08-31 00:17:17 +00:00
Janus Weil e8cd398346 re PR fortran/45456 ([OOP] Bogus pointer initialization error on pointer-valued TBP)
2010-08-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45456
	* resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.


2010-08-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45456
	* gfortran.dg/typebound_proc_18.f03: New.

From-SVN: r163661
2010-08-30 23:56:28 +02:00
Eric Botcazou d3c1230697 Stack usage support
Stack usage support
	* common.opt (-fstack-usage): New option.
	* doc/invoke.texi (Debugging options): Document it.
	* builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
	allocate_dynamic_stack_space.
	(expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
	and propagate it to allocate_dynamic_stack_space.
	(expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
	* calls.c (initialize_argument_information): Pass TRUE as 4th
	argument to allocate_dynamic_stack_space.
	(expand_call): Set current_function_has_unbounded_dynamic_stack_size
	to 1 when pushing a variable-sized argument onto the stack.  Pass
	TRUE as 4th argument to allocate_dynamic_stack_space.
	Update current_function_pushed_stack_size.
	(emit_library_call_value_1): Likewise.
	* explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
	CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
	attempt to find an upper bound.  Remove redundant code for the
	SETJMP_VIA_SAVE_AREA case.
	* expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
	* function.h (struct stack_usage): New structure.
	(current_function_static_stack_size): New macro.
	(current_function_dynamic_stack_size): Likewise.
	(current_function_pushed_stack_size): Likewise.
	(current_function_dynamic_alloc_count): Likewise.
	(current_function_has_unbounded_dynamic_stack_size): Likewise.
	(current_function_allocates_dynamic_stack_space): Likewise.
	(struct function): Add new field 'su'.
	* function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
	add the value of the dynamic offset to the dynamic stack usage.
	(gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
	for variable-sized objects.
	(prepare_function_start): Allocate cfun->su if flag_stack_usage.
	(rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
	* gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
	BUILT_IN_ALLOCA for variable-sized objects.
	* output.h (output_stack_usage): Declare.
	* toplev.c (stack_usage_file): New file pointer.
	(output_stack_usage): New function.
	(open_auxiliary_file): Likewise.
	(lang_dependent_init): Open file if flag_stack_usage is set.
	(finalize): Close file if stack_usage_file is not null.
	* tree.h (ALLOCA_FOR_VAR_P): New macro.
	* config/alpha/alpha.c (compute_frame_size): New function.
	(alpha_expand_prologue): Use it.
	(alpha_start_function): Likewise.
	(alpha_expand_epilogue): Likewise.  Set stack usage info.
	* config/i386/i386.c (ix86_expand_prologue): Likewise.
	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
	* config/mips/mips.c (mips_expand_prologue): Likewise.
	* config/pa/pa.c (hppa_expand_prologue): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
testsuite/
	* lib/gcc-dg.exp (cleanup-stack-usage): New procedure.
	* lib/scanasm.exp (scan-stack-usage): Likewise.
	(scan-stack-usage-not): Likewise.
	* gcc.dg/stack-usage-1.c: New test.
	* gcc.target/i386/stack-usage-realign.c: Likewise.

From-SVN: r163660
2010-08-30 20:04:49 +00:00
Zdenek Dvorak 1987baa3ab re PR tree-optimization/45427 (Number of iteration analysis bogus)
PR tree-optimization/45427
	* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
	Handle the case that the exit is never taken correctly.
	(number_of_iterations_ne): Pass exit_must_be_taken to
	number_of_iterations_ne_max.

	* gcc.dg/tree-ssa/pr45427.c: New test.

From-SVN: r163659
2010-08-30 19:50:05 +00:00
Catherine Moore 037f997371 mips.h (BASE_DRIVER_SELF_SPECS): Infer -mdspr2 for the the 74K.
2010-08-31  Catherine Moore  <clm@codesourcery.com>

	* config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
	Infer -mdspr2 for the the 74K.

From-SVN: r163656
2010-08-30 14:57:30 -04:00
Paolo Carlini b960ce040d re PR c++/45043 (ICE: tree check: expected identifier_node, have bit_not_expr in grokdeclarator, at cp/decl.c:8113 on invalid code)
/cp
2010-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45043
	* decl.c (grokdeclarator): Use MAIN_NAME_P only on IDENTIFIER_NODEs.

/testsuite
2010-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45043
	* g++.dg/template/crash102.C: New.

From-SVN: r163655
2010-08-30 18:13:32 +00:00
Jakub Jelinek b0268cc04f re PR debug/45419 (-fcompare-debug failure at -O3)
PR debug/45419
	* tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.

From-SVN: r163654
2010-08-30 19:17:15 +02:00
Jakub Jelinek f2b11865fe re PR middle-end/45423 (#pragma omp atomic on bool has issues)
PR middle-end/45423
	* gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
	and TRUTH_{AND,OR,XOR}_EXPR.
	* c-parser.c (c_parser_omp_atomic): Handle boolean
	{PRE,POST}_{INC,DEC}REMENT.
cp/
	* parser.c (cp_parser_omp_atomic): Handle boolean
	{PRE,POST}_INCREMENT.
testsuite/
	* gcc.dg/gomp/atomic-12.c: New test.
	* gcc.dg/gomp/atomic-13.c: New test.
	* gcc.dg/gomp/atomic-14.c: New test.
	* g++.dg/gomp/atomic-11.C: New test.
	* g++.dg/gomp/atomic-12.C: New test.
	* g++.dg/gomp/atomic-13.C: New test.
	* g++.dg/gomp/atomic-14.C: New test.

From-SVN: r163653
2010-08-30 19:16:29 +02:00
Eric Botcazou bd9c7fb909 utils.c (gnat_pushdecl): Remove test for PARM_DECLs.
* gcc-interface/utils.c (gnat_pushdecl): Remove test for PARM_DECLs.
	Attach fake PARM_DECLs to the topmost block of the function.

From-SVN: r163651
2010-08-30 16:30:41 +00:00
Rainer Orth fc26dab30f nested-2.C: Allow for single / as comment delimiter.
* g++.dg/debug/dwarf2/nested-2.C: Allow for single / as comment
	delimiter.

From-SVN: r163650
2010-08-30 16:03:55 +00:00
Nathan Froyd 626a4b315a xtensa-protos.h (function_arg_advance): Delete.
* config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
	(function_arg): Delete.
	* config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	(FUNCTION_INCOMING_ARG): Delete.
	* config/xtensa/xtensa.c (function_arg_advance): Rename to...
	(xtensa_function_arg_advance): ...this.  Make static.  Take a const_tree
	and a bool.
	(function_arg): Rename to...
	(xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
	a bool.
	(xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
	(TARGET_FUNCTION_INCOMING_ARG): Define.

From-SVN: r163649
2010-08-30 16:03:44 +00:00
Eric Botcazou ae4235508e trans.c (call_to_gnu): Also force the return slot opt for the call to a function whose return type was...
* gcc-interface/trans.c (call_to_gnu): Also force the return slot opt
	for the call to a function whose return type was unconstrained.

From-SVN: r163648
2010-08-30 15:59:45 +00:00
Richard Guenther 2e481a2ff5 re PR middle-end/21602 (builtin memmove could be memcpy if src and dst don't alias)
2010-08-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/21602
	* builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
	using points-to information.

From-SVN: r163646
2010-08-30 13:46:31 +00:00
Uros Bizjak 3727f43413 * Move compare peephole2 to a better place.
From-SVN: r163645
2010-08-30 15:40:36 +02:00
Olivier Hainque 66194a9876 decl.c (FOREIGN_FORCE_REALIGN_STACK): New macro, replacement for FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
* gcc-interface/decl.c (FOREIGN_FORCE_REALIGN_STACK): New macro,
        replacement for FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
        (gnat_to_gnu_entity) <case ..., E_Procedure>: Use it.

From-SVN: r163641
2010-08-30 13:26:10 +00:00
H.J. Lu a95054c150 Replace | with || in TARGET_HAS_SINCOS.
2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>

	* config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.

From-SVN: r163640
2010-08-30 06:10:59 -07:00
Francois-Xavier Coudert f024c89f65 * Make-lang.in: Add frontend-passes.o dependencies.
From-SVN: r163639
2010-08-30 11:44:23 +00:00
Richard Guenther 525fb35c0e re PR tree-optimization/45449 (-fcompare-debug failure with -O2 -fno-tree-pre -fno-tree-pta)
2010-08-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45449
	* tree-ssa-live.c (remove_unused_locals): Also remove address-taken
	variables.

	* gcc.dg/pr45449.c: New testcase.

From-SVN: r163638
2010-08-30 11:13:05 +00:00
Joseph Myers 184eb658fe opts.h (CL_ERR_NEGATIVE): Define.
* opts.h (CL_ERR_NEGATIVE): Define.
	* opts.c (unknown_option_callback): Don't postpone warnings for
	options marked with CL_ERR_NEGATIVE.
	* opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
	for negative versions of CL_REJECT_NEGATIVE options.

testsuite:
	* gcc.dg/opts-1.c: Expect errors, not warnings.

From-SVN: r163637
2010-08-30 11:30:57 +01:00
Uros Bizjak 9552aca786 i386.md (zero_extendsidi2_1): Rename from zero_extendsidi2_32.
* config/i386/i386.md (zero_extendsidi2_1): Rename from
	zero_extendsidi2_32.
	(zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
	using SWI12 mode iterator.
	(zero_extendhisi2_and): Merge insn pattern and corresponding spliter
	to define_insn_and_split pattern.
	(zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
	using SWI24 mode iterator.
	(*zero_extendqi<mode>2_and): Macroize insn from
	*zero_extendqi{hi,si}2_and using SWI24 mode iterator.
	(*zero_extendqi<mode>2_movzbl_and): Macroize insn from
	*zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
	SWI24 mode iterator.
	(*zero_extendqi<mode>2_movzbl): Ditto from
	*zero_extendqi{hi,si}2_movzbl.
	(extendsidi2_1): Rename from extendsidi2_32.
	(extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
	SWI12 mode iterator.

From-SVN: r163636
2010-08-30 09:28:27 +02:00
GCC Administrator 76c3beb772 Daily bump.
From-SVN: r163635
2010-08-30 00:16:57 +00:00
Janus Weil bd48f12390 re PR fortran/42769 ([OOP] ICE in resolve_typebound_procedure)
2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42769
	* resolve.c (resolve_structure_cons): For derived types, make sure the
	type has been resolved.
	(resolve_typebound_procedures): Make sure the vtab has been generated.


2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42769
	* gfortran.dg/dynamic_dispatch_11.f03: New.

From-SVN: r163631
2010-08-29 23:29:38 +02:00
Eric Botcazou 33620355cd ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in general purpose registers.
* config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
	general purpose registers.
	(HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
	* config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
	with general purpose registers and memory operands.  Add associated
	CCImode post-reload splitter.
	* config/ia64/div.md: Change BImode to CCImode throughout.

From-SVN: r163630
2010-08-29 19:57:07 +00:00
Jason Merrill 98d4336049 re PR c++/44991 (default argument with '<' cause compilation error)
PR c++/44991
	* parser.c (cp_parser_parameter_declaration): Pop parameter decls
	after tentative parsing.

From-SVN: r163629
2010-08-29 15:24:37 -04:00
Paolo Carlini 1f5ca1a15c [multiple changes]
2010-08-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/23_containers/bitset/invalidation: Move...
	* testsuite/23_containers/bitset/debug/invalidation: ... here.
	* testsuite/23_containers/deque/invalidation: Move...
	* testsuite/23_containers/deque/debug/invalidation: ... here.
	* testsuite/23_containers/list/invalidation: Move...
	* testsuite/23_containers/list/debug/invalidation: ... here.
	* testsuite/23_containers/map/invalidation: Move...
	* testsuite/23_containers/map/debug/invalidation: ... here.
	* testsuite/23_containers/multimap/invalidation: Move...
	* testsuite/23_containers/multimap/debug/invalidation: ... here.
	* testsuite/23_containers/set/invalidation: Move...
	* testsuite/23_containers/set/debug/invalidation: ... here.
	* testsuite/23_containers/multiset/invalidation: Move...
	* testsuite/23_containers/multiset/debug/invalidation: ... here.
	* testsuite/23_containers/vector/invalidation: Move...
	* testsuite/23_containers/vector/debug/invalidation: ... here.

2010-08-29  François Dumont  <francois.cppdevs@free.fr>

        * include/bits/stl_algobase.h (_Iter_base):  Move...
        * include/bits/stl_iterator_base_types.h: ...here.
        * include/debug/functions.h (__check_valid_range, __check_string,
	__check_sorted): Fix to not depend on _GLIBCXX_DEBUG; include
	formatter.h and use formatting macros for a consistent debug result.
        * include/debug/formatter.h (__check_singular): Declare; do not
	include debug.h.
        * include/debug/debug.h: Do not include formatter.h.
        * include/debug/safe_iterator.h (_Safe_iterator::_Base_Iterator)
        rename to iterator_type.
	(__gnu_debug::__base): Add.
        * include/debug/set.h: Use everywhere __gnu_debug::__base once
	iterator range valided.
        * include/debug/unordered_map: Likewise.
        * include/debug/multiset.h: Likewise.
        * include/debug/vector: Likewise.
        * include/debug/unordered_set: Likewise.
        * include/debug/deque: Likewise.
        * include/debug/map.h: Likewise.
        * include/debug/string: Likewise.
        * include/debug/list: Likewise.
        * include/debug/multimap.h: Likewise.
        * testsuite/23_containers/util/debug/assign_neg.h: New test cases on
        debug checks performed on container assign operation.
        * testsuite/23_containers/util/debug/construct_neg.h: New test cases
        on debug checks on constructors.
        * testsuite/23_containers/util/debug/insert_neg.h: New test cases on
        debug checks performed on container insert operations.
        * testsuite/23_containers/unordered_map/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: New.
        * testsuite/23_containers/multimap/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/set/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/unordered_multimap/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/unordered_set/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/multiset/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/unordered_multiset/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/map/debug/cont_traits.h,
        debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/cont_traits.h,
        debug_cont_traits.h, assign1_neg.cc, assign2_neg.cc, assign3_neg.cc,
        assign4_neg.cc, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/23_containers/deque/debug/cont_traits.h,
        debug_cont_traits.h, assign1_neg.cc, assign2_neg.cc, assign3_neg.cc,
        assign4_neg.cc, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
	* testsuite/23_containers/list/debug/cont_traits.h,
        debug_cont_traits.h, assign1_neg.cc, assign2_neg.cc, assign3_neg.cc,
        assign4_neg.cc, construct1_neg.cc, construct2_neg.cc,
        construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
        insert3_neg.cc, insert4_neg.cc: Likewise.
        * testsuite/performance/23_containers/range_construct/
	list_construct1.cc: New, validate performance impact of the patch
	on the debug mode.
        * testsuite/performance/23_containers/range_construct/
	list_construct2.cc: Likewise.
        * testsuite/performance/23_containers/range_construct/
	vector_construct.cc: Likewise.
        * testsuite/performance/23_containers/range_construct/
	deque_construct.cc: Likewise.

From-SVN: r163628
2010-08-29 17:39:00 +00:00
Janus Weil f08f8b6a53 re PR fortran/45439 ([OOP] SELECT TYPE bogus complaint about INTENT)
2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45439
	* match.c (gfc_match_select_type): Give the associate-name the
	FL_VARIABLE attribute.


2010-08-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45439
	* gfortran.dg/select_type_16.f03: New.

From-SVN: r163626
2010-08-29 11:56:45 +02:00
GCC Administrator ae04c688c0 Daily bump.
From-SVN: r163624
2010-08-29 00:17:32 +00:00
Francois-Xavier Coudert 08fd13d447 mtype.m4 (upcase, [...]): New macros.
* m4/mtype.m4 (upcase, hasmathfunc, mathfunc_macro): New macros.
	* m4/fraction.m4: Use new macros to support quad-float types.
	* m4/set_exponent.m4: Likewise.
	* m4/spacing.m4: Likewise.
	* m4/exponent.m4: Likewise.
	* m4/nearest.m4: Likewise.
	* m4/norm2.m4: Likewise.
	* m4/bessel.m4: Likewise.
	* m4/rrspacing.m4: Likewise.
	* generated/bessel_r4.c:Regenerated.
	* generated/bessel_r8.c: Regenerated.
	* generated/bessel_r10.c: Regenerated.
	* generated/bessel_r16.c: Regenerated.
	* generated/exponent_r4.c: Regenerated.
	* generated/exponent_r8.c: Regenerated.
	* generated/exponent_r10.c: Regenerated.
	* generated/exponent_r16.c: Regenerated.
	* generated/fraction_r4.c: Regenerated.
	* generated/fraction_r8.c: Regenerated.
	* generated/fraction_r10.c: Regenerated.
	* generated/fraction_r16.c: Regenerated.
	* generated/nearest_r4.c: Regenerated.
	* generated/nearest_r8.c: Regenerated.
	* generated/nearest_r10.c: Regenerated.
	* generated/nearest_r16.c: Regenerated.
	* generated/norm2_r4.c: Regenerated.
	* generated/norm2_r8.c: Regenerated.
	* generated/norm2_r10.c: Regenerated.
	* generated/norm2_r16.c: Regenerated.
	* generated/rrspacing_r4.c: Regenerated.
	* generated/rrspacing_r8.c: Regenerated.
	* generated/rrspacing_r10.c: Regenerated.
	* generated/rrspacing_r16.c: Regenerated.
	* generated/set_exponent_r4.c: Regenerated.
	* generated/set_exponent_r8.c: Regenerated.
	* generated/set_exponent_r10.c: Regenerated.
	* generated/set_exponent_r16.c: Regenerated.
	* generated/spacing_r4.c: Regenerated.
	* generated/spacing_r8.c: Regenerated.
	* generated/spacing_r10.c: Regenerated.
	* generated/spacing_r16.c: Regenerated.

From-SVN: r163620
2010-08-28 22:10:52 +00:00
Eric Botcazou bf321310b1 * config/ia64/ia64.md (cstorebi4): Fix thinko.
From-SVN: r163618
2010-08-28 20:07:43 +00:00
Hariharan Sandanagobalane 179ba6b882 re PR target/45299 (Dwarf information is wrong with optimised code.)
* config/picochip/picochip.c (reorder_var_tracking_notes): This
          function was dropping debug insns which caused PR45299.

From-SVN: r163617
2010-08-28 16:40:27 +00:00
Uros Bizjak ee9dd92eea sse.md (extsuffix): New code attribute.
* config/i386/sse.md (extsuffix): New code attribute.
	(sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
	and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
	(sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
	and sse4_1_zero_extendv4qiv4si2.
	(sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
	and sse4_1_zero_extendv2qiv2di2.
	(sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
	and sse4_1_zero_extendv4hiv4si2.
	(sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
	and sse4_1_zero_extendv2hiv2di2.
	(sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
	and sse4_1_zero_extendv2siv2di2

	(<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
	using any_extend code iterator.
	(*avx_<s>mulv8hi3_highpart): Macroize insn from
	*avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
	(*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.

	* config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
	gen_sse4_1_sign_extend* functions.
	(struct builtin_description bdesc_args): Ditto.

From-SVN: r163616
2010-08-28 16:30:34 +02:00
Steven G. Kargl 4c6e913ce8 simplify.c (gfc_simplify_bessel_n2): Fix indention and argument type.
fortran/
2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>

        * simplify.c (gfc_simplify_bessel_n2): Fix indention
        and argument type.

testsuite/
2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/bessel_7.f90: Decrease required precision.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r163615
2010-08-28 16:27:34 +02:00
Tobias Burnus e4ff7a56c6 mk-kinds-h.sh: Disable REAL(16) if REAL(10) is available.
2010-08-28  Tobias Burnus  <burnus@net-b.de>

        * mk-kinds-h.sh: Disable REAL(16) if REAL(10) is available.

From-SVN: r163612
2010-08-28 09:35:47 +02:00
Francois-Xavier Coudert e84f122fcc re PR libfortran/45436 (Failed to bootstrap)
PR fortran/45436
	* trans-types.c (gfc_init_kinds): Disable TFmode.

From-SVN: r163611
2010-08-28 07:35:10 +00:00
Xinliang David Li f06e400fc3 Fix PR45422
From-SVN: r163610
2010-08-28 05:54:54 +00:00
Nathan Froyd b64336b8b7 sh-protos.h (sh_function_arg): Delete.
* config/sh/sh-protos.h (sh_function_arg): Delete.
	(sh_function_arg_advance): Delete.
	* config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	(PASS_IN_REG_P): Eliminate cast.
	* config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
	const_tree and a bool.
	(sh_function_arg): Likewise.
	(sh_output_mi_thunk): Call sh_function_arg_advance) and
	sh_function_arg.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r163607
2010-08-28 01:23:19 +00:00
GCC Administrator 79ad70f993 Daily bump.
From-SVN: r163606
2010-08-28 00:19:12 +00:00
Naveen H.S 91a19652f8 sh.c (push_regs): Emit movml for interrupt handler when possible.
* config/sh/sh.c (push_regs): Emit movml for interrupt handler
	when possible.
	(sh_expand_epilogue): Likewise.
	* config/sh/sh.md (movml_push_banked): New insn.
	(movml_pop_banked): Likewise.
	* gcc.dg/attr-isr.c: Skip test for -m2a.  Don't	run on sh2a*-*-*.


Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>

From-SVN: r163602
2010-08-27 23:29:41 +00:00
Bernd Schmidt f8045c4158 vfp.md (arm_movsi_vfp, [...]): Set attribute "insn".
* config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
	thumb2_movsf_vfp): Set attribute "insn".
	* config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
	not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
	thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
	arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
	arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
	thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
	thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
	movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
	if_not_move, if_shift_move, if_move_shift, if_shift_shift,
	if_not_arith, if_arith_not, cond_move_not): Likewise.

From-SVN: r163601
2010-08-27 22:11:50 +00:00
Bernd Schmidt c1cb371a2f genautomata.c (gen_regexp_repeat, [...]): Use the string found in vector element 0 rather than the original string when...
* genautomata.c (gen_regexp_repeat, gen_regexp_allof,
	gen_regexp_oneof, gen_regexp_sequence): Use the string found
	in vector element 0 rather than the original string when there's
	only one element.
	(gen_regexp): Remove extra semicolon.

From-SVN: r163600
2010-08-27 22:08:37 +00:00
Janus Weil b052cbd0cd re PR fortran/45432 (gfortran.dg/allocate_alloc_opt_9.f90: Segfault due to invalid FREE)
2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45432
	* match.c (gfc_match_allocate): Avoid double free on error.

From-SVN: r163599
2010-08-27 23:50:47 +02:00
Michael Meissner 7042fe5ef8 Improve floating point conversions on powerpc
From-SVN: r163598
2010-08-27 21:32:44 +00:00
Francois-Xavier Coudert a3c85b7499 re PR fortran/32049 (Support on x86_64 also kind=16)
PR fortran/32049

	* gfortran.h (gfc_real_info): Add c_float128 field.
	* mathbuiltins.def: Indicate which builtins are const.
	* trans-types.h (float128_type_node, complex_float128_type_node,
	gfc_real16_is_float128): New variables.
	* trans-types.c (float128_type_node, complex_float128_type_node,
	gfc_real16_is_float128): New variables.
	(gfc_init_kinds): Allow TFmode.
	(gfc_build_real_type): Mark __float128 types as such.
	(gfc_init_types): Initialize float128_type_node and
	complex_float128_type_node
	* f95-lang.c (gfc_init_builtin_functions): Adjust for new
	argument of OTHER_BUILTIN macro.
	* trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
	(builtin_decl_for_precision): Special case for __float128.
	(builtin_decl_for_float_kind): Likewise.
	(define_quad_builtin): New function.
	(gfc_build_intrinsic_lib_fndecls): Create all __float128
	library decls if necessary. Store them in the real16_decl and
	complex16_decl builtin map fields.
	(gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
	library function names.

	* gfortran.dg/random_seed_1.f90: Adjust test.
	* gfortran.dg/float128_1.f90: New test.

From-SVN: r163597
2010-08-27 21:24:13 +00:00
Basile Starynkevitch 6ba2db5e33 gengtype.c (output_type_enum): Test the right union member.
2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
            Jeremie Salvucci  <jeremie.salvucci@free.fr>

        * gengtype.c (output_type_enum): Test the right union member.


Co-Authored-By: Jeremie Salvucci <jeremie.salvucci@free.fr>

From-SVN: r163596
2010-08-27 20:32:27 +00:00
Tobias Burnus 0cd0559e8c re PR fortran/33197 (Fortran 2008: math functions)
gcc/fortran/
2010-08-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33197
        * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
        * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
        gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
        gfc_resolve_parity): New prototypes.
        * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
        GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
        * gcc/fortran/iresolve.c (gfc_resolve_norm2,
        gfc_resolve_parity): New functions.
        * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
        New functions.
        * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
        gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
        * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
        * gcc/fortran/simplify.c (simplify_transformation_to_array):
        Add post-processing opterator.
        (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
        gfc_simplify_product, gfc_simplify_sum): Update call.
        (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
        gfc_simplify_parity): New functions.

gcc/testsuite/
2010-08-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33197
        * gcc/testsuite/gfortran.dg/norm2_1.f90: New.
        * gcc/testsuite/gfortran.dg/norm2_2.f90: New.
        * gcc/testsuite/gfortran.dg/norm2_3.f90: New.
        * gcc/testsuite/gfortran.dg/norm2_4.f90: New.
        * gcc/testsuite/gfortran.dg/parity_1.f90: New.
        * gcc/testsuite/gfortran.dg/parity_2.f90: New.
        * gcc/testsuite/gfortran.dg/parity_3.f90: New.

libgfortran/
2010-08-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33197
        * libgfortran/m4/ifunction.m4 (FINISH_ARRAY_FUNCTION,
        ARRAY_FUNCTION): Allow expression after loop.
        * libgfortran/m4/norm2.m4: New for _gfortran_norm2_r{4,8,10,16}.
        * libgfortran/m4/parity.m4: New for
        * _gfortran_parity_l{1,2,4,8,16}.
        * libgfortran/gfortran.map: Add new functions.
        * libgfortran/Makefile.am: Ditto.
        * libgfortran/m4/minloc1.m4: Add empty argument for
        * ARRAY_FUNCTION.
        * libgfortran/m4/maxloc1.m4: Ditto.
        * libgfortran/m4/all.m4: Ditto.
        * libgfortran/m4/minval.m4: Ditto.
        * libgfortran/m4/maxval.m4: Ditto.
        * libgfortran/m4/count.m4: Ditto.
        * libgfortran/m4/product.m4: Ditto.
        * libgfortran/m4/any.m4: Ditto.
        * Makefile.in: Regenerated.
        * generated/minval_r8.c: Regenerated.
        * generated/maxloc1_4_r8.c: Regenerated.
        * generated/minloc1_16_r16.c: Regenerated.
        * generated/norm2_r4.c: Regenerated.
        * generated/sum_i8.c: Regenerated.
        * generated/parity_l2.c: Regenerated.
        * generated/any_l16.c: Regenerated.
        * generated/maxval_i2.c: Regenerated.
        * generated/any_l2.c: Regenerated.
        * generated/product_r4.c: Regenerated.
        * generated/maxloc1_8_i4.c: Regenerated.
        * generated/parity_l16.c: Regenerated.
        * generated/all_l1.c: Regenerated.
        * generated/product_i2.c: Regenerated.
        * generated/minloc1_8_r16.c: Regenerated.
        * generated/maxloc1_8_r16.c: Regenerated.
        * generated/sum_r16.c: Regenerated.
        * generated/sum_i1.c: Regenerated.
        * generated/minloc1_4_r8.c: Regenerated.
        * generated/maxloc1_16_r16.c: Regenerated.
        * generated/minloc1_16_i4.c: Regenerated.
        * generated/maxloc1_16_i4.c: Regenerated.
        * generated/maxval_r16.c: Regenerated.
        * generated/product_c10.c: Regenerated.
        * generated/minloc1_8_i4.c: Regenerated.
        * generated/all_l2.c: Regenerated.
        * generated/product_c4.c: Regenerated.
        * generated/sum_r4.c: Regenerated.
        * generated/all_l16.c: Regenerated.
        * generated/minloc1_16_r10.c: Regenerated.
        * generated/sum_i2.c: Regenerated.
        * generated/maxloc1_8_r8.c: Regenerated.
        * generated/minval_i16.c: Regenerated.
        * generated/parity_l4.c: Regenerated.
        * generated/maxval_i4.c: Regenerated.
        * generated/any_l4.c: Regenerated.
        * generated/minval_i8.c: Regenerated.
        * generated/maxloc1_4_i8.c: Regenerated.
        * generated/minloc1_4_i16.c: Regenerated.
        * generated/maxloc1_4_i16.c: Regenerated.
        * generated/minloc1_8_r10.c: Regenerated.
        * generated/product_i4.c: Regenerated.
        * generated/maxloc1_8_r10.c: Regenerated.
        * generated/sum_c16.c: Regenerated.
        * generated/minloc1_16_r8.c: Regenerated.
        * generated/maxloc1_16_r8.c: Regenerated.
        * generated/count_4_l.c: Regenerated.
        * generated/sum_r10.c: Regenerated.
        * generated/count_8_l.c: Regenerated.
        * generated/sum_c4.c: Regenerated.
        * generated/maxloc1_16_r10.c: Regenerated.
        * generated/minloc1_8_r8.c: Regenerated.
        * generated/maxval_r10.c: Regenerated.
        * generated/minval_i1.c: Regenerated.
        * generated/maxloc1_4_i1.c: Regenerated.
        * generated/minloc1_4_i8.c: Regenerated.
        * generated/product_i16.c: Regenerated.
        * generated/all_l4.c: Regenerated.
        * generated/norm2_r16.c: Regenerated.
        * generated/minval_r4.c: Regenerated.
        * generated/maxloc1_4_r4.c: Regenerated.
        * generated/sum_i4.c: Regenerated.
        * generated/maxval_r8.c: Regenerated.
        * generated/norm2_r8.c: Regenerated.
        * generated/minloc1_4_i1.c: Regenerated.
        * generated/minval_r16.c: Regenerated.
        * generated/minval_i2.c: Regenerated.
        * generated/maxloc1_4_i2.c: Regenerated.
        * generated/product_r8.c: Regenerated.
        * generated/maxloc1_8_i8.c: Regenerated.
        * generated/sum_c10.c: Regenerated.
        * generated/minloc1_4_r16.c: Regenerated.
        * generated/maxloc1_4_r16.c: Regenerated.
        * generated/count_1_l.c: Regenerated.
        * generated/minloc1_4_r4.c: Regenerated.
        * generated/minloc1_16_i8.c: Regenerated.
        * generated/maxloc1_16_i8.c: Regenerated.
        * generated/minloc1_4_i2.c: Regenerated.
        * generated/maxloc1_8_i1.c: Regenerated.
        * generated/minloc1_8_i8.c: Regenerated.
        * generated/product_r16.c: Regenerated.
        * generated/product_c8.c: Regenerated.
        * generated/sum_r8.c: Regenerated.
        * generated/norm2_r10.c: Regenerated.
        * generated/minloc1_16_i16.c: Regenerated.
        * generated/maxloc1_8_r4.c: Regenerated.
        * generated/minloc1_16_i1.c: Regenerated.
        * generated/maxloc1_16_i1.c: Regenerated.
        * generated/minval_r10.c: Regenerated.
        * generated/count_16_l.c: Regenerated.
        * generated/parity_l8.c: Regenerated.
        * generated/minloc1_8_i1.c: Regenerated.
        * generated/minval_i4.c: Regenerated.
        * generated/maxloc1_4_i4.c: Regenerated.
        * generated/maxloc1_8_i2.c: Regenerated.
        * generated/maxval_i8.c: Regenerated.
        * generated/any_l8.c: Regenerated.
        * generated/minloc1_4_r10.c: Regenerated.
        * generated/minloc1_8_i16.c: Regenerated.
        * generated/maxloc1_4_r10.c: Regenerated.
        * generated/maxloc1_8_i16.c: Regenerated.
        * generated/minloc1_16_r4.c: Regenerated.
        * generated/maxloc1_16_r4.c: Regenerated.
        * generated/product_i8.c: Regenerated.
        * generated/sum_i16.c: Regenerated.
        * generated/count_2_l.c: Regenerated.
        * generated/maxloc1_16_i16.c: Regenerated.
        * generated/minloc1_8_r4.c: Regenerated.
        * generated/sum_c8.c: Regenerated.
        * generated/minloc1_16_i2.c: Regenerated.
        * generated/maxloc1_16_i2.c: Regenerated.
        * generated/parity_l1.c: Regenerated.
        * generated/maxval_i16.c: Regenerated.
        * generated/maxval_i1.c: Regenerated.
        * generated/minloc1_4_i4.c: Regenerated.
        * generated/any_l1.c: Regenerated.
        * generated/minloc1_8_i2.c: Regenerated.
        * generated/product_c16.c: Regenerated.
        * generated/product_r10.c: Regenerated.
        * generated/product_i1.c: Regenerated.
        * generated/all_l8.c: Regenerated.
        * generated/maxval_r4.c: Regenerated.

From-SVN: r163595
2010-08-27 21:17:45 +02:00
Janus Weil cbadd64af4 re PR fortran/45420 ([OOP] polymorphic TBP call in a CLASS DEFAULT clause)
2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45420
	* match.c (select_type_set_tmp): Add the possibility to reset the
	temporary to NULL.
	(gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.


2010-08-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/45420
	* gfortran.dg/select_type_15.f03: New.

From-SVN: r163594
2010-08-27 21:02:15 +02:00
Benjamin Kosnik ee1e5e63ec stl_iterator_base_types.h: Fix doxygen warning.
2010-08-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_iterator_base_types.h: Fix doxygen warning.

From-SVN: r163592
2010-08-27 18:16:05 +00:00
Uros Bizjak 83d5896129 re PR target/41484 (Please add memory forms of pmovzx* (SSE4.1))
PR target/41484
	* config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
	operands for operand 1.
	(sse4_1_extendv4qiv4si2): Ditto.
	(sse4_1_extendv2qiv2di2): Ditto.
	(sse4_1_extendv4hiv4si2): Ditto.
	(sse4_1_extendv2hiv2di2): Ditto.
	(sse4_1_extendv2siv2di2): Ditto.
	(sse4_1_zero_extendv8qiv8hi2): Ditto.
	(sse4_1_zero_extendv4qiv4si2): Ditto.
	(sse4_1_zero_extendv2qiv2di2): Ditto.
	(sse4_1_zero_extendv4hiv4si2): Ditto.
	(sse4_1_zero_extendv2hiv2di2): Ditto.
	(sse4_1_zero_extendv2siv2di2): Ditto.
	(*sse4_1_extendv8qiv8hi2): Remove insn pattern.
	(*sse4_1_extendv4qiv4si2): Ditto.
	(*sse4_1_extendv2qiv2di2): Ditto.
	(*sse4_1_extendv4hiv4si2): Ditto.
	(*sse4_1_extendv2hiv2di2): Ditto.
	(*sse4_1_extendv2siv2di2): Ditto.
	(*sse4_1_zero_extendv8qiv8hi2): Ditto.
	(*sse4_1_zero_extendv4qiv4si2): Ditto.
	(*sse4_1_zero_extendv2qiv2di2): Ditto.
	(*sse4_1_zero_extendv4hiv4si2): Ditto.
	(*sse4_1_zero_extendv2hiv2di2): Ditto.
	(*sse4_1_zero_extendv2siv2di2): Ditto.

From-SVN: r163591
2010-08-27 18:53:51 +02:00
Eric Botcazou 757fc8ed22 Fix long lines
From-SVN: r163590
2010-08-27 16:23:07 +00:00
Jerry DeLisle 2854a076f6 re PR fortran/43217 (Output of Hollerith constants which are not a multiple of 4 bytes)
2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/43217
	* gfortran.dg/hollerith8.f90: New test.

From-SVN: r163588
2010-08-27 15:00:11 +00:00