Commit Graph

83283 Commits

Author SHA1 Message Date
John David Anglin f3195fd461 Add missing '>' from last commit.
From-SVN: r128398
2007-09-11 23:22:07 +00:00
Bernd Schmidt 03848bd0e1 bfin.h (enum reg_class, [...]): Add P0REGS.
* config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS,
	REG_CLASS_NAMES): Add P0REGS.
	(REGNO_REG_CLASS): Return it where appropriate.
	(REG_CLASS_FROM_CONSTRAINT): Add 'qA'.
	(CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled.
	* doc/md.texi (Blackfin family): Document 'q' constraints.

From-SVN: r128397
2007-09-11 23:20:10 +00:00
Steve Kenton d4c56bd764 linux-unwind.h: Guard with inhibit_libc.
* pa/linux-unwind.h: Guard with inhibit_libc.
	* pa/hpux-unwind.h: Likewise.

From-SVN: r128396
2007-09-11 23:16:01 +00:00
Johannes Singler c2ba97097b Add parallel mode.
2007-09-11  Johannes Singler  <singler@ira.uka.de>
	    Leonor Frias Moya  <lfrias@lsi.upc.edu>
            Felix Putze  <kontakt@felix-putze.de>
            Marius Elvert  <marius.elvert@ira.uka.de>
	    Felix Bondarenko  <f.bondarenko@web.de>
	    Robert Geisberger  <robert.geisberger@stud.uni-karlsruhe.de>
	    Robin Dapp  <r.dapp@freenet.de>
  	    Benjamin Kosnik  <bkoz@redhat.com>

	Add parallel mode.
	* include/parallel: New.
	* include/parallel/iterator.h: New.
	* include/parallel/multiway_merge.h: New.
	* include/parallel/parallel.h: New.
	* include/parallel/algorithm
	* include/parallel/find_selectors.h: New.
	* include/parallel/losertree.h: New.
	* include/parallel/list_partition.h: New.
	* include/parallel/types.h: New.
	* include/parallel/for_each.h: New.
	* include/parallel/multiseq_selection.h: New.
	* include/parallel/workstealing.h: New.
	* include/parallel/base.h: New.
	* include/parallel/par_loop.h: New.
	* include/parallel/numeric
	* include/parallel/features.h: New.
	* include/parallel/quicksort.h: New.
	* include/parallel/algorithmfwd.h: New.
	* include/parallel/equally_split.h: New.
	* include/parallel/compiletime_settings.h: New.
	* include/parallel/for_each_selectors.h: New.
	* include/parallel/basic_iterator.h: New.
	* include/parallel/omp_loop_static.h: New.
	* include/parallel/random_shuffle.h: New.
	* include/parallel/balanced_quicksort.h: New.
	* include/parallel/set_operations.h: New.
	* include/parallel/tags.h: New.
	* include/parallel/merge.h: New.
	* include/parallel/tree.h: New.
	* include/parallel/settings.h: New.
	* include/parallel/unique_copy.h: New.
	* include/parallel/multiway_mergesort.h: New.
	* include/parallel/numericfwd.h: New.
	* include/parallel/search.h: New.
	* include/parallel/partition.h: New.
	* include/parallel/compatibility.h: New.
	* include/parallel/algobase.h: New.
	* include/parallel/find.h: New.
	* include/parallel/partial_sum.h: New.
	* include/parallel/algo.h: New.
	* include/parallel/omp_loop.h: New.
	* include/parallel/queue.h: New.
	* include/parallel/timing.h: New.
	* include/parallel/sort.h: New.
	* include/parallel/checkers.h: New.
	* include/parallel/random_number.h: New.
	* include/bits/algorithmfwd.h: New.

	* acinclude.m4 (GLIBCXX_ENABLE_PARALLEL): New.
	* configure.host: Add atomic_flags.
	* configure.ac: Export ATOMIC_FLAGS, call GLIBCXX_ENABLE_PARALLEL.
	* src/Makefile.am: Add parallel_list rules.
	* include/Makefile.am: Add parallel files.
	* testsuite/Makefile.am (check-parallel): Add.
	(check-performance-parallel): Add.
	* config.h.in: Regenerate.
	* configure: Same.
	* libsupc++/Makefile.in: Same.
	* testsuite/Makefile.in: Same.
	* Makefile.in: Same.
	* libmath/Makefile.in: Same.
	* include/Makefile.in: Same.
	* src/Makefile.in: Same.
	* po/Makefile.in: Same.
	
	* config/abi/pre/gnu.ver: Export parallel list bits.

	* docs/html/parallel_mode.html: New.
	* docs/html/documentation.html: Add link.
	* docs/doxygen/user.cfg.in: Adjust for new files and directory.
	* docs/doxygen/doxygroups.cc: Adjust namespace markup.

	* include/debug/set.h: Adjust for _GLIBCXX_STD_D or _P change.
	* include/debug/bitset: Same.
	* include/debug/multiset.h: Same.
	* include/debug/vector: Same.
	* include/debug/map.h: Same.
	* include/debug/deque: Same.
	* include/debug/list: Same.
	* include/debug/debug.h: Same.
	* include/debug/multimap.h: Same.
	* include/std/algorithm: Same.
	* include/std/numeric: Same.
	* include/std/bitset: Same.
	* include/std/string: Same.
	* include/ext/hash_map: Same.
	* include/ext/hash_set: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_numeric.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/c++config: Same.
	* include/bits/vector.tcc: Same.
	* include/bits/deque.tcc: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/list.tcc: Same.
	* src/list.cc: Same.
	* src/parallel_list.cc: New.

	* testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): New.
	* testsuite/lib/dg-options.exp (dg-require-parallel-mode): New.
	* scripts/testsuite_flags.in (--cxxparallelflags): New.
	* scripts/check_performance: Adjust.
	* testsuite/25_algorithms/headers/parallel_algorithm.cc: New.
	* testsuite/25_algorithms/headers/algorithm_parallel_mode.cc: New.
	* testsuite/25_algorithms/headers/parallel_algorithm_mixed1.cc: New.
	* testsuite/25_algorithms/headers/parallel_algorithm_mixed2.cc: New.
	* testsuite/26_numerics/headers/numeric/parallel_numeric.cc: New.
	* testsuite/26_numerics/headers/numeric/numeric_parallel_mode.cc: New.
	* testsuite/26_numerics/headers/numeric/
	parallel_numeric_mixed1.cc: New.
	* testsuite/26_numerics/headers/numeric/
	parallel_numeric_mixed2.cc: New.
	

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
Co-Authored-By: Felix Bondarenko <f.bondarenko@web.de>
Co-Authored-By: Felix Putze <kontakt@felix-putze.de>
Co-Authored-By: Leonor Frias Moya <lfrias@lsi.upc.edu>
Co-Authored-By: Marius Elvert <marius.elvert@ira.uka.de>
Co-Authored-By: Robert Geisberger <robert.geisberger@stud.uni-karlsruhe.de>
Co-Authored-By: Robin Dapp <r.dapp@freenet.de>

From-SVN: r128395
2007-09-11 22:32:51 +00:00
Hans-Peter Nilsson f6ee8d7b73 * gcc.dg/cpp/trad/include.c: Don't run for newlib targets.
From-SVN: r128394
2007-09-11 21:15:24 +00:00
David Daney 66471b4708 invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
* doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
	* doc/install.texi: Document new --with-llsc and --without-llsc
	options.
	* config.gcc: Handle --with-llsc and --without-llsc configure options.
	* config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction
	in %| and %- operand codes.  Depend on GENERATE_SYNC instead of
	ISA_HAS_SYNC.
	(sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
	sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
	sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
	sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
	sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on
	GENERATE_LL_SC instead of ISA_HAS_LL_SC.
	* config/mips/mips.opt (mllsc): New option.
	* config/mips/mips.c (mips_llsc): Define variable.
	(mips_handle_option): Handle mllsc option.
	(override_options): Set mips_print_operand_punct for '|' and '-'.
	(print_operand): Add new %| and %- operand codes.
	* config/mips/mips.h (mips_llsc_setting): New enum type.
	(mips_llsc): Declare.
	(OPTION_DEFAULT_SPECS): Add llsc handling.
	(GENERATE_SYNC): New macro.
	(GENERATE_LL_SC): New macro.
	(MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
	MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
	MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions
	in %| and %- operand codes.

From-SVN: r128392
2007-09-11 20:14:51 +00:00
Eric Botcazou fa89b6ecba tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
	TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.

ada/
	* decl.c (array_type_has_nonaliased_component): New predicate.
	(gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
	set the TYPE_NONALIASED_COMPONENT flag on the type.
	<E_Array_Subtype>: Likewise.
	* gigi.h (type_for_nonaliased_component_p): Declare.
	* utils.c (type_for_nonaliased_component_p): New predicate.
	(create_field_decl): Invoke the above predicate to set the
	DECL_NONADDRESSABLE_P flag on the field.

From-SVN: r128391
2007-09-11 19:43:02 +00:00
Arnaud Charlet 868eaa1f42 Removed, noever used.
From-SVN: r128386
2007-09-11 18:17:13 +02:00
Christopher D. Rickett 9dc3595654 re PR fortran/33040 ([ISO_C_BINDING] ICE in gfc_trans_structure_assign)
2007-09-11  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/33040
	* trans-expr.c (gfc_trans_structure_assign): Convert component
	C_NULL_PTR and C_NULL_FUNPTR component initializers to (void *).
	* trans-types.c (gfc_get_derived_type): Create a backend_decl for
	the c_address field of C_PTR and C_FUNPTR and ensure initializer
	is of proper type/kind for (void *).

2007-09-11  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/33040
	* gfortran.dg/c_ptr_tests_11.f03: New test case.

From-SVN: r128385
2007-09-11 17:53:22 +02:00
Daniel Jacobowitz fa6763a6fc libstdc++.exp (libstdc++_init): Revert part of 2007-09-06 change.
* testsuite/lib/libstdc++.exp (libstdc++_init): Revert part of
	2007-09-06 change.

From-SVN: r128384
2007-09-11 15:48:15 +00:00
Jason Merrill 5a69d1207d add pr number
From-SVN: r128381
2007-09-11 11:08:57 -04:00
Jason Merrill 7e4aeb3297 re PR middle-end/27945 (Packed struct of variable length has wrong size)
PR middle-end/27945
        * stor-layout.c (layout_decl): Do pack variable size fields.

From-SVN: r128380
2007-09-11 11:07:59 -04:00
Francois-Xavier Coudert 257fafe0c9 re PR libfortran/33386 (Fortran SELECT statement miscompiles)
PR libfortran/33386
	* runtime/select.c (select_string): Initialize default_jump.

From-SVN: r128379
2007-09-11 14:53:02 +00:00
Maxim Kuvyrkov c47b0cb466 predicates.md (movsi_const0_operand, [...]): New predicates.
* config/m68k/predicates.md (movsi_const0_operand,
	non_symbolic_call_operand): New predicates.

	* config/m68k/constraints.md: (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
	New constraints.
	* doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
	Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
	CW, CZ, CS, Ap and Ac.

	* config/m68k/m68k.md (UNSPEC_IB): New constant.
	(constraints.md): New include.
	(cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
	opx_mem, opy_mem, op_mem, guess, split): New attributes.
	(movdf_internal): Name pattern.  Fix to use alternatives.  Add split.
	Specify attributes.
	(pushdi): Add split.
	(tstsi_internal): Name pattern.  Fix to use alternatives.  Specify
	attributes.  Split tstsi_internal_68020_cf from it.
	(tstsi_internal_68020_cf): New pattern.
	(tsthi_internal, tstqi_internal): Name pattern.  Specify attributes.
	(tst<mode>_cf): Specify attributea.
	(cmpsi_cf): Name pattern.  Specify attributes.
	(cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
	(pushexthisi_const): Fix to use alternatives.  Specify
	attributes.
	(movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
	from it.  Fix to use alternatives.  Specify attributes.
	(movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
	(movsi_cf, movstrictqi_cf): Fix to use alternatives.  Specify
	attributes.
	(movsf_cf_soft): Specify attributes.
	(movdf_cf_soft): Add split.
	(pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
	cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
	68k_extendqisi2, truncdfsf2_cf): Specify attributes.
	(truncdfsf2_68881): Name pattern.  Specify attributes.
	(floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
	floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
	fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
	Specify attributes.
	(addsi3_5200): Fix to use alternatives.  Specify attributes.
	Add splits.
	(add<mode>3_cf, subdi_dishl32): Specify attributes.
	(subsi3): Add alternative for subq.l.  Specify attributes.
	(sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
	(mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern.  Specify
	attributes.
	(umulhisi3): Specify attributes.
	(mulhisisi3_z): Name pattern.  Specify attributes.
	(fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
	sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
	subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
	bsetmemqi): Specify attributes.
	(bsetmemqi_ext): Name pattern.  Specify attributes.
	(bclrmemqi): Specify attributes.
	(bclrmemqi_ext, scc, sls): Name pattern.  Specify attributes.
	(beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
	attributes.
	(beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
	pattern.  Specify attributes.
	(jump): Specify attributes.
	(tablejump_internal): Name pattern.  Specify attributes.
	(call_value): Split into non_symbolic_call_value,
	symbolic_call_value_jsr, symbolic_call_value_bsr.  Fix to use
	alternatives.  Specify attributes.
	(non_symbolic_call_value, symbolic_call_value_jsr,
	symbolic_call_value_bsr): New patterns.
	(nop, return, unlink, indirect_jump): Specify attributes.
	(trap): Fix condition.  Specify attributes.
	(ib): New pattern.

	* config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
	(override_options): Initialize it.  Initialize m68k_sched_cpu.
	(CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
	(const_method): Make global, rename to m68k_const_method.
	(const_int_cost, output_move_const_into_data_reg): Update.
	(output_move_double): Parametrize to emit rtl code, rename to
	handle_move_double.
	(output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
	emit_movsi): New static functions.
	(output_move_double): New function with semantics of old
	output_move_double.
	(m68k_emit_move_double): New function.
	(m68k_sched_cpu): New variable.
	(attr_op_type): New enum.
	(sched_guess_p): New variable.
	(sched_address_type, sched_operand_type, sched_attr_op_type):
	New static functions.
	(m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
	m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
	(sched_branch_type): New static variable.
	(m68k_sched_branch_type): New function.
	* config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
	(m68k_symbolic_call_var): Declare.
	(M68K_CONST_METHOD): Rename from CONST_METHOD.  Move here from m68k.c.
	(m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
	m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
	m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
	Declare.

From-SVN: r128377
2007-09-11 13:56:30 +00:00
Jakub Jelinek ab0e176c5b builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
* builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
	* builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
	error if __builtin_va_arg_pack_len () wasn't optimized out during
	inlining.
	* tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
	with the number of inline's anonymous arguments.
	* doc/extend.texi: Document __builtin_va_arg_pack_len ().

	* gcc.dg/va-arg-pack-len-1.c: New test.
	* g++.dg/va-arg-pack-len-1.C: New test.

From-SVN: r128376
2007-09-11 15:40:14 +02:00
Zdenek Dvorak e6ebd07f47 fold-const.c (extract_muldiv_1): Do not simplify var * c * c to var.
* fold-const.c (extract_muldiv_1): Do not simplify
	var * c * c to var.

From-SVN: r128375
2007-09-11 13:38:08 +00:00
Javier Miranda e18d6a151c Put back previous change, the random failure was caused by a makefile bug,
causing the Ada run-time not to be recompiled by the new compiler.

From-SVN: r128374
2007-09-11 15:31:51 +02:00
Arnaud Charlet 0f4cb75c68 Temporarily undo previous change, which seems to be causing random
failures.

From-SVN: r128372
2007-09-11 14:13:12 +02:00
Javier Miranda 97695e47b8 Resync.
From-SVN: r128371
2007-09-11 13:56:01 +02:00
Michael Matz 6e3a2cda33 * gcc.dg/tree-ssa/loadpre11.c: Add -fno-tree-cselim to flags.
From-SVN: r128370
2007-09-11 11:45:05 +00:00
Jan Hubicka 630ecd8d10 i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS.
* i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS.
	(TARGET_INTER_UNIT_CONVERSIONS): New.
	* i386.md (floatsi expanders): Remove redundant check for SImode
	source; offload to memory when asked for.
	(floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse
	floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
	Update conditions;
	(floatsisf2_mixed_memory, floatsisf2_sse_memory,
	floatsidf2_mixed_memory, floatsidf2_sse_memory
	floatdisf2_mixed_memory, floatsisf2_sse_memory,
	floatsidf2_mixed_memory, floatsidf2_sse_memory): New.

From-SVN: r128369
2007-09-11 11:38:05 +00:00
Javier Miranda 7986e000a9 einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute.
2007-09-11  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
	in library level record type entities if we are generating statically
	allocated dispatch tables.

	* exp_disp.adb (Make_Tags/Make_DT): Replace previous code
	importing/exporting the _tag declaration by new code
	importing/exporting the dispatch table wrapper. This change allows us
	to statically allocate of the TSD.
	(Make_DT.Export_DT): New procedure.
	(Build_Static_DT): New function.
	(Has_DT): New function.

	* freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
	True_Constant and Current_Value. Required to statically
	allocate the dispatch tables.
	(Check_Allocator): Make function iterative instead of recursive.
 	Also return inner allocator node, when present, so that we do not have
 	to look for that node again in the caller.

From-SVN: r128368
2007-09-11 13:03:53 +02:00
Jan Hubicka e89d601008 decl.c (java_expand_body): Kill.
* decl.c (java_expand_body): Kill.
	(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.

	* toplev.c (process_options): all frontends now do unit-at-a-time.
	* cgraphunit.c: update comments.
	(cgraph_expand_function): call passmanager dirrectly; emit thunks.
	* c-decl.c (finish_function): use cgraph_add_new_function.

	* method.c (use_thunk): Use tree_rest_of_compilation
	* cp-objecp-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
	(LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Define.
	* cp-tree.h (expand_body): Kill.
	(emit_associated_thunks): Declare.
	* semantics.c (emit_associated_thunks): Export.
	(expand_body): Kill.

	* misc.c (gnat_expand_body): Kill.
	(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.

	* f95-lang.c (gfc_expand_function): Kill.
	(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.

	* function.c (expand_function_end): We are always unit-at-a-time.

From-SVN: r128367
2007-09-11 10:39:53 +00:00
Richard Sandiford 8ce4afa36d mips.c (mips_set_mips16_mode): Use separate anchor settings for MIPS16.
gcc/
	* config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
	settings for MIPS16.
	(mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.

From-SVN: r128366
2007-09-11 10:18:35 +00:00
Richard Sandiford 206c2d7add mips.c (mips_symbol_insns_1): Allow LEAs of SYMBOL_FORCE_TO_MEM constants.
gcc/
	* config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
	SYMBOL_FORCE_TO_MEM constants.
	(mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
	(mips16_rewrite_pool_refs_info): New structure.
	(mips16_rewrite_pool_constant): New function, split out from...
	(mips16_rewrite_pool_refs): ...here.  Take a pointer to a
	mips16_rewrite_pool_refs_info structure rather than a pointer
	to a constant pool.  Force force_to_mem_operands into memory.
	(mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
	* config/mips/predicates.md (force_to_mem_operand): New predicate.
	* config/mips/constraints.md (kf): New constraint.
	* config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
	(*movsi_mips16): Likewise.

From-SVN: r128365
2007-09-11 09:51:17 +00:00
Richard Sandiford 8144a1a812 mips.h (CONSTANT_POOL_COST): Move to...
gcc/
2007-09-11  Richard Sandiford  <richard@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>
	    David Ung  <davidu@mips.com>
	
	* config/mips/mips.h (CONSTANT_POOL_COST): Move to...
	* config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
	(mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
	(mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
	(mips_zero_extend_cost): New functions.
	(mips_rtx_costs): Treat COMPARE constants as having zero cost.
	Use the new functions.  Tweak many cost estimates, both here
	and in the new subroutines.  Return false when the cost of the
	operands has not been calculated.  Check for *clear_upper32.
	Check for floating-point multiply-add, reciprocal and rsqrt
	patterns.  Handle comparison and rotation codes.

Co-Authored-By: David Ung <davidu@mips.com>
Co-Authored-By: Nigel Stephens <nigel@mips.com>

From-SVN: r128364
2007-09-11 09:24:59 +00:00
Ben Elliston b61c7743b7 Add a missing blank line to separate the two most recent entries.
From-SVN: r128363
2007-09-11 13:30:24 +10:00
Danny Smith e599ac2bef cygming.h (TARGET_STRIP_NAME_ENCODING): Don't override default.
* config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't
	override default.
	* config/i386/i386.c (get_dllimport_decl): Don't strip
	FASTCALL_PREFIX.

From-SVN: r128362
2007-09-11 01:38:40 +00:00
Janis Johnson f3d110ef04 re PR c/30013 (Multiple flaws in decimal floating-point arithmetic conversions fixed)
gcc/
	PR c/30013
	* config/dfp-bit.c: Don't skip TFmode conversions; move strto*
	declarations to top.
	(DFP_TO_BFP): Use for either XFmode or TFmode.
	(BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
	of BFP_VIA_TYPE.
	* config/dfp-bit.h: Include float.h.
	(LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
	double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
	which doesn't mean the same thing.
	(BFP_KIND): Use 4 to mean TFmode.
	(BFP_FMT): Specify the number of decimal digits based on the
	number of mantissa digits.
	(BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
	(BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
	(STR_TO_BFP): Use strtold for XFmode or TFmode.
	(TFtype): Define if TFmode is supported.
	* doc/libgcc.texi (Decimal float library routines): Document
	TF conversion functions.

gcc/testsuite/
	* gcc.dg/dfp/convert-bfp.c: Replace SKIP_LONG_DOUBLE with runtime
	checks for size of long double.
	* gcc.dg/dfp/convert.h: New file.
	* gcc.dg/dfp/convert-bfp-2.c: New test.
	* gcc.dg/dfp/convert-bfp-3.c: Ditto.
	* gcc.dg/dfp/convert-bfp-4.c: Ditto.
	* gcc.dg/dfp/convert-bfp-5.c: Ditto.
	* gcc.dg/dfp/convert-bfp-6.c: Ditto.
	* gcc.dg/dfp/convert-bfp-7.c: Ditto.
	* gcc.dg/dfp/convert-bfp-8.c: Ditto.
	* gcc.dg/dfp/convert-bfp-9.c: Ditto.
	* gcc.dg/dfp/convert-bfp-10.c: Ditto.
	* gcc.dg/dfp/convert-bfp-11.c: Ditto.

From-SVN: r128361
2007-09-11 01:11:16 +00:00
Chao-ying Fu 9fc777ad25 mips.c (mips_scalar_mode_supported_p): Declare.
* config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
	(mips_emit_compare): Process fixed-point modes.
	(mips_pad_arg_upward): Support fixed-point types.
	(override_options): Allow fixed-point modes in accumulators.
	(mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
	(mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
	V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
	(mips_scalar_mode_supported_p): New function to accept fixed-point
	modes if the width is not greater than two BITS_PER_WORD.
	* config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
	LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
	SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
	LONG_LONG_ACCUM_TYPE_SIZE): Define.
	* config/mips/mips.md ("d"): Update mode attribute for fixed-point
	modes.
	("IMODE"): New mode attribute.
	(mips-fixed.md): Include.
	* config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
	ACCUM, UACCUM.
	* config/mips/mips-fixed.md: New file.

From-SVN: r128360
2007-09-11 01:04:08 +00:00
Ben Elliston 9ccaf0a628 * config/spu/spu.md: Formatting fixes.
From-SVN: r128359
2007-09-11 10:41:19 +10:00
Janis Johnson fb27b3f6ef dfp-bit.c (dfp_unary_func): Delete.
* config/dfp-bit.c (dfp_unary_func): Delete.
	(dfp_unary_op): Delete.
	(dfp_binary_op): Use decFloat functions instead of decNumber
	functions for binary operations.
	(d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
	(dnn_binary_op): Call dfp_binary_op with decFloat rather than
	DFP_C_TYPE.
	(dfp_compare_op): Use decFloat functions insteadof decNumber
	functions for comparisons.
	(d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
	(dnn_binary_op): Call dfp_compare_op with decFloat rather than
	DFP_C_TYPE.
	(DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
	call to dxx_binary_op and decFloat function.
	(DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
	calls to dxx_binary_op and decFloat function.
	* config/dfp-bit.h: Include decFloat header files.
	(decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
	DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
	DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
	DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.

From-SVN: r128358
2007-09-11 00:25:18 +00:00
GCC Administrator 4a14361781 Daily bump.
From-SVN: r128356
2007-09-11 00:16:53 +00:00
Harsha Jagasia e70444a892 rsha Jagasia <harsha.jagasia@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
        
        * tree-vect-analyze.c (vect_analyze_operations): Change
        comparison of loop iterations with threshold to less than
        or equal to instead of less than. Reduce
        min_scalar_loop_bound by one.
        * tree-vect-transform.c (vect_estimate_min_profitable_iters): 
        Change prologue and epilogue iterations estimate to vf/2,
        when unknown at compile-time. Change versioning guard
        cost to taken_branch_cost. If peeling for alignment is
        unknown at compile-time, change peel guard costs to one
        taken branch and one not-taken branch per peeled loop.
        If peeling for alignment is known but number of scalar loop
        iterations is unknown at compile-time, change peel guard
        costs to one taken branch per peeled loop. Change the cost
        model equation to consider vector iterations as the loop
        iterations less the prologue and epilogue iterations.
        Change outside vector cost check to less than or equal to
        zero instead of equal to zero.
        (vect_do_peeling_for_loop_bound): Reduce
        min_scalar_loop_bound by one.
        * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
        TARG_COND_NOT_TAKEN_BRANCH_COST.        
        * config/i386/i386.h (processor_costs): Add
        scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
        vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
        vec_align_load_cost, vect_unalign_load_cost,
        vec_store_cost, cond_taken_branch_cost,
        cond_not_taken_branch_cost.
        Define macros for x86 costs.
        * config/i386/i386.c:
        (size_cost): Set scalar_stmt_cost, scalar_load_cost,
        scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
        scalar_to_vec_cost, vec_align_load_cost, 
        vect_unalign_load_cost, vec_store_cost,
        cond_taken_branch_cost, cond_not_taken_branch_cost to one. 
        (i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
        geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, 
        core2_cost, generic64_cost, generic32_cost): Set to default
        untuned costs.
        (k8_cost, amdfam10_cost): Costs for vectorization tuned.
        (x86_builtin_vectorization_cost): New.

2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>

        * gcc.dg/vect/costmodel/i386/costmodel-vect-31.c: 
        Change dg-final to expect 1 non-profitable loop and
        3 profitable loops.
        * gcc.dg/vect/costmodel/x86-64/costmodel-vect-31.c:
        Change dg-final to expect 1 non-profitable loop and
        3 profitable loops.
        * gcc.dg/vect/costmodel/x86-64/costmodel-fast-math-vect-pr29925.c:
        Change dg-final to expect 1 profitable loop.
        * gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c:
        Change dg-final to expect 1 profitable loop.


Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>

From-SVN: r128353
2007-09-11 00:13:47 +00:00
Janis Johnson 2533577ff6 Makefile.in (libdecnumber_a_OBJS): Remove decUtility.o
2007-09-10  Janis Johnson  <janis187@us.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

libdecnumber/
	* Makefile.in (libdecnumber_a_OBJS): Remove decUtility.o
	(dependencies): Add Symbols headers.
	* decContext.c: Upgrade to decNumber 3.53.
	* decContext.h: Ditto.
	* decDPD.h: Ditto.
	* decNumber.c: Ditto.
	* decNumber.h: Ditto.
	* decNumberLocal.h: Ditto.
	* decBasic.c: New file from decNumber 3.53.
	* decCommon.c: Ditto.
	* decDouble.c: Ditto.
	* decDouble.h: Ditto.
	* decQuad.c: Ditto.
	* decQuad.h: Ditto.
	* decSingle.c: Ditto.
	* decSingle.h: Ditto.
	* decPacked.c: Ditto.
	* decPacked.h: Ditto.
	* dpd/decimal128.c: Upgrade to decNumber 3.53.
	* dpd/decimal128.h: Ditto.
	* dpd/decimal32.c: Ditto.
	* dpd/decimal32.h: Ditto.
	* dpd/decimal64.c: Ditto.
	* dpd/decimal64.h: Ditto.
	* decLibrary.c (__dec_byte_swap): Remove.
	* decContextSymbols.h: New file.
	* decDoubleSymbols.h: New file.
	* decNumberSymbols.h: New file.
	* decPackedSymbols.h: New file.
	* decQuadSymbols.h: New file.
	* decSingleSymbols.h: New file.
	* decUtility.c: Delete file.
	* decUtility.h: Delete file.
	* bid/decimal128Symbols.h: New file.
	* bid/decimal128Local.h: New file.
	* bid/decimal32Symbols.h: New file.
	* bid/decimal64Symbols.h: New file.
	* bid/host-ieee128.c (__swap128): Remove.
	(__host_to_ieee_128, __ieee_to_host_128): Don't handle endianness.
	* bid/host-ieee32.c (__dec_type_swap): Remove.
	(__host_to_ieee_32, __ieee_to_host_32): Don't handle endianness.
	* bid/host-ieee64.c (__swap64): Remove.
	(__host_to_ieee_64, __ieee_to_host_64): Don't handle endianness.
	* dpd/decimal32Symbols.h: New file.
	* dpd/decimal64Symbols.h: New file.
	* dpd/decimal128Symbols.h: New file.
	* dpd/decimal128Local.h: New file.

libgcc/
	* Makefile.in (dfp-filenames): Remove decUtility, add
	decDouble, decPacked, decQuad, decSingle.

gcc/
	* dfp.c: Include decimal128Local.h; 
	(dfp_byte_swap): Remove.
	(encode_decimal32, decode_decimal32): Don't handle endianness.
	(encode_decimal64, decode_decimal64): Ditto.
	(encode_decimal128, decode_decimal128): Ditto.
	* config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
	(__swap64): Remove.
	(host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
         (__swap128): Remove
	(host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
	* Makefile.in (DECNUM_H): Add decimal128Local.h.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>

From-SVN: r128350
2007-09-10 20:44:08 +00:00
David Daney bfd9cff5c5 mips.md (UNSPEC_MEMORY_BARRIER): New entry in define_constants.
* config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
	define_constants.
	(memory_barrier): Rewrote as an insn that clobbers memory.

From-SVN: r128349
2007-09-10 18:23:27 +00:00
Richard Sandiford 04910611bd mips.c (mips_global_pointer): Check call_really_used_regs instead of call_used_regs.
gcc/
	* config/mips/mips.c (mips_global_pointer): Check
	call_really_used_regs instead of call_used_regs.
	(mips_save_reg_p): Likewise.  Save all call-saved registers
	if current_function_saves_all_registers.  Fix indentation.
	No longer treat $18 as a special case.
	(compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.

gcc/testsuite/
	* gcc.target/mips/call-saved-1.c: New test.
	* gcc.target/mips/call-saved-2.c: Likewise.
	* gcc.target/mips/call-saved-3.c: Likewise.
	* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_gp64
	instead of mips_mips64.  Set mips_fp64 too.
	(is_gp32_flag): Return true for -mips1 and -mips2.
	(dg-mips-options): Use mips_gp64 instead of mips_mips64.

From-SVN: r128347
2007-09-10 15:21:18 +00:00
Richard Sandiford 7d8bed7be6 mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
gcc/
	* config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
	* config/mips/mips.c (mips_cpu_info_table): Mention it in the
	the introductory comment.
	(MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
	(override_options): Don't test for it.
	* config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
	(DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
	* config/mips/vr.h: As for config/mips/sde.h.

From-SVN: r128346
2007-09-10 14:51:48 +00:00
Jakub Jelinek b3a06f593c va-arg-pack-1.C: New test.
* g++.dg/ext/va-arg-pack-1.C: New test.
	* g++.dg/ext/va-arg-pack-2.C: New test.

From-SVN: r128345
2007-09-10 16:28:13 +02:00
Rask Ingemann Lambertsen c03353e219 re PR other/32154 (sim-crt0.o/crt0.o isn't found during configure due to missing -L or -B)
PR other/32154
	* configure.ac: For libgloss targets, point the linker to the linker
	script, startup code and simulator library.
	* configure: Regenerate.

From-SVN: r128344
2007-09-10 14:20:10 +00:00
Trevor Smigiel 67186a97fe New target hook to calculate MII
Co-Authored-By: Revital Eres <eres@il.ibm.com>

From-SVN: r128343
2007-09-10 13:16:38 +00:00
Andreas Krebbel 77340500f2 s390.c (s390_dump_pool): Create copy of constant pool entries since they might hold values that must not...
2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_dump_pool): Create copy of constant
	pool entries since they might hold values that must not be shared.

From-SVN: r128342
2007-09-10 13:10:57 +00:00
Robert Kidd 232abc3ff8 bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to RTL level tracer pass.
2007-09-10 Robert Kidd <rkidd@crhc.uiuc.edu>

	* bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to
	RTL level tracer pass.
	* passes.c (init_optimization_passes): Move pass_tracer from
	after pass_rtl_ifcvt to after pass_dce.
	* tracer.c: Update copyright.
	(layout_superblocks): Remove function.
	(mark_bb_seen): New.
	(bb_seen_p): New.
	(count_insns): Change to estimate instructions in a Tree-SSA
	statement.
	(find_trace): Use bb_seen_p.
	(tail_duplicate): Use bb_seen_p.  Call add_phi_args_after_copy
	after duplicate_block.
	(tracer): Change prototype to match that of a pass execute
	callback.
	(gate_tracer): Rename from gate_handle_tracer.
	(rest_of_handle_tracer): Remove function.
	* rtl.h: Remove prototype for tracer.
	* testsuite/gcc.dg/tree-prof/tracer-1.c: New.

From-SVN: r128341
2007-09-10 12:49:46 +00:00
Arnaud Charlet 281b604e6b Resync.
From-SVN: r128340
2007-09-10 14:49:41 +02:00
Arnaud Charlet 8989330225 vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
* vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option

	* gnat_ugn.texi: Add description of the new '-lratio' option
	Update 7.3.1 section about availability of the feature.

	* exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
	inserted node.

	* Makefile.in: (mips-irix section): Activate build of libgmem.

From-SVN: r128339
2007-09-10 14:49:21 +02:00
Ed Schonberg 4b272fdd23 sem_ch12.adb (Build_Local_Package): A formal package with no associations is legal if all formals have defaults.
2007-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Build_Local_Package): A formal package with no
	associations is legal if all formals have defaults. It is not
	equivalent to a formal declared with a box.

From-SVN: r128338
2007-09-10 14:49:04 +02:00
Ed Schonberg 157a9bf572 sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is given a box association...
2007-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
	given a box association, the type of the component is discriminated,
	and the value of the discriminant is the discriminant of the enclosing
	type, retrieve its value from the aggregate itself, where it must have
	been supplied.

	* sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
	to remove other spurious ambiguities on arithmetic operations involving
	literals and addresses, on systems where Address is a visible integer
	type, when the operator is called in functional notation.
	(Try_Primitive_Operation): Within an instance, a call in prefixed form
	is legal when the types match, even if the operation is currently
	hidden.

From-SVN: r128337
2007-09-10 14:48:54 +02:00
Vincent Celier 1058369480 prj-env.ads, [...] (Create_Mapping_File (Language)): Remove parameter Runtime_Project.
2007-09-10  Vincent Celier  <celier@adacore.com>

	* prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
	parameter Runtime_Project.

From-SVN: r128336
2007-09-10 14:48:44 +02:00
Gary Dismukes 93188a0b59 exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only create an abstract subprogram in the case of 'Input.
2007-09-10  Gary Dismukes  <dismukes@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
	create an abstract subprogram in the case of 'Input. For 'Output we now
	create a real spec/body when the type is abstract, since it can
	potentially be called.
	(Predefined_Primitive_Bodies): Now allow the creation of a predefined
	body for 'Output when the type is abstract (only the creation of the
	body for 'Input is excluded when the type is abstract).
	(Stream_Operation_OK): Add an additional condition in the return
	statement, so that False will be returned for TTS_Stream_Input if the
	associated tagged type is an abstract extension. Add comments for
	return statement.
	(Expand_N_Object_Declaration): For the case of a shared passive
	variable, insert init proc call only after the shared variable
	procedures have been processed, because the IP call needs to undergo
	shared passive variable reference expansion, which requires these
	procedures to be available (and elaborated).

From-SVN: r128335
2007-09-10 14:48:35 +02:00
Vasiliy Fofanov 094f054407 adaint.c (__gnat_translate_vms): new function.
2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>

	* adaint.c (__gnat_translate_vms): new function.

From-SVN: r128334
2007-09-10 14:48:24 +02:00