1. 12 Sep, 2007 20 commits
  2. 11 Sep, 2007 20 commits
    • Add missing '>' from last commit. · f3195fd4
      From-SVN: r128398
      John David Anglin committed
    • bfin.h (enum reg_class, [...]): Add P0REGS. · 03848bd0
      	* 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
      Bernd Schmidt committed
    • linux-unwind.h: Guard with inhibit_libc. · d4c56bd7
      	* pa/linux-unwind.h: Guard with inhibit_libc.
      	* pa/hpux-unwind.h: Likewise.
      
      From-SVN: r128396
      Steve Kenton committed
    • Add parallel mode. · c2ba9709
      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
      Johannes Singler committed
    • invoke.texi: Document new MIPS -mllsc and -mno-llsc options. · 66471b47
      	* 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
      David Daney committed
    • tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with… · fa89b6ec
      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
      Eric Botcazou committed
    • Removed, noever used. · 868eaa1f
      From-SVN: r128386
      Arnaud Charlet committed
    • re PR fortran/33040 ([ISO_C_BINDING] ICE in gfc_trans_structure_assign) · 9dc35956
      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
      Christopher D. Rickett committed
    • libstdc++.exp (libstdc++_init): Revert part of 2007-09-06 change. · fa6763a6
      	* testsuite/lib/libstdc++.exp (libstdc++_init): Revert part of
      	2007-09-06 change.
      
      From-SVN: r128384
      Daniel Jacobowitz committed
    • add pr number · 5a69d120
      From-SVN: r128381
      Jason Merrill committed
    • re PR middle-end/27945 (Packed struct of variable length has wrong size) · 7e4aeb32
              PR middle-end/27945
              * stor-layout.c (layout_decl): Do pack variable size fields.
      
      From-SVN: r128380
      Jason Merrill committed
    • re PR libfortran/33386 (Fortran SELECT statement miscompiles) · 257fafe0
      	PR libfortran/33386
      	* runtime/select.c (select_string): Initialize default_jump.
      
      From-SVN: r128379
      Francois-Xavier Coudert committed
    • predicates.md (movsi_const0_operand, [...]): New predicates. · c47b0cb4
      	* 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
      Maxim Kuvyrkov committed
    • builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin. · ab0e176c
      	* 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
      Jakub Jelinek committed
    • fold-const.c (extract_muldiv_1): Do not simplify var * c * c to var. · e6ebd07f
      	* fold-const.c (extract_muldiv_1): Do not simplify
      	var * c * c to var.
      
      From-SVN: r128375
      Zdenek Dvorak committed
    • Put back previous change, the random failure was caused by a makefile bug, · e18d6a15
      causing the Ada run-time not to be recompiled by the new compiler.
      
      From-SVN: r128374
      Javier Miranda committed
    • Temporarily undo previous change, which seems to be causing random · 0f4cb75c
      failures.
      
      From-SVN: r128372
      Arnaud Charlet committed
    • Resync. · 97695e47
      From-SVN: r128371
      Javier Miranda committed
    • * gcc.dg/tree-ssa/loadpre11.c: Add -fno-tree-cselim to flags. · 6e3a2cda
      From-SVN: r128370
      Michael Matz committed