Paolo Carlini [Wed, 11 Jun 2008 22:56:51 +0000 (22:56 +0000)]
hashtable (_Hashtable<>::cbegin(size_type), [...]): Add per DR 691.
2008-06-11 Paolo Carlini <paolo.carlini@oracle.com>
* include/tr1_impl/hashtable (_Hashtable<>::cbegin(size_type),
cend(size_type)): Add per DR 691.
* testsuite/23_containers/unordered_map/requirements/cliterators.cc:
New.
* testsuite/23_containers/unordered_multimap/requirements/
cliterators.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/cliterators.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
cliterators.cc: Likewise.
* doc/xml/manual/intro.xml: Add an entry for DR 691.
From-SVN: r136685
Jakub Jelinek [Wed, 11 Jun 2008 21:43:45 +0000 (23:43 +0200)]
libgomp.h (struct gomp_task): Add in_tied_task field.
* libgomp.h (struct gomp_task): Add in_tied_task field.
* task.c (gomp_init_task): Initialize it.
(GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending
unconditionally. Don't call gomp_team_barrier_wake if
current task is implicit or if(0) from implicit and number of
running tasks is equal to nthreads - 1.
From-SVN: r136682
Edmar Wienskoski [Wed, 11 Jun 2008 20:02:55 +0000 (20:02 +0000)]
re PR target/36425 (Option -mno-isel not working)
2008-06-11 Edmar Wienskoski <edmar@freescale.com>
PR target/36425
* config/rs6000/rs6000.c (rs6000_override_options): Set
rs6000_isel conditionally to the absence of comand line
override.
* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
Remove duplicate rs6000_isel setting.
* config/rs6000/eabispe.h: Ditto.
testsuite:
2008-06-11 Edmar Wienskoski <edmar@freescale.com>
* gcc.target/powerpc/e500-1.c: New test case to verify
mno-isel option.
From-SVN: r136681
Richard Guenther [Wed, 11 Jun 2008 18:19:28 +0000 (18:19 +0000)]
alias.c (get_alias_set): Use the element alias-set for arrays.
2008-06-11 Richard Guenther <rguenther@suse.de>
* alias.c (get_alias_set): Use the element alias-set for arrays.
(record_component_aliases): For arrays and vectors do nothing.
* c-common.c (strict_aliasing_warning): Handle the cases
of alias set zero explicitly.
* Makefile.in (dfp.o-warn): Add -Wno-error.
From-SVN: r136679
Joseph Myers [Wed, 11 Jun 2008 16:03:18 +0000 (17:03 +0100)]
config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64 tune_32 tune_64.
* config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
tune_32 tune_64.
(i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
tune_32 tune_64 to supported_defaults. Allow values not
supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
x86_64. Do not override cpu_32 or cpu_64 values from target name.
(i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
with_cpu_64 to generic for 64-bit-supporting configurations, not
with_cpu. Remove FIXMEs.
* doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
--with-arch-64, --with-tune-32, --with-tune-64): Document.
* config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
(OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
arch_32 and arch_64.
From-SVN: r136674
Eric Botcazou [Wed, 11 Jun 2008 15:56:41 +0000 (15:56 +0000)]
builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
* builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
Use DECL_SIZE_UNIT to retrieve the size of the field.
Co-Authored-By: Olivier Hainque <hainque@adacore.com>
From-SVN: r136673
Matthias Klose [Wed, 11 Jun 2008 15:33:30 +0000 (15:33 +0000)]
lock_error, once_flag: Remove empty directories.
2008-06-11 Matthias Klose <doko@ubuntu.com>
* testsuite/30_threads/lock_error, testsuite/30_threads/once_flag:
Remove empty directories.
From-SVN: r136671
Joseph Myers [Wed, 11 Jun 2008 10:51:34 +0000 (11:51 +0100)]
arm.c (arm_init_neon_builtins): Move initialization with function calls after declarations.
* config/arm/arm.c (arm_init_neon_builtins): Move initialization
with function calls after declarations. Lay out
neon_float_type_node before further use.
From-SVN: r136660
Bernhard Reutner-Fischer [Wed, 11 Jun 2008 09:57:11 +0000 (11:57 +0200)]
tls.m4: Fix typos.
config:
* tls.m4: Fix typos.
libgcc:
* configure: Regenerate.
From-SVN: r136658
Richard Guenther [Wed, 11 Jun 2008 09:22:27 +0000 (09:22 +0000)]
tree-flow.h (may_point_to_global_var): Declare.
2008-06-11 Richard Guenther <rguenther@suse.de>
* tree-flow.h (may_point_to_global_var): Declare.
* tree-ssa-alias.c (may_point_to_global_var): New function.
* tree-ssa-sink.c (is_hidden_global_store): Use it.
From-SVN: r136657
Sa Liu [Wed, 11 Jun 2008 08:34:50 +0000 (08:34 +0000)]
revert another accidental check-in
From-SVN: r136655
Jakub Jelinek [Wed, 11 Jun 2008 07:06:14 +0000 (09:06 +0200)]
re PR libgomp/36471 (omp_get_ancestor_thread_num_8 has no implicit type.)
PR libgomp/36471
* omp_lib.f90.in (omp_get_ancestor_thread_num_8,
omp_get_team_size_8): Fix pastos.
From-SVN: r136654
Sa Liu [Wed, 11 Jun 2008 06:55:31 +0000 (06:55 +0000)]
Revert the accidental check-in that casued build error on SPU.
From-SVN: r136653
Jakub Jelinek [Wed, 11 Jun 2008 06:30:55 +0000 (08:30 +0200)]
re PR c++/36408 (ICE with statement expression in template)
PR c++/36408
* semantics.c (stmt_expr_value_expr): Don't crash on empty
STATEMENT_LIST.
From-SVN: r136651
Jakub Jelinek [Wed, 11 Jun 2008 06:27:04 +0000 (08:27 +0200)]
re PR libgomp/36469 (bootstrap broken on HPUX PA)
PR libgomp/36469
* configure.ac: Add AC_CHECK_FUNCS (strtoull).
* configure: Regenerated.
* config.h.in: Regenerated.
* env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
defined.
From-SVN: r136650
Jerry DeLisle [Wed, 11 Jun 2008 04:37:24 +0000 (04:37 +0000)]
cpp.c: Add copyright notice.
2008-06-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* cpp.c: Add copyright notice.
* cpp.h: Add copyright notice.
From-SVN: r136649
Kazu Hirata [Wed, 11 Jun 2008 03:08:10 +0000 (03:08 +0000)]
configure.ac: Teach that fido supports .debug_line.
* configure.ac: Teach that fido supports .debug_line.
* configure: Regenerate.
From-SVN: r136648
Tom Tromey [Wed, 11 Jun 2008 00:18:49 +0000 (00:18 +0000)]
c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file debug hook.
* c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
debug hook.
From-SVN: r136647
GCC Administrator [Wed, 11 Jun 2008 00:17:38 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r136645
Joseph Myers [Tue, 10 Jun 2008 23:43:09 +0000 (00:43 +0100)]
dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
gcc:
* dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
(encode_decimal64, decode_decimal64, encode_decimal128,
decode_decimal128): Reverse order of 32-bit parts of value if host
and target endianness differ.
libdecnumber:
* dconfig.h: New.
* decContext.c, decExcept.c, decExcept.h, decLibrary.c,
decNumber.c, decNumberLocal.h, decRound.c, dpd/decimal128.c,
dpd/decimal32.c, dpd/decimal64.c: Include dconfig.h not config.h.
* dpd/decimal128Local.h (decimal128SetSign, decimal128ClearSign,
decimal128FlipSign): Use WORDS_BIGENDIAN not
FLOAT_WORDS_BIG_ENDIAN.
* bid/host-ieee128.c: Include dconfig.h.
(__host_to_ieee_128, __ieee_to_host_128): Swap 64-bit halves of
value if WORDS_BIGENDIAN.
libgcc:
* Makefile.in (DECNUMINC): Remove
-I$(MULTIBUILDTOP)../../libdecnumber.
* gstdint.h: New.
From-SVN: r136641
Vinodha Ramasamy [Tue, 10 Jun 2008 20:21:24 +0000 (20:21 +0000)]
value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
2008-06-10 Vinodha Ramasamy <vinodha@google.com>
* value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
Avoid division by 0.
(tree_mod_pow2_value_transform): Likewise.
(tree_ic_transform): Likewise.
(tree_stringops_transform): Likewise.
(tree_mod_subtract_transform): Likewise.
* tree-inline-c (copy_bb): Corrected int type to gcov_type.
(copy_edges_for_bb): Likewise.
(initialize_cfun): Likewise.
From-SVN: r136639
Uros Bizjak [Tue, 10 Jun 2008 18:50:23 +0000 (20:50 +0200)]
i386.md (*btdi_rex64): Change operand 1 predicate to nonmemory_operand.
* config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
nonmemory_operand. Add "N" operand constraint.
(*btsi): Ditto.
(*jcc_btdi_mask_rex64): New instruction and split pattern.
(*jcc_btsi_mask): Ditto.
(*jcc_btsi_mask_1): Ditto.
testsuite/ChangeLog:
* gcc.target/i386/bt-mask-1.c: New test.
* gcc.target/i386/bt-mask-2.c: Ditto.
From-SVN: r136636
Joseph Myers [Tue, 10 Jun 2008 17:12:43 +0000 (18:12 +0100)]
rs6000.c (build_opaque_vector_type): Set TYPE_CANONICAL for copied element type.
* config/rs6000/rs6000.c (build_opaque_vector_type): Set
TYPE_CANONICAL for copied element type.
From-SVN: r136632
Olivier Hainque [Tue, 10 Jun 2008 13:14:15 +0000 (13:14 +0000)]
utils.c (create_subprog_decl): If this is for the 'main' entry point according to the asm name...
* utils.c (create_subprog_decl): If this is for the 'main' entry
point according to the asm name, redirect main_identifier_node.
From-SVN: r136619
Kai Tietz [Tue, 10 Jun 2008 12:37:51 +0000 (12:37 +0000)]
Object.m (compare): Add type id.
2008-06-10 Kai Tietz <kai.tietz@onevision.com>
* Object.m (compare): Add type id.
* objc/Object.h: Likewise.
* archive.c (objc_read_class): Use size_t to extend version to be
size of pointer scalar width.
* sendmsg.c (rtx): Undefine it before redefinition.
(__objc_print_dtable_stats): Cast arguments to long as intended.
From-SVN: r136617
Uros Bizjak [Tue, 10 Jun 2008 10:29:36 +0000 (12:29 +0200)]
re PR target/36473 (Generate bit test (bt) instructions)
PR target/36473
* config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
Add m_CORE2 and m_GENERIC.
* config/i386/predicates.md (bt_comparison_operator): New predicate.
* config/i386/i386.md (*btdi_rex64): New instruction pattern.
(*btsi): Ditto.
(*jcc_btdi_rex64): New instruction and split pattern.
(*jcc_btsi): Ditto.
(*jcc_btsi_1): Ditto.
(*btsq): Fix Intel asm dialect operand order.
(*btrq): Ditto.
(*btcq): Ditto.
testsuite/ChangeLog:
PR target/36473
* testsuite/gcc.target/i386/bt-1.c: New test.
* testsuite/gcc.target/i386/bt-2.c: Ditto.
From-SVN: r136615
GCC Administrator [Tue, 10 Jun 2008 00:17:27 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r136609
Andy Hutchinson [Mon, 9 Jun 2008 22:56:35 +0000 (22:56 +0000)]
* gcc.c-torture/execute/builtins/lib/chk.c: Only include sys/types.h for unix to check for uClibc.
From-SVN: r136605
Andy Hutchinson [Mon, 9 Jun 2008 22:48:37 +0000 (22:48 +0000)]
re PR testsuite/36285 (gcc.dg/compat/struct-by-value-xxx improper test for AVR target)
PR testsuite/36285
* gcc.dg/compat/struct-return-10_y.c: Remove test_va.
* gcc.dg/compat/vector-defs.h: Add check for availability of 8 byte double.
* gcc.dg/compat/struct-layout-1_test.h: Change bitfield to match integer size.
From-SVN: r136604
Andy Hutchinson [Mon, 9 Jun 2008 22:38:34 +0000 (22:38 +0000)]
re PR middle-end/36447 (simplify_subreg ICE with right shift more than length type AVR)
PR middle-end/36447
* simplify-rtx.c (simplify_subreg): Add check for shift count greater than size.
From-SVN: r136602
Joseph Myers [Mon, 9 Jun 2008 21:11:40 +0000 (22:11 +0100)]
pr34856.c: Condition use of -maltivec on powerpc_altivec_ok.
* gcc.dg/pr34856.c: Condition use of -maltivec on
powerpc_altivec_ok. Use -w on other powerpc*-*-linux*.
From-SVN: r136601
Richard Sandiford [Mon, 9 Jun 2008 20:45:56 +0000 (20:45 +0000)]
md.texi: Synchronize with later constraints.md change.
gcc/
* doc/md.texi: Synchronize with later constraints.md change.
* longlong.h (umul_ppmm): Replace the MIPS asm implementation
with a C implementation.
* config/mips/mips.c (mips_legitimize_move): Remove MFHI and
MFLO handling.
(mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
(mips_split_doubleword_move): Use special MTHI and MFHI instructions
when moving to and from MD_REGNUM.
(mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
Handle byte and halfword moves.
(mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
separately.
* config/mips/constraints.md (h): Turn into NO_REGS.
(l, x): Update documentation.
* config/mips/mips.md (UNSPEC_MFHILO): Delete.
(UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
(UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
(HILO): New mode iterator.
(MOVE128): Add TI.
(any_div): New code iterator.
(u): Extend code attribute to div and udiv.
(*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
d_operand in the splitters. Remove redundant CONST_INT checks.
(mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
(*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
(*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
accordingly, using normal moves instead of unspecs to move LO into
a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
(<u>mulsidi3): Handle expansion in C code.
(<u>mulsidi3_32bit_internal): Rename to...
(<u>mulsidi3_32bit): ...this.
(<u>mulsidi3_32bit_r4000): Fix insn separator.
(*<u>mulsidi3_64bit): Rename to...
(<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
to set LO and HI to the multiplication result. Use a normal move
for MFLO and an unspec for MFHI.
(*<u>mulsidi3_64bit_parts): Replace with...
(<u>mulsidi3_64bit_hilo): ...this new instruction.
(<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
(<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
and extend it to TARGET_FIX_R4000. Store the destination in a GPR
instead of HI. Split the instruction into a separate multiplication
and MFHI if !TARGET_FIX_R4000.
(<su>muldi3_highpart): Likewise.
(<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
and the "=h" clobber.
(*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
(<u>mulditi3): New expander.
(<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
(madsi): Remove "=h" clobber.
(divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
Force the modulus result to be a GPR and split the instruction into
a division followed by an MFHI after reload.
(<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
(*lea_high64): Use d_operand in the define_peephole2. Likewise
the MIPS16 HIGH define_split.
(*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
of acc<->gpr moves to "multi".
(*movdi_64bit): Replace the single "x" alternative with
alternatives for moving into and out of "a".
(*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
(*movsi_internal): Extend the "d<-A" alternative to "d<-a".
(*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
Use d_operand in the splitters. Remove redundant CONST_INT checks.
(*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
(movti): New expander.
(*movti, *movti_mips16): New insns.
(mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
(mfhi<GPR:mode>_<HILO:mode>): New pattern.
(mthi<GPR:mode>_<HILO:mode>): Likewise.
* config/mips/predicates.md (fpr_operand): Delete.
(d_operand): New predicate.
gcc/testsuite/
* gcc.dg/torture/mips-hilo-1.c: Delete.
* gcc.target/mips/pr35232.c: Likewise.
* gcc.target/mips/fix-vr4130-1.c: Use modulus to create an mfhi.
* gcc.target/mips/fix-vr4130-3.c: Likewise.
* gcc.target/mips/int-moves-1.c: New test.
* gcc.target/mips/int-moves-2.c: Likewise.
* gcc.target/mips/fix-r4000-1.c: Likewise.
* gcc.target/mips/fix-r4000-2.c: Likewise.
* gcc.target/mips/fix-r4000-3.c: Likewise.
* gcc.target/mips/fix-r4000-4.c: Likewise.
* gcc.target/mips/fix-r4000-5.c: Likewise.
* gcc.target/mips/fix-r4000-6.c: Likewise.
* gcc.target/mips/fix-r4000-7.c: Likewise.
* gcc.target/mips/fix-r4000-8.c: Likewise.
* gcc.target/mips/fix-r4000-9.c: Likewise.
* gcc.target/mips/fix-r4000-10.c: Likewise.
* gcc.target/mips/fix-r4000-11.c: Likewise.
* gcc.target/mips/fix-r4000-12.c: Likewise.
* gcc.target/mips/timode-1.c: Likewise.
* gcc.target/mips/timode-2.c: Likewise.
From-SVN: r136600
Michael Meissner [Mon, 9 Jun 2008 16:19:10 +0000 (16:19 +0000)]
Fix config.gcc shell script lossage
From-SVN: r136596
Kai Tietz [Mon, 9 Jun 2008 14:14:58 +0000 (14:14 +0000)]
cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
2008-06-09 Kai Tietz <kai.tietz@onevision.com>
* config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
From-SVN: r136590
Eric Botcazou [Mon, 9 Jun 2008 10:16:15 +0000 (12:16 +0200)]
install.texi (*-*-solaris2*): Remove obsolete contents.
* doc/install.texi (*-*-solaris2*): Remove obsolete contents.
(sparc-sun-solaris2*): Likewise.
From-SVN: r136585
Eric Botcazou [Mon, 9 Jun 2008 09:41:16 +0000 (09:41 +0000)]
decl.c (components_to_record): Adjust the packedness for the qualified union as well.
* decl.c (components_to_record): Adjust the packedness for the
qualified union as well.
From-SVN: r136583
Arnaud Charlet [Mon, 9 Jun 2008 08:27:03 +0000 (10:27 +0200)]
* doc/install.texi: Update requirements to build the Ada compiler.
From-SVN: r136580
Arnaud Charlet [Mon, 9 Jun 2008 07:50:46 +0000 (07:50 +0000)]
Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle checks non fatal.
* Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
checks non fatal.
From-SVN: r136578
Steven Bosscher [Mon, 9 Jun 2008 01:56:08 +0000 (01:56 +0000)]
df-scan.c (struct df_scan_problem_data): Remove the mw_link_pool alloc pool.
2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
* df-scan.c (struct df_scan_problem_data): Remove the
mw_link_pool alloc pool.
(df_scan_free_internal): Don't free it.
(df_scan_alloc): Don't allocate it.
* df.h (struct df_link): Update comment.
From-SVN: r136576
GCC Administrator [Mon, 9 Jun 2008 00:17:18 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r136574
Paolo Carlini [Sun, 8 Jun 2008 21:25:49 +0000 (21:25 +0000)]
re PR c++/35242 (ICE with invalid specialization of variadic template)
/cp
2008-06-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/35242
* pt.c (maybe_process_partial_specialization): Check the tree
returned by push_template_decl for error_mark_node.
* parser.c (cp_parser_class_head): Likewise, check the tree
returned by the latter.
/testsuite
2008-06-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/35242
* g++.dg/cpp0x/vt-35242.C: New.
From-SVN: r136569
Nathan Sidwell [Sun, 8 Jun 2008 19:06:49 +0000 (19:06 +0000)]
* except.h: Correct checks for when SJLJ exceptions must be used.
From-SVN: r136568
Manuel López-Ibáñez [Sun, 8 Jun 2008 16:56:57 +0000 (16:56 +0000)]
invoke.texi (Wenum-compare): Mention that it is enabled by default.
2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* doc/invoke.texi (Wenum-compare): Mention that it is enabled by
default.
From-SVN: r136567
Bruce Korb [Sun, 8 Jun 2008 16:22:00 +0000 (16:22 +0000)]
Update the copyright years and put the licensing text directly into the template file.
Update the copyright years and put the licensing text directly
into the template file. The license needs to be version dependent, so burn
it in directly.
From-SVN: r136566
Joseph Myers [Sun, 8 Jun 2008 16:14:33 +0000 (17:14 +0100)]
re PR tree-optimization/36218 (VRP causes stack overflow while building libgcj)
PR tree-optimization/36218
* Makefile.def (flags_to_pass): Add LDFLAGS_FOR_BUILD.
* Makefile.tpl (EXTRA_BUILD_FLAGS): Define.
(all prefix="build-"): Pass them to build-system sub-makes.
* Makefile.in: Regenerate.
config:
* config/mh-mingw (LDFLAGS): Define.
gcc:
* configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
configure for the build system.
(BUILD_LDFLAGS): Define.
* configure: Regenerate.
* Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
From-SVN: r136563
Anatoly Sokolov [Sun, 8 Jun 2008 16:08:08 +0000 (20:08 +0400)]
re PR target/36424 (avr-gcc use don't saved registers in ISR with -O3 ('-frename-registers' ) optimization)
PR target/36424
* config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
* config/avr/avr.c (avr_hard_regno_rename_ok): New function.
* config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
From-SVN: r136562
Bruce Korb [Sun, 8 Jun 2008 16:07:17 +0000 (16:07 +0000)]
Remove commentary fixes. Regenerate fixincl.x just to show there is no difference.
From-SVN: r136561
Janus Weil [Sun, 8 Jun 2008 11:55:41 +0000 (13:55 +0200)]
re PR fortran/36459 (Wrong interface use for PROCEDURE)
2008-06-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/36459
* decl.c (match_procedure_decl): Correctly recognize if the interface
is an intrinsic procedure.
2008-06-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/36459
* gfortran.dg/proc_decl_16.f90: New.
From-SVN: r136555
Tobias Burnus [Sun, 8 Jun 2008 07:48:53 +0000 (09:48 +0200)]
re PR fortran/35830 (ICE with PROCEDURE(<interface>) containing array formal arguments)
2008-06-08 Tobias Burnus <burnus@net-b.de>
PR fortran/35830
* resolve.c (resolve_symbol): Copy more attributes for
PROCEDUREs with interfaces.
2008-06-08 Tobias Burnus <burnus@net-b.de>
PR fortran/35830
* proc_decl_13.f90: New.
* proc_decl_14.f90: New.
* proc_decl_15.f90: New.
From-SVN: r136554
GCC Administrator [Sun, 8 Jun 2008 00:17:13 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r136551
Jerry DeLisle [Sun, 8 Jun 2008 00:09:01 +0000 (00:09 +0000)]
re PR fortran/36420 (Fortran 2008: g0 edit descriptor)
2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/36420
PR fortran/36421
PR fortran/36422
* gfortran.dg/fmt_g0_1.f08: New test.
* gfortran.dg/fmt_g0_2.f08: New test.
* gfortran.dg/fmt_g0_3.f08: New test.
From-SVN: r136547
Jerry DeLisle [Sun, 8 Jun 2008 00:01:19 +0000 (00:01 +0000)]
Fix ChangeLog
From-SVN: r136546
Jerry DeLisle [Sat, 7 Jun 2008 23:59:53 +0000 (23:59 +0000)]
re PR fortran/36420 (Fortran 2008: g0 edit descriptor)
2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/36420
PR libfortran/36421
PR libfortran/36422
* io/io.h: Add prototype for write_real.
* io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
use write_real.
* io/format.c: Add zero width error message. (parse_format_list): Use
error message for FMT_A if followed by FMT_ZERO. Use zero width error
message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
Fix typo in comment.
* io/write.c (write_a): Set wlen to len if FMT_G and length is zero.
(write_l): Add wlen variable and use it if FMT_G and width is zero.
(write_decimal): If FMT_G, set m to -1 to flag processor dependent
formatting. (write_real): Remove static declaration.
From-SVN: r136545
Jerry DeLisle [Sat, 7 Jun 2008 23:55:47 +0000 (23:55 +0000)]
PR fortran/36420, 36422
2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/36420, 36422
* io.c (check_format): Add new error message for zero width. Use new
error message for FMT_A and with READ, FMT_G. Allow FMT_G with WRITE
except when -std=F95 and -std=F2003.
From-SVN: r136544
Xinliang David Li [Sat, 7 Jun 2008 22:56:15 +0000 (22:56 +0000)]
cdce1.c: Remove run target clause.
2008-06-07 Xinliang David Li <davidxl@google.com>
PR/36440
* gcc.dg/cdce1.c: Remove run target clause.
* gcc.dg/cdce2.c: Ditto.
* g++.dg/cdce3.C: Fix a bug in target specification.
From-SVN: r136542
Danny Smith [Sat, 7 Jun 2008 22:50:24 +0000 (22:50 +0000)]
cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
* config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
From-SVN: r136541
Bruce Korb [Sat, 7 Jun 2008 22:25:33 +0000 (22:25 +0000)]
copy in the new generated "pthread.h" header
From-SVN: r136540
Bruce Korb [Sat, 7 Jun 2008 22:19:45 +0000 (22:19 +0000)]
clean up fixes
From-SVN: r136539
Tobias Burnus [Sat, 7 Jun 2008 18:56:19 +0000 (20:56 +0200)]
Add missing PR to change log. (Forgot it in Rev. 136536)
From-SVN: r136537
Tobias Burnus [Sat, 7 Jun 2008 18:53:07 +0000 (20:53 +0200)]
re PR fortran/36437 (Simplify argument to [c_]sizeof)
2008-06-04 Tobias Burnus <burnus@net-b.de>
PR fortran/36437
* intrinsic.c (add_functions): Implement c_sizeof.
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
create unneeded variable in the scalar case.
2008-06-04 Tobias Burnus <burnus@net-b.de>
PR fortran/36437
* gfortran.dg/c_sizeof_1.f90: New.
* gfortran.dg/c_sizeof_2.f90: New.
From-SVN: r136536
Joseph Myers [Sat, 7 Jun 2008 18:00:15 +0000 (19:00 +0100)]
MAINTAINERS (mt port): Remove.
* MAINTAINERS (mt port): Remove.
(sco5, unixware, sco udk): Remove.
(Kean Johnston): Add to Write After Approval.
fixincludes:
* inclhack.def (AAB_svr4_replace_byteorder,
AAB_ultrix_ansi_compat, AAB_ultrix_limits, AAB_ultrix_memory,
libc1_G_va_list, libc1_ifdefd_memx, nested_motorola,
ptx_sys_mc_param_h, sco_regset, sco_static_func, sco_utime,
solaris_mutex_init_1, solaris_socket, solaris_unistd,
solaris_widec, svr4_krnl, ultrix_atexit_param, ultrix_atof_param,
ultrix_const3, ultrix_fix_fixproto, ultrix_ifdef, ultrix_locale,
ultrix_math_ifdef, ultrix_nested_ioctl, ultrix_nested_svc,
ultrix_stat, ultrix_static, ultrix_stdlib, ultrix_strings,
ultrix_strings2, ultrix_sys_time, ultrix_unistd,
unicosmk_restrict, uw7_byteorder_fix, windiss_math1,
windiss_math2, windiss_valist): Remove.
* fixincl.x: Regenerate.
* mkfixinc.sh: (arm-semi-aof, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i370-*-openedition, i?86-*-moss*, i?86-*-uwin*,
powerpc-*-eabiaix*): Remove.
* tests/base/math.h: Update.
* tests/base/pthread.h: Update.
* tests/base/stdio.h: Update.
* tests/base/stdlib.h: Update.
* tests/base/string.h: Update.
* tests/base/strings.h: Update.
* tests/base/sys/file.h: Update.
* tests/base/sys/limits.h: Update.
* tests/base/sys/socket.h: Update.
* tests/base/sys/stat.h: Update.
* tests/base/sys/time.h: Update.
* tests/base/testing.h: Update.
* tests/base/unistd.h: Update.
* tests/base/_G_config.h: Remove.
* tests/base/arpa: Remove directory.
* tests/base/fs: Remove directory.
* tests/base/locale.h: Remove.
* tests/base/machine: Remove directory.
* tests/base/rpc/svc.h: Remove.
* tests/base/sys/ioctl.h: Remove.
* tests/base/sys/regset.h: Remove.
* tests/base/sys/times.h: Remove.
* tests/base/sys/utsname.h: Remove.
* tests/base/widec.h: Remove.
gcc:
* config.gcc (Obsolete configurations): Remove list of
configurations.
(Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
*-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
targets matched by those patterns.
(strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
Make code for Solaris 7 and greater unconditional for Solaris.
(ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
Remove --with-* handling.
* config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
(LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
LINK_OS_WINDISS_SPEC): Remove.
* config/rs6000/sysv4.opt (mwindiss): Remove.
* configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
* configure: Regenerate.
* doc/cpp.texi: Don't mention BeOS.
* doc/extend.texi (interrupt): Don't mention MS1.
* doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
Remove.
* doc/invoke.texi (MT Options): Remove.
(-mwindiss): Remove.
(CRIS Options): Remove cris-axis-aout references.
(HPPA Options): Don't mention hppa1.1-*-pro.
* doc/md.texi: (MorphoTech family): Remove.
* libgcc2.c: Don't handle UWIN.
* config/alpha/t-unicosmk: Remove.
* config/alpha/unicosmk.h: Remove.
* config/arm/kaos-arm.h: Remove.
* config/arm/kaos-strongarm.h: Remove.
* config/arm/strongarm-coff.h: Remove.
* config/arm/strongarm-elf.h: Remove.
* config/arm/strongarm-pe.h: Remove.
* config/arm/t-strongarm-pe: Remove.
* config/arm/t-xscale-coff: Remove.
* config/arm/t-xscale-elf: Remove.
* config/arm/xscale-coff.h: Remove.
* config/arm/xscale-elf.h: Remove.
* config/chorus.h: Remove.
* config/cris/aout.h: Remove.
* config/cris/aout.opt: Remove.
* config/cris/t-aout: Remove.
* config/i386/beos-elf.h: Remove.
* config/i386/kaos-i386.h: Remove.
* config/i386/ptx4-i.h: Remove.
* config/i386/sco5.h: Remove.
* config/i386/sco5.opt: Remove.
* config/i386/sysv4-cpp.h: Remove.
* config/i386/sysv5.h: Remove.
* config/i386/t-beos: Remove.
* config/i386/t-sco5: Remove.
* config/i386/t-uwin: Remove.
* config/i386/uwin.asm: Remove.
* config/i386/uwin.h: Remove.
* config/kaos.h: Remove.
* config/mips/windiss.h: Remove.
* config/mt: Remove directory.
* config/pa/pa-osf.h: Remove.
* config/pa/pa-pro-end.h: Remove.
* config/pa/t-pro: Remove.
* config/ptx4.h: Remove.
* config/rs6000/beos.h: Remove.
* config/rs6000/kaos-ppc.h: Remove.
* config/rs6000/t-beos: Remove.
* config/rs6000/windiss.h: Remove.
* config/sh/kaos-sh.h: Remove.
* config/sol2-6.h: Remove.
* config/sparc/sol26-sld.h: Remove.
* config/sparc/sysv4-only.h: Remove.
* config/vax/bsd.h: Remove.
* config/vax/t-memfuncs: Remove.
* config/vax/ultrix.h: Remove.
* config/vax/vaxv.h: Remove.
* config/windiss.h: Remove.
gcc/testsuite:
* g++.dg/abi/arm_cxa_vec1.C: Don't handle xscale*-*-*.
* g++.dg/eh/spbp.C: Don't handle *-*-solaris2.[56]*.
* g++.dg/warn/miss-format-1.C: Don't handle Solaris before Solaris
7.
* gcc.c-torture/compile/981006-1.c: Don't handle xscale*-*-*,
strongarm*-*-* and cris-*-aout*.
* gcc.c-torture/execute/941014-1.x: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/
20030909-1.c: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/
20031108-1.c: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/
20040813-1.c: Don't handle *-*-sysv5*.
* gcc.dg/arm-asm.c: Don't handle strongarm*-*-* and xscale*-*-*.
* gcc.dg/arm-scd42-1.c: Use target arm*-*-*.
* gcc.dg/arm-scd42-3.c: Use target arm*-*-*.
* gcc.dg/cpp/assert4.c: Don't handle BeOS.
* gcc.dg/debug/pr35154.c: Don't handle *-*-sysv5*.
* gcc.dg/intmax_t-1.c: Don't handle *-*-solaris2.5.1 and
xscale*-*-elf*.
* gcc.dg/pragma-align.c: Don't handle i?86-*-sco3.2v5*.
* gcc.dg/pthread-init-2.c: Don't handle *-*-solaris2.5.1.
* gcc.misc-tests/arm-isr.exp: Use target arm*-*-*.
* gcc.target/powerpc/ppc-sdata-1.c: Don't handle powerpc-*-sysv*.
* gcc.target/powerpc/ppc-sdata-2.c: Don't handle powerpc-*-sysv*.
* gcc.target/powerpc/ppc-stackalign-1.c: Don't handle
powerpc-*-sysv*.
* gfortran.dg/debug/pr35154-stabs.f: Don't handle *-*-sysv5*.
* lib/target-supports.exp: Don't handle strongarm*-*-elf,
xscale*-*-elf and *-*-windiss.
* obj-c++.dg/dwarf-2.mm: Don't handle *-*-solaris2.[56]*.
* objc.dg/dwarf-1.m: Don't handle *-*-solaris2.[56]*.
* objc.dg/dwarf-2.m: Don't handle *-*-solaris2.[56]*.
* gcc.dg/mt-loopi1.c: Remove.
gnattools:
* configure.ac (xscale*-wrs-vx*, xscale*-wrs-coff): Remove.
* configure: Regenerate.
libcpp:
* configure.ac (parisc*64*-*-*): Remove.
* configure: Regenerate.
libffi:
* configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
powerpc-*-beos*): Remove.
* configure: Regenerate.
libgcc:
* config.host (strongarm*-*-*, ep9312*-*-*, xscale-*-*,
parisc*-*-*, m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
vax-*-ultrix*, xscale-*-elf, xscale-*-coff): Remove.
libjava:
* configure.host (strongarm*-elf, xscale*-elf): Remove.
libstdc++-v3:
* configure.host (xscale, ep9312, m680[246]0, solaris2.5,
solaris2.5.[0-9], solaris2.6, windiss*): Remove.
* crossconfig.m4 (*-solaris2.5, *-solaris2.6, *-windiss*): Remove.
* configure: Regenerate.
* config/os/solaris/solaris2.5: Remove directory.
* config/os/solaris/solaris2.6: Remove directory.
* config/os/windiss: Remove directory.
From-SVN: r136534
Samuel Tardieu [Sat, 7 Jun 2008 16:10:50 +0000 (16:10 +0000)]
sem_res.adb (Large_Storage_Type): A type is large if it requires as many bits as Positive to store its values and...
gcc/ada/
* sem_res.adb (Large_Storage_Type): A type is large if it
requires as many bits as Positive to store its values and its
bounds are known at compile time.
* sem_ch13.adb (Minimum_Size): Note that this function returns
0 if the size is not known at compile time.
gcc/testsuite/
* gnat.dg/specs/oversize.ads: New.
From-SVN: r136532
Paolo Carlini [Sat, 7 Jun 2008 08:06:46 +0000 (08:06 +0000)]
re PR c++/35327 (ICE with invalid constructor)
/cp
2008-06-07 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/35327
* decl.c (grokdeclarator): In case of wrong return type return
immediately error_mark_node.
/testsuite
2008-06-07 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/35327
* g++.dg/parse/crash41.C: New.
From-SVN: r136518
Olivier Hainque [Sat, 7 Jun 2008 07:12:05 +0000 (07:12 +0000)]
Move Ada specific log to the Ada ChangeLog file.
From-SVN: r136517
GCC Administrator [Sat, 7 Jun 2008 00:17:26 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r136513
Nicolas Setton [Fri, 6 Jun 2008 21:36:28 +0000 (21:36 +0000)]
ada-tree.h (DECL_PARALLEL_TYPE): New language specific attribute...
2008-06-06 Nicolas Setton <setton@adacore.com>
Olivier Hainque <hainque@adacore.com>
* ada-tree.h (DECL_PARALLEL_TYPE): New language specific
attribute, parallel descriptive type attached to another type
for debug info generation purposes.
* utils.c (add_parallel_type): New function, register parallel
type to be attached to a type.
(get_parallel_type): New function, fetch a registered parallel
type, if any.
(rest_of_record_type_compilation): Register the parallel type we
make for variable size records.
* gigi.h (add_parallel_type, get_parallel_type): Declare.
* decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
parallel debug types we make.
* trans.c (extract_encoding, decode_name): New functions.
(gigi): If the DWARF attribute extensions are available, setup
to use them.
* lang.opt: Register language specific processing request
for -gdwarf+.
* misc.c (gnat_dwarf_extensions): New global variable. How much
do we want of our DWARF extensions. 0 by default.
(gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
(gnat_post_options): Map gnat_dwarf_extensions to the common
use_gnu_debug_info_extensions for later processing.
Co-Authored-By: Olivier Hainque <hainque@adacore.com>
From-SVN: r136506
Andreas Tobler [Fri, 6 Jun 2008 20:30:31 +0000 (20:30 +0000)]
re PR bootstrap/36452 (Broken bootstrap while building libgomp.)
2008-06-06 Andreas Tobler <a.tobler@schweiz.org>
PR bootstrap/36452
* loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
(GOMP_loop_ull_dynamic_start): Likewise.
(GOMP_loop_ull_guided_start): Likewise.
(GOMP_loop_ull_ordered_static_start): Likewise.
(GOMP_loop_ull_ordered_dynamic_start): Likewise.
(GOMP_loop_ull_ordered_guided_start): Likewise.
From-SVN: r136503
Benjamin Kosnik [Fri, 6 Jun 2008 19:38:03 +0000 (19:38 +0000)]
using.xml: Outline exception topics.
2008-06-06 Benjamin Kosnik <bkoz@redhat.com>
* doc/xml/manual/using.xml: Outline exception topics.
* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Format.
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
policy_access_fn_imps.hpp: Same.
* include/ext/pb_ds/priority_queue.hpp: Same.
* include/ext/throw_allocator.h: Same.
* include/ext/pb_ds/tag_and_trait.hpp (string_tag): New tag.
(sequence_tag): New tag. Doxygen markup fixes.
* testsuite/lib/libstdc++.exp: Remove twister_ran_gen.cc source file.
* testsuite/performance/ext/pb_ds/text_find_timing.cc: Fix
comment typo, include paths, format.
* testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
hash_random_int_erase_mem_usage.cc: Same.
* testsuite/performance/ext/pb_ds/
random_int_subscript_find_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_text_push_timing.cc: Same.
* testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same.
* testsuite/performance/ext/pb_ds/random_int_find_timing.cc: Same.
* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
* testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
* testsuite/performance/ext/pb_ds/
priority_queue_random_int_push_timing.cc: Same.
* testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
* testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_text_push_pop_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_text_join_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_random_int_push_pop_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
random_int_subscript_insert_timing.cc: Same.
* testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc: Same.
* testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
* testsuite/performance/ext/pb_ds/
priority_queue_text_pop_mem_usage.cc: Same.
* testsuite/performance/ext/pb_ds/
hash_zlob_random_int_find_timing.cc: Same.
* testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Same.
* testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same.
* testsuite/util/regression/trait/priority_queue/trait.hpp: Same.
* testsuite/util/regression/trait/erase_if_fn.hpp: Same.
* testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/node_update_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/get_set_load_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/trait.hpp: Same.
* testsuite/util/regression/trait/assoc/resize_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/to_string.hpp: Same.
* testsuite/util/regression/basic_type.hpp: Same.
* testsuite/util/common_type/priority_queue/string_form.hpp: Same.
* testsuite/util/common_type/priority_queue/detail/
ds_string_form.hpp: Same.
* testsuite/util/common_type/assoc/string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
resize_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
trigger_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
comb_hash_fn_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
size_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
probe_fn_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
list_update_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
store_hash_string_form.hpp: Same.
* testsuite/util/common_type/assoc/native_set.hpp: Same.
* testsuite/util/io/prog_bar.cc: Same.
* testsuite/util/regression/rand/io: Remove.
* testsuite/util/regression/rand/io/priority_queue: Same.
* testsuite/util/regression/rand/io/assoc: Same.
* testsuite/util/regression/rand/io/priority_queue/
xml_formatter.hpp: Consolidate this...
* testsuite/util/regression/rand/io/assoc/xml_formatter.hpp: ...this
* testsuite/util/regression/rand/io/xml_formatter.hpp: ... and this
* testsuite/util/regression/rand/xml_formatter.hpp: ...here.
* testsuite/util/regression/rand/priority_queue/
container_rand_regression_test.hpp:To ...
container_rand_regression_test.h: ... this.
* testsuite/util/regression/rand/priority_queue/detail/*.hpp:To ...
* testsuite/util/regression/rand/priority_queue/
container_rand_regression_test.tcc: ... this.
PB_DS_THROW_IF_FAIL: Change to _GLIBCXX_THROW_IF, adjust predicate.
PB_DS_SET_DESTRUCT_PRINT: Fold inline.
PB_DS_CANCEL_DESTRUCT_PRINT: Fold inline.
* testsuite/util/regression/rand/priority_queue/
rand_regression_test.hpp: Adjust includes.
* testsuite/util/regression/rand/assoc/
container_rand_regression_test.hpp: To ...
* testsuite/util/regression/rand/assoc/
container_rand_regression_test.h: ... this.
* testsuite/util/regression/rand/assoc/detail/*.hpp:To ...
* testsuite/util/regression/rand/assoc/
container_rand_regression_test.tcc: ...this.
* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Adjust
includes.
* testsuite/util/regression/priority_queue: Remove.
* testsuite/util/regression/assoc: Remove.
* testsuite/util/regression/priority_queue/
common_type.hpp: Consolidate this...
* testsuite/util/regression/assoc/common_type.hpp: ... and this
* testsuite/util/regression/common_type.hpp: ...here.
* testsuite/util/rng: Remove.
* testsuite/util/rng/twister_rand_gen.cc: Consolidate...
* testsuite/util/rng/twister_rand_gen.hpp: ... and this
* testsuite/util/testsuite_rng.h: ...here.
* testsuite/util/native_type/priority_queue: Remove.
* testsuite/util/native_type/priority_queue/
native_priority_queue.hpp: To...
* testsuite/util/native_type/native_priority_queue.hpp: ...here.
* testsuite/util/native_type/assoc: Remove.
* testsuite/util/native_type/assoc/native_multimap.hpp: To...
* testsuite/util/native_type/assoc/native_tree_tag.hpp: To...
* testsuite/util/native_type/assoc/native_hash_multimap.hpp: To...
* testsuite/util/native_type/assoc/native_set.hpp: To...
* testsuite/util/native_type/assoc/native_map.hpp: To...
* testsuite/util/native_type/assoc/native_hash_set.hpp: To...
* testsuite/util/native_type/assoc/native_hash_tag.hpp: To...
* testsuite/util/native_type/assoc/native_hash_map.hpp: To...
* testsuite/util/native_type/native_multimap.hpp: ...here.
* testsuite/util/native_type/native_tree_tag.hpp: ...here.
* testsuite/util/native_type/native_hash_multimap.hpp: ...here.
* testsuite/util/native_type/native_set.hpp: ...here.
* testsuite/util/native_type/native_map.hpp: ...here.
* testsuite/util/native_type/native_hash_set.hpp: ...here.
* testsuite/util/native_type/native_hash_tag.hpp: ...here.
* testsuite/util/native_type/native_hash_map.hpp: ...here.
* testsuite/util/common_type/priority_queue/common_type.hpp:
Make include guard distinct.
* testsuite/util/common_type/assoc/common_type.hpp: Same.
From-SVN: r136498
Benjamin Kosnik [Fri, 6 Jun 2008 19:32:43 +0000 (19:32 +0000)]
using.xml: Outline exception topics.
2008-06-06 Benjamin Kosnik <bkoz@redhat.com>
* doc/xml/manual/using.xml: Outline exception topics.
* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Format.
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
policy_access_fn_imps.hpp: Same.
* include/ext/pb_ds/priority_queue.hpp: Same.
* include/ext/throw_allocator.h: Same.
* include/ext/pb_ds/tag_and_trait.hpp (string_tag): New tag.
(sequence_tag): New tag. Doxygen markup fixes.
* testsuite/lib/libstdc++.exp: Remove twister_ran_gen.cc source file.
* testsuite/performance/ext/pb_ds/text_find_timing.cc: Fix
comment typo, include paths, format.
* testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
hash_random_int_erase_mem_usage.cc: Same.
* testsuite/performance/ext/pb_ds/
random_int_subscript_find_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_text_push_timing.cc: Same.
* testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same.
* testsuite/performance/ext/pb_ds/random_int_find_timing.cc: Same.
* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
* testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
* testsuite/performance/ext/pb_ds/
priority_queue_random_int_push_timing.cc: Same.
* testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
* testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_text_push_pop_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_text_join_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_random_int_push_pop_timing.cc: Same.
* testsuite/performance/ext/pb_ds/
random_int_subscript_insert_timing.cc: Same.
* testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc: Same.
* testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
* testsuite/performance/ext/pb_ds/
priority_queue_text_pop_mem_usage.cc: Same.
* testsuite/performance/ext/pb_ds/
hash_zlob_random_int_find_timing.cc: Same.
* testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Same.
* testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same.
* testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same.
* testsuite/util/regression/trait/priority_queue/trait.hpp: Same.
* testsuite/util/regression/trait/erase_if_fn.hpp: Same.
* testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/node_update_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/get_set_load_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/trait.hpp: Same.
* testsuite/util/regression/trait/assoc/resize_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
* testsuite/util/regression/trait/assoc/to_string.hpp: Same.
* testsuite/util/regression/basic_type.hpp: Same.
* testsuite/util/common_type/priority_queue/string_form.hpp: Same.
* testsuite/util/common_type/priority_queue/detail/
ds_string_form.hpp: Same.
* testsuite/util/common_type/assoc/string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
resize_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
trigger_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
comb_hash_fn_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
size_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
probe_fn_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
list_update_policy_string_form.hpp: Same.
* testsuite/util/common_type/assoc/detail/
store_hash_string_form.hpp: Same.
* testsuite/util/common_type/assoc/native_set.hpp: Same.
* testsuite/util/io/prog_bar.cc: Same.
* testsuite/util/regression/rand/io: Remove.
* testsuite/util/regression/rand/io/priority_queue: Same.
* testsuite/util/regression/rand/io/assoc: Same.
* testsuite/util/regression/rand/io/priority_queue/
xml_formatter.hpp: Consolidate this...
* testsuite/util/regression/rand/io/assoc/xml_formatter.hpp: ...this
* testsuite/util/regression/rand/io/xml_formatter.hpp: ... and this
* testsuite/util/regression/rand/xml_formatter.hpp: ...here.
* testsuite/util/regression/rand/priority_queue/
container_rand_regression_test.hpp:To ...
container_rand_regression_test.h: ... this.
* testsuite/util/regression/rand/priority_queue/detail/*.hpp:To ...
* testsuite/util/regression/rand/priority_queue/
container_rand_regression_test.tcc: ... this.
PB_DS_THROW_IF_FAIL: Change to _GLIBCXX_THROW_IF, adjust predicate.
PB_DS_SET_DESTRUCT_PRINT: Fold inline.
PB_DS_CANCEL_DESTRUCT_PRINT: Fold inline.
* testsuite/util/regression/rand/priority_queue/
rand_regression_test.hpp: Adjust includes.
* testsuite/util/regression/rand/assoc/
container_rand_regression_test.hpp: To ...
* testsuite/util/regression/rand/assoc/
container_rand_regression_test.h: ... this.
* testsuite/util/regression/rand/assoc/detail/*.hpp:To ...
* testsuite/util/regression/rand/assoc/
container_rand_regression_test.tcc: ...this.
* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Adjust
includes.
* testsuite/util/regression/priority_queue: Remove.
* testsuite/util/regression/assoc: Remove.
* testsuite/util/regression/priority_queue/
common_type.hpp: Consolidate this...
* testsuite/util/regression/assoc/common_type.hpp: ... and this
* testsuite/util/regression/common_type.hpp: ...here.
* testsuite/util/rng: Remove.
* testsuite/util/rng/twister_rand_gen.cc: Consolidate...
* testsuite/util/rng/twister_rand_gen.hpp: ... and this
* testsuite/util/testsuite_rng.h: ...here.
* testsuite/util/native_type/priority_queue: Remove.
* testsuite/util/native_type/priority_queue/
native_priority_queue.hpp: To...
* testsuite/util/native_type/native_priority_queue.hpp: ...here.
* testsuite/util/native_type/assoc: Remove.
* testsuite/util/native_type/assoc/native_multimap.hpp: To...
* testsuite/util/native_type/assoc/native_tree_tag.hpp: To...
* testsuite/util/native_type/assoc/native_hash_multimap.hpp: To...
* testsuite/util/native_type/assoc/native_set.hpp: To...
* testsuite/util/native_type/assoc/native_map.hpp: To...
* testsuite/util/native_type/assoc/native_hash_set.hpp: To...
* testsuite/util/native_type/assoc/native_hash_tag.hpp: To...
* testsuite/util/native_type/assoc/native_hash_map.hpp: To...
* testsuite/util/native_type/native_multimap.hpp: ...here.
* testsuite/util/native_type/native_tree_tag.hpp: ...here.
* testsuite/util/native_type/native_hash_multimap.hpp: ...here.
* testsuite/util/native_type/native_set.hpp: ...here.
* testsuite/util/native_type/native_map.hpp: ...here.
* testsuite/util/native_type/native_hash_set.hpp: ...here.
* testsuite/util/native_type/native_hash_tag.hpp: ...here.
* testsuite/util/native_type/native_hash_map.hpp: ...here.
* testsuite/util/common_type/priority_queue/common_type.hpp:
Make include guard distinct.
From-SVN: r136497
Joseph Myers [Fri, 6 Jun 2008 19:11:26 +0000 (20:11 +0100)]
configure.ac: Do not check for gconv.h.
* configure.ac: Do not check for gconv.h.
* crossconfig.m4 (GLIBCXX_CROSSCONFIG): Do not test for gconv.h or
gconf.h. For glibc and uClibc systems, define
_GLIBCXX_USE_RANDOM_TR1 and HAVE_MMAP and use AC_LC_MESSAGES and
AM_ICONV.
* configure, config.h.in: Regenerate.
From-SVN: r136494
Tobias Burnus [Fri, 6 Jun 2008 17:19:02 +0000 (19:19 +0200)]
intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
2008-06-06 Tobias Burnus <burnus@net-b.de>
* intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
From-SVN: r136491
Uros Bizjak [Fri, 6 Jun 2008 15:04:51 +0000 (17:04 +0200)]
re PR rtl-optimization/36438 (gcc ICE compiling code with mmx builtin)
PR rtl-optimization/36438
* cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
for vector shifts with constant scalar shift operands.
From-SVN: r136486
Joseph Myers [Fri, 6 Jun 2008 15:03:52 +0000 (16:03 +0100)]
all.cc, [...]: Only include <ext/codecvt_specializations.h> and <ext/enc_filebuf.h> if...
* testsuite/17_intro/headers/all.cc,
testsuite/17_intro/headers/all_c++200x_compatibility.cc,
testsuite/17_intro/headers/all_pedantic_errors.cc,
testsuite/ext/headers.cc: Only include
<ext/codecvt_specializations.h> and <ext/enc_filebuf.h> if
_GLIBCXX_HAVE_ICONV.
From-SVN: r136485
Sandip Matte [Fri, 6 Jun 2008 14:24:57 +0000 (14:24 +0000)]
invoke.texi: Document -march=xlr.
gcc/
2008-06-05 Sandip Matte <sandip@rmicorp.com>
* doc/invoke.texi: Document -march=xlr.
* config/mips/xlr.md: New file.
* config/mips/mips.md: Include it.
(cpu): Add "xlr".
* config/mips/mips.h (PROCESSOR_XLR): New processor_type.
* config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
(mips_rtx_cost_data): Likewise.
From-SVN: r136438
Nathan Froyd [Fri, 6 Jun 2008 13:46:45 +0000 (13:46 +0000)]
rs6000.c (rs6000_mode_dependent_address): Remove PRE_INC and PRE_DEC cases.
* config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
PRE_INC and PRE_DEC cases.
From-SVN: r136437
Jakub Jelinek [Fri, 6 Jun 2008 13:24:45 +0000 (15:24 +0200)]
re PR rtl-optimization/36419 (Wrong unwind info with -Os -fasynchronous-unwind-tables)
PR rtl-optimization/36419
* except.c (expand_resx_expr): Call do_pending_stack_adjust () before
the emitting jump insn.
From-SVN: r136435
Jakub Jelinek [Fri, 6 Jun 2008 13:23:04 +0000 (15:23 +0200)]
re PR target/36362 (ICE in simplify_subreg)
PR target/36362
* gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
is not bool, boolify the whole *expr_p and convert to the desired type.
* gcc.c-torture/execute/
20080529-1.c: New test.
From-SVN: r136434
Jakub Jelinek [Fri, 6 Jun 2008 13:01:54 +0000 (15:01 +0200)]
c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
200805.
* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
Add omp_private_outer_ref hook, add another argument to
omp_clause_default_ctor hook.
* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
hook_tree_tree_tree_tree_null.
(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
* hooks.c (hook_tree_tree_tree_tree_null): New function.
* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
* tree.def (OMP_TASK): New tree code.
* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
OMP_CLAUSE_COLLAPSE_EXPR): Define.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(OMP_DIRECTIVE_P): Add OMP_TASK.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
and OMP_CLAUSE_UNTIED entries.
(omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
num_ops to 2.
(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
* c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
warning about unsigned iterators. Change decl/init/cond/incr
arguments to TREE_VECs, check arguments for all collapsed loops.
(c_finish_omp_taskwait): New function.
(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
ws_clauses.
* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
default_function_array_conversion on init. Add par_clauses argument.
If decl is present in parallel's lastprivate clause, change it to
shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
collapse count in clauses.
(c_parser_omp_for, c_parser_omp_parallel): Adjust
c_parser_omp_for_loop callers.
(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
(c_parser_omp_clause_name): Handle collapse and untied clauses.
(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
functions.
(c_parser_omp_clause_schedule): Handle schedule(auto).
Include correct location in the error message.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_TASK_CLAUSE_MASK): Define.
(c_parser_omp_task, c_parser_omp_taskwait): New functions.
(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
OMP_CLAUSE_DECL.
(conver_nonlocal_reference, convert_local_reference,
convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
* c-common.h (c_finish_omp_taskwait): New prototype.
* gimple-low.c (lower_stmt): Handle OMP_TASK.
* tree-parloops.c (create_parallel_loop): Create 1 entry
vectors for OMP_FOR_{INIT,COND,INCR}.
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
(make_edges): Handle OMP_TASK.
* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
handle POINTER_PLUS_EXPR. If loop counter has been replaced and
original iterator is present in lastprivate clause or if
collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Handle
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
to be implicitly determined firstprivate for task regions.
(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Set
OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Take region_type as last argument
instead of in_parallel and in_combined_parallel.
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
Adjust callers.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause
langhook.
(new_omp_context): Set default_kind to
OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
(omp_region_type): New enum.
(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
fields, add region_type.
(new_omp_context): Take region_type as argument instead of is_parallel
and is_combined_parallel.
(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
omp_is_private, omp_check_private): Adjust ctx->is_parallel and
ctx->is_combined_parallel checks.
(gimplify_omp_task): New function.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* omp-low.c (extract_omp_for_data): Use schedule(static)
for schedule(auto). Handle pointer and unsigned iterators.
Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
Add loops argument. Extract data for collapsed OMP_FOR loops.
(expand_parallel_call): Assert sched_kind isn't auto,
map runtime schedule to index 3.
(struct omp_for_data_loop): New type.
(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
Add loop, loops, collapse and iter_type fields.
(workshare_safe_to_combine_p): Disallow combined for if
iter_type is unsigned long long. Don't combine collapse > 1 loops
unless all bounds and steps are constant. Adjust extract_omp_for_data
caller.
(expand_omp_for_generic): Handle pointer, unsigned and long long
iterators. Handle collapsed OMP_FOR loops. Adjust
for struct omp_for_data changes. If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
pointer, unsigned and long long iterators. Adjust for struct
omp_for_data changes.
(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
unsigned long long. Allocate loops array, pass it to
extract_omp_for_data. For collapse > 1 loops use always
expand_omp_for_generic.
(omp_context): Add sfield_map and srecord_type fields.
(is_task_ctx, lookup_sfield): New functions.
(use_pointer_for_field): Use is_task_ctx helper. Change first
argument's type from const_tree to tree. Clarify comment.
In OMP_TASK disallow copy-in/out sharing.
(build_sender_ref): Call lookup_sfield instead of lookup_field.
(install_var_field): Add mask argument. Populate both record_type
and srecord_type if needed.
(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
in srecord_type.
(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
and DECL_FIELD_OFFSET.
(scan_sharing_clauses): Adjust install_var_field callers. For
firstprivate clauses on explicit tasks allocate the var by value in
record_type unconditionally, rather than by reference.
Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
Use is_taskreg_ctx instead of is_parallel_ctx.
Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
(create_omp_child_function_name): Add task_copy argument, use
*_omp_cpyfn* names if it is true.
(create_omp_child_function): Add task_copy argument, if true create
*_omp_cpyfn* helper function.
(scan_omp_parallel): Adjust create_omp_child_function callers.
Rename parallel_nesting_level to taskreg_nesting_level.
(scan_omp_task): New function.
(lower_rec_input_clauses): Don't run constructors for firstprivate
explicit task vars which are initialized by *_omp_cpyfn*.
Pass outer var ref to omp_clause_default_ctor hook if
OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
OMP_CLAUSE_REDUCTION_INIT.
(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
avoid duplicate setting of fields. Handle
OMP_CLAUSE_PRIVATE_OUTER_REF.
(lower_send_shared_vars): Use srecord_type if non-NULL. Don't
copy-out if TREE_READONLY, only copy-in.
(expand_task_copyfn): New function.
(expand_task_call): New function.
(struct omp_taskcopy_context): New type.
(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
New functions.
(lower_omp_parallel): Rename to...
(lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call create_task_copyfn if srecord_type is needed. Adjust
sender_decl type.
(task_shared_vars): New variable.
(check_omp_nesting_restrictions): Warn if work-sharing,
barrier, master or ordered region is closely nested inside OMP_TASK.
Add warnings for barrier if closely nested inside of work-sharing,
ordered, or master region.
(scan_omp_1): Call check_omp_nesting_restrictions even for
GOMP_barrier calls. Rename parallel_nesting_level to
taskreg_nesting_level. Handle OMP_TASK.
(lower_lastprivate_clauses): Even if some lastprivate is found on a
work-sharing construct, continue looking for them on parent parallel
construct.
(lower_omp_for_lastprivate): Add lastprivate clauses
to the beginning of dlist rather than end. Adjust for struct
omp_for_data changes.
(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
not after it. Handle collapsed OMP_FOR loops, adjust for
OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
caller.
(get_ws_args_for): Adjust extract_omp_for_data caller.
(scan_omp_for): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(lower_omp_single_simple): If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
(parallel_nesting_level): Rename to...
(taskreg_nesting_level): ... this.
(is_taskreg_ctx): New function.
(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
of is_parallel_ctx.
(execute_lower_omp): Rename parallel_nesting_level to
taskreg_nesting_level.
(expand_omp_parallel): Rename to...
(expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call omp_task_call for OMP_TASK regions.
(expand_omp): Adjust caller, handle OMP_TASK.
(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
* bitmap.c (bitmap_default_obstack_depth): New variable.
(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
if argument is NULL and bitmap_default_obstack is already initialized.
* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
at the end.
* matrix-reorg.c (matrix_reorg): Likewise.
cp/
* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
dependent_omp_for_p, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New prototypes.
(cxx_omp_clause_default_ctor): Add outer argument.
(finish_omp_for): Add new clauses argument.
* cp-gimplify.c (cxx_omp_finish_clause): New function.
(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
(cxx_omp_clause_default_ctor): Add outer argument.
(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
Add par_clauses argument. If decl is present in parallel's
lastprivate clause, change that clause to shared and add
a lastprivate clause for decl to OMP_FOR_CLAUSES.
Fix wording of error messages. Adjust finish_omp_for caller.
Add clauses argument. Parse loops with random access iterators.
(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
functions.
(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
cp_parser_omp_for_loop callers.
(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
functions.
(cp_parser_omp_clause_name): Handle collapse and untied
clauses.
(cp_parser_omp_clause_schedule): Handle auto schedule.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSE_MASK): Define.
(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
PRAGMA_OMP_TASKWAIT.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
(tsubst_omp_for_iterator): New function.
(dependent_omp_for_p): New function.
(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
loops. Adjust finish_omp_for caller. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
(tsubst_expr): Handle OMP_TASK.
* semantics.c (cxx_omp_create_clause_info): New function.
(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
OMP_CLAUSE_COLLAPSE.
(cxx_omp_predetermined_sharing): Removed.
* semantics.c (finish_omp_for): Allow pointer iterators. Use
handle_omp_for_class_iterator and dependent_omp_for_p. Handle
collapsed for loops. Adjust c_finish_omp_for caller. Add new
clauses argument. Fix check for type dependent cond or incr.
Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
fold_convert to convert incr amount to difference_type. Only
fold if not in template. If decl is mentioned in lastprivate
clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
changes.
(finish_omp_threadprivate): Allow static class members of the
current class.
(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New functions.
* parser.c (cp_parser_binary_expression): Add prec argument.
(cp_parser_assignment_expression): Adjust caller.
* cp-tree.h (outer_curly_brace_block): New prototype.
* decl.c (outer_curly_brace_block): No longer static.
fortran/
* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
* parse.c (next_free): Allow tab after !$omp.
(decode_omp_directive): Handle !$omp task, !$omp taskwait
and !$omp end task.
(case_executable): Add ST_OMP_TASKWAIT.
(case_exec_markers): Add ST_OMP_TASK.
(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
ST_OMP_TASKWAIT.
(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
* gfortran.h (gfc_find_sym_in_expr): New prototype.
(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
untied fields.
(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
* trans.h (gfc_omp_clause_default_ctor): Add another argument.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
than boolean_type_node.
* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
untied and collapse clauses.
(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
* st.c (gfc_free_statement): Likewise.
* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
(find_sym_in_expr): Rename to...
(gfc_find_sym_in_expr): ... this. No longer static.
(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
prototypes.
* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
firstprivate, lastprivate, reduction, copyprivate and copyin
clauses.
(omp_current_do_code): Made static.
(omp_current_do_collapse): New variable.
(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
clear omp_current_do_code and omp_current_do_collapse on return.
(gfc_resolve_do_iterator): Handle collapsed do loops.
(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
(gfc_match_omp_clauses): Handle default (firstprivate),
schedule (auto), untied and collapse (n) clauses.
(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSES): Define.
(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
* trans-openmp.c (gfc_omp_private_outer_ref): New function.
(gfc_omp_clause_default_ctor): Add outer argument. For allocatable
arrays allocate them with the bounds of the outer var if outer
var is allocated.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor): New functions.
(gfc_trans_omp_array_reduction): If decl is allocatable array,
allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
for assumed-size arrays.
(gfc_trans_omp_do): Add par_clauses argument. If dovar is
present in lastprivate clause and do loop isn't simple,
set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
parallel's lastprivate clause, change it to shared and add
lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
(gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
OMP_FOR from OMP_PARALLEL.
(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
gcc/testsuite/
* gcc.dg/gomp/collapse-1.c: New test.
* gcc.dg/gomp/nesting-1.c: New test.
* g++.dg/gomp/task-1.C: New test.
* g++.dg/gomp/predetermined-1.C: New test.
* g++.dg/gomp/tls-4.C: New test.
* gfortran.dg/gomp/collapse1.f90: New test.
* gfortran.dg/gomp/sharing-3.f90: New test.
* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
* g++.dg/gomp/pr27499.C (foo): Likewise.
* g++.dg/gomp/for-16.C (foo): Likewise.
* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
* g++.dg/gomp/pr34607.C: Adjust dg-error location.
* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
about allocatable array.
* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
Substitute also OMP_*LOCK_25*.
* configure: Regenerated.
* config.h.in: Regenerated.
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
ptrlock.c and task.c.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* task.c: New file.
* loop_ull.c: New file.
* iter_ull.c: New file.
* libgomp.h: Include ptrlock.h.
(enum gomp_task_kind): New type.
(struct gomp_team): Add task_lock, task_queue, task_count,
task_running_count, single_count fields. Add
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
Remove work_share_lock, generation_mask,
oldest_live_gen, num_live_gen and init_work_shares fields, add
work work_share_list_alloc, work_share_list_free and work_share_chunk
fields. Change work_shares from pointer to pointers into an array.
Change ordered_release field into gomp_sem_t ** from flexible array
member. Add implicit_task and initial_work_shares fields.
Move close to the end of the struct.
(struct gomp_team_state): Add single_count, last_work_share,
active_level and level fields, remove work_share_generation.
(gomp_barrier_handle_tasks): New prototype.
(gomp_finish_task): New inline function.
(struct gomp_work_share): Move chunk_size, end, incr into
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
next_ll fields. Reshuffle fields. Add next_alloc,
next_ws, next_free and inline_ordered_team_ids fields, change
ordered_team_ids into pointer from flexible array member.
Add mode field. Put lock and next into a different cache line
from most of the write-once fields.
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
gomp_iter_ull_guided_next): New prototypes.
(gomp_new_icv): New prototype.
(struct gomp_thread): Add thread_pool and task fields.
(struct gomp_thread_pool): New type.
(gomp_new_team): New prototype.
(gomp_team_start): Change type of last argument.
(gomp_new_work_share): Removed.
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
(gomp_work_share_init_done): New static inline.
(gomp_throttled_spin_count_var, gomp_available_cpus,
gomp_managed_threads): New extern decls.
(gomp_init_task): New prototype.
(gomp_spin_count_var): New extern var decl.
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
or no alias support, or if not PIC.
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
gomp_test_nest_lock_25): New prototypes.
(omp_lock_symver, strong_alias): Define.
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
decls.
(gomp_end_task): New.
(struct gomp_task_icv, gomp_global_icv): New.
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
(struct gomp_task): New.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_icv): New.
(gomp_schedule_type): Reorder enum to match
omp_sched_t.
* team.c (struct gomp_thread_start_data): Add thread_pool and task
fields.
(gomp_thread_start): Add gomp_team_barrier_wait call.
For non-nested case remove clearing of docked thread thr fields.
Use pool fields instead of global gomp_* variables. Use
gomp_barrier_wait_last when needed. Initialize ts.active_level.
Create tasks for each member thread.
(free_team): Only destroy team barrier, task_lock here and free it.
(gomp_free_thread): Free last_team if non-NULL.
(gomp_team_end): Call gomp_team_barrier_wait instead of
gomp_barrier_wait. For nested case call one extra
gomp_barrier_wait. Move here some destruction from free_team.
Call free_team on pool->last_team if any, rather than freeing
current team. Destroy work_share_list_free_lock ifndef
HAVE_SYNC_BUILTINS.
(gomp_new_icv): New function.
(gomp_threads, gomp_threads_size, gomp_threads_used,
gomp_threads_dock): Removed.
(gomp_thread_destructor): New variable.
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
ts.last_work_share. Don't clear ts.work_share_generation.
If number of threads changed, adjust atomically gomp_managed_threads.
Use gomp_init_task instead of gomp_new_task,
set thr->task to the corresponding implicit_task array entry.
Create tasks for each member thread. Initialize ts.level.
(initialize_team): Call pthread_key_create on
gomp_thread_destructor.
(team_destructor): New function.
(new_team): Removed.
(gomp_new_team): New function.
(free_team): Free gomp_work_share blocks chained through next_alloc,
instead of freeing work_shares and destroying work_share_lock.
(gomp_team_end): Call gomp_fini_work_share. If number of threads
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
instead of gomp_barrier_wait. Call gomp_work_share_init_done
if gomp_work_share_start returned true. Don't unlock ws->lock.
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
gomp_work_share_init_done if gomp_work_share_start returned true.
Don't unlock ws->lock.
* work.c: Include stddef.h.
(free_work_share): Use work_share_list_free_lock instead
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
Call gomp_fini_work_share and then either free ws if orphaned, or
put it into work_share_list_free list of the current team.
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
functions.
(gomp_work_share_start, gomp_work_share_end,
gomp_work_share_end_nowait): Rewritten.
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
(openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New interfaces.
* omp_lib.h.in (openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New externals.
* loop.c: Include limits.h.
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
GFS_AUTO.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
Likewise. Use gomp_icv.
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
ts.static_trip here.
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
don't unlock ws->lock, otherwise lock it.
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
(gomp_parallel_loop_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass 0 as second argument to
gomp_resolve_num_threads.
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
If adding ws->chunk_size nthreads + 1 times after end won't
overflow, set ws->mode to 1.
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
prototypes.
* libgomp.map: Export lock routines also @@OMP_2.0.
(GOMP_loop_ordered_dynamic_first,
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
GOMP_loop_ordered_static_first): Remove.
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
GOMP_loop_ull_ordered_dynamic_next,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_next,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New exports @@OMP_3.0.
* omp.h.in (omp_sched_t): New type.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New prototypes.
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): New variables.
(parse_spincount): New function.
(initialize_env): Call gomp_init_num_threads unconditionally.
Initialize gomp_available_cpus. Call parse_spincount,
initialize gomp_{,throttled_}spin_count_var
depending on presence and value of OMP_WAIT_POLICY and
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_global_icv): New.
(parse_schedule): Use it. Parse "auto".
(omp_set_num_threads): Use gomp_icv.
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
Likewise.
(omp_get_max_threads): Move from parallel.c.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
add ialias.
(parse_stacksize, parse_wait_policy): New functions.
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
both wrappers for compatibility and new locks.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New ialias_redirect.
(omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New functions.
* parallel.c: Include limits.h.
(gomp_resolve_num_threads): Add count argument. Rewritten.
(GOMP_parallel_start): Call gomp_new_team and pass that as last
argument to gomp_team_start. Pass 0 as second argument to
gomp_resolve_num_threads.
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
if gomp_thread_limit_var != ULONG_MAX.
(omp_in_parallel): Implement using ts.active_level.
(omp_get_max_threads): Move to env.c.
(omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level): New functions,
add ialias.
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it, otherwise acquire it before calling
gomp_iter_dynamic_next_locked.
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it.
(GOMP_parallel_sections_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass count as second argument to
gomp_resolve_num_threads, don't adjust num_threads after the call.
Use gomp_icv.
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
ws->chunk_size by incr.
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
code.
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
types.
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
(omp_check_defines): Check even the compat defines.
* config/linux/ptrlock.c: New file.
* config/linux/ptrlock.h: New file.
* config/linux/wait.h: New file.
* config/posix/ptrlock.c: New file.
* config/posix/ptrlock.h: New file.
* config/linux/bar.h (gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_t): Rewritten.
(gomp_barrier_state_t): New typedef.
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
gomp_barrier_wait_start): Rewritten.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/linux/bar.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_barrier_wait_end): Rewritten.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
* config/posix/bar.h (gomp_barrier_t): Add generation field.
(gomp_barrier_state_t): New typedef.
(gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_barrier_wait_start): Or all but low 2 bits from generation
into the return value. Return gomp_barrier_state_t.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_futex_wake, gomp_futex_wait): New variables.
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
* config/linux/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning. Include wait.h instead of libgomp.h and
futex.h.
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
* config/posix95/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/posix/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sem.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
types.
(omp_nest_lock_t): Change owner into void *, add lock field.
* config/posix95/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Change owner to void *.
* config/posix/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Add owner field.
* testsuite/libgomp.c/collapse-1.c: New test.
* testsuite/libgomp.c/collapse-2.c: New test.
* testsuite/libgomp.c/collapse-3.c: New test.
* testsuite/libgomp.c/icv-1.c: New test.
* testsuite/libgomp.c/icv-2.c: New test.
* testsuite/libgomp.c/lib-2.c: New test.
* testsuite/libgomp.c/lock-1.c: New test.
* testsuite/libgomp.c/lock-2.c: New test.
* testsuite/libgomp.c/lock-3.c: New test.
* testsuite/libgomp.c/loop-4.c: New test.
* testsuite/libgomp.c/loop-5.c: New test.
* testsuite/libgomp.c/loop-6.c: New test.
* testsuite/libgomp.c/loop-7.c: New test.
* testsuite/libgomp.c/loop-8.c: New test.
* testsuite/libgomp.c/loop-9.c: New test.
* testsuite/libgomp.c/nested-3.c: New test.
* testsuite/libgomp.c/nestedfn-6.c: New test.
* testsuite/libgomp.c/sort-1.c: New test.
* testsuite/libgomp.c/task-1.c: New test.
* testsuite/libgomp.c/task-2.c: New test.
* testsuite/libgomp.c/task-3.c: New test.
* testsuite/libgomp.c/task-4.c: New test.
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
to C++ testsuite default compiler options.
* testsuite/libgomp.c++/collapse-1.C: New test.
* testsuite/libgomp.c++/collapse-2.C: New test.
* testsuite/libgomp.c++/ctor-10.C: New test.
* testsuite/libgomp.c++/for-1.C: New test.
* testsuite/libgomp.c++/for-2.C: New test.
* testsuite/libgomp.c++/for-3.C: New test.
* testsuite/libgomp.c++/for-4.C: New test.
* testsuite/libgomp.c++/for-5.C: New test.
* testsuite/libgomp.c++/loop-8.C: New test.
* testsuite/libgomp.c++/loop-9.C: New test.
* testsuite/libgomp.c++/loop-10.C: New test.
* testsuite/libgomp.c++/task-1.C: New test.
* testsuite/libgomp.c++/task-2.C: New test.
* testsuite/libgomp.c++/task-3.C: New test.
* testsuite/libgomp.c++/task-4.C: New test.
* testsuite/libgomp.c++/task-5.C: New test.
* testsuite/libgomp.c++/task-6.C: New test.
* testsuite/libgomp.fortran/allocatable1.f90: New test.
* testsuite/libgomp.fortran/allocatable2.f90: New test.
* testsuite/libgomp.fortran/allocatable3.f90: New test.
* testsuite/libgomp.fortran/allocatable4.f90: New test.
* testsuite/libgomp.fortran/collapse1.f90: New test.
* testsuite/libgomp.fortran/collapse2.f90: New test.
* testsuite/libgomp.fortran/collapse3.f90: New test.
* testsuite/libgomp.fortran/collapse4.f90: New test.
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
* testsuite/libgomp.fortran/lib4.f90: New test.
* testsuite/libgomp.fortran/lock-1.f90: New test.
* testsuite/libgomp.fortran/lock-2.f90: New test.
* testsuite/libgomp.fortran/nested1.f90: New test.
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
* testsuite/libgomp.fortran/strassen.f90: New test.
* testsuite/libgomp.fortran/tabs1.f90: New test.
* testsuite/libgomp.fortran/tabs2.f: New test.
* testsuite/libgomp.fortran/task1.f90: New test.
* testsuite/libgomp.fortran/task2.f90: New test.
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.c/pr26943-2.c: Likewise.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r136433
Uros Bizjak [Fri, 6 Jun 2008 11:57:16 +0000 (13:57 +0200)]
i386.md (*indirect_jump): Macroize using P mode iterator.
* config/i386/i386.md (*indirect_jump): Macroize using P
mode iterator. Remove !TARGET_64BIT from insn constraints.
(*tablejump_1): Ditto.
(*indirect_jump_rex64): Remove insn pattern.
(*tablejump_1_rex64): Ditto.
(eh_return_<mode>): Macroize using P mode iterator from eh_return_di
and eh_return_si insn patterns.
From-SVN: r136431
Richard Guenther [Fri, 6 Jun 2008 10:11:44 +0000 (10:11 +0000)]
tree-ssa-structalias.c (merge_smts_into): Remove.
2008-06-06 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (merge_smts_into): Remove.
(find_what_p_points_to): Do not bother to compute the
points-to set for pt_anything pointers.
* tree-ssa-operands.c (get_addr_dereference_operands): No NMT
for pt_anything pointers is ok.
* gcc.dg/tree-ssa/alias-18.c: XFAIL some sub-tests.
From-SVN: r136428
Jan Hubicka [Fri, 6 Jun 2008 09:35:19 +0000 (11:35 +0200)]
* passes.c (execute_ipa_pass_list): Do not regenerate summaries.
From-SVN: r136427
Ralf Wildenhues [Fri, 6 Jun 2008 05:42:00 +0000 (05:42 +0000)]
cgraph.c: Fix typos in comments.
gcc/
* cgraph.c: Fix typos in comments.
(cgraph_availability_names): Fix string typo.
* fold-const.c: Fix typos in comments.
(fold_binary): Fix typo in warning.
* genautomata.c: Fix typos in comments.
(check_presence_pattern_sets): Fix typo in local variable.
(output_description): Fix typo in output.
* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
* hwint.h: Likewise.
* matrix-reorg.c (check_allocation_function): Likewise.
* omega.c (smooth_weird_equations): Likewise.
* auto-inc-dec.c: Fix typos in comments.
* bb-reorder.c: Likewise.
* builtins.c: Likewise.
* c-common.c: Likewise.
* c-cppbuiltin.c: Likewise.
* c-parser.c: Likewise.
* c-pretty-print.c: Likewise.
* cfgcleanup.c: Likewise.
* cfgexpand.c: Likewise.
* cfghooks.c: Likewise.
* cfglayout.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraphunit.c: Likewise.
* coverage.c: Likewise.
* dbxout.c: Likewise.
* df-byte-scan.c: Likewise.
* df-core.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dfp.c: Likewise.
* dominance.c: Likewise.
* domwalk.c: Likewise.
* dse.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* et-forest.c: Likewise.
* function.c: Likewise.
* function.h: Likewise.
* gcc.c: Likewise.
* gcov-io.c: Likewise.
* gcov.c: Likewise.
* gcse.c: Likewise.
* genattrtab.c: Likewise.
* ggc-page.c: Likewise.
* gimplify.c: Likewise.
* gthr-lynx.h: Likewise.
* haifa-sched.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-prop.h: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-struct-reorg.c: Likewise.
* ipa-struct-reorg.h: Likewise.
* ipa-type-escape.c: Likewise.
* ipa.c: Likewise.
* loop-doloop.c: Likewise.
* mips-tfile.c: Likewise.
* mkmap-flat.awk: Likewise.
* mkmap-symver.awk: Likewise.
* modulo-sched.c: Likewise.
* omp-low.c: Likewise.
* optabs.c: Likewise.
* optabs.h: Likewise.
* opts.c: Likewise.
* passes.c: Likewise.
* postreload-gcse.c: Likewise.
* postreload.c: Likewise.
* predict.c: Likewise.
* pretty-print.h: Likewise.
* profile.c: Likewise.
* protoize.c: Likewise.
* ra-conflict.c: Likewise.
* real.c: Likewise.
* recog.c: Likewise.
* regclass.c: Likewise.
* regs.h: Likewise.
* reload.c: Likewise.
* rtl-error.c: Likewise.
* rtlanal.c: Likewise.
* scan.h: Likewise.
* sched-rgn.c: Likewise.
* see.c: Likewise.
* stmt.c: Likewise.
* target.h: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-flow-inline.h: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-nested.c: Likewise.
* tree-parloops.c: Likewise.
* tree-pass.h: Likewise.
* tree-pretty-print.c: Likewise.
* tree-profile.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-alias-warnings.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa.c: Likewise.
* tree-vect-analyze.c: Likewise.
* tree-vect-transform.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vn.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tree.def: Likewise.
* tree.h: Likewise.
* unwind-dw2-fde.c: Likewise.
* unwind.inc: Likewise.
* value-prof.c: Likewise.
* vmsdbgout.c: Likewise.
From-SVN: r136425
David Edelsohn [Fri, 6 Jun 2008 01:52:50 +0000 (01:52 +0000)]
xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not always place FP constants in the TOC for TARGET_POWERPC64.
* config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
always place FP constants in the TOC for TARGET_POWERPC64.
* config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
From-SVN: r136423
GCC Administrator [Fri, 6 Jun 2008 00:17:17 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r136421
Joseph Myers [Thu, 5 Jun 2008 23:03:11 +0000 (00:03 +0100)]
config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
* config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
* config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
enable for TARGET_E500_DOUBLE.
(*movdd_softfloat32): Also enable for !TARGET_FPRS.
* config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
floating-point modes like integer modes for E500 double.
(rs6000_legitimate_offset_address_p): Likewise.
(rs6000_legitimize_address): Likewise. Do not allow REG+REG
addressing for DDmode for E500 double.
(rs6000_hard_regno_nregs): Do not treat decimal floating-point
modes as using 64-bits of registers for E500 double.
(spe_build_register_parallel): Do not handle DDmode or TDmode.
(rs6000_spe_function_arg): Do not handle DDmode or TDmode
specially for E500 double.
(function_arg): Do not call rs6000_spe_function_arg for DDmode or
TDmode for E500 double.
(rs6000_gimplify_va_arg): Only handle SDmode in registers
specially if TARGET_HARD_FLOAT && TARGET_FPRS.
(rs6000_split_multireg_move): Do not handle TDmode specially for
E500 double.
(spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
using 64-bit registers for E500 double.
(emit_frame_save): Do not handle DDmode specially for E500 double.
(gen_frame_mem_offset): Likewise.
(rs6000_function_value): Do not call spe_build_register_parallel
for DDmode or TDmode.
(rs6000_libcall_value): Likewise.
* config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
for E500 double.
From-SVN: r136416
Johannes Singler [Thu, 5 Jun 2008 15:47:17 +0000 (15:47 +0000)]
random_shuffle.h: (parallel_random_shuffle_drs) Get the actual number of threads after entering...
2008-06-05 Johannes Singler <singler@ira.uka.de>
* include/parallel/random_shuffle.h:
(parallel_random_shuffle_drs) Get the actual number of
threads after entering the parallel region. Indentation.
* include/parallel/algo.h: (random_shuffle(begin, end))
Add namespace qualification to avoid ambiguity.
From-SVN: r136406
H.J. Lu [Thu, 5 Jun 2008 13:21:04 +0000 (13:21 +0000)]
i386.c (setup_incoming_varargs_64): Fix a typo in comments.
2008-06-04 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
in comments.
From-SVN: r136395
Danny Smith [Thu, 5 Jun 2008 03:45:41 +0000 (03:45 +0000)]
re PR driver/35916 (problem running GCC under Vista with relocated directory)
PR driver/35916
* mh-mingw (CFLAGS): Add -D__USE_MINGW_ACCESS.
From-SVN: r136389
Junjie Gu [Thu, 5 Jun 2008 00:24:50 +0000 (00:24 +0000)]
lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned comparison for frame pointers.
2008-06-04 Junjie Gu <jgu@tensilica.com>
* config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
comparison for frame pointers.
From-SVN: r136386
GCC Administrator [Thu, 5 Jun 2008 00:17:22 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r136383
Joseph Myers [Wed, 4 Jun 2008 23:20:01 +0000 (00:20 +0100)]
target-supports.exp (check_effective_target_powerpc_spu): Call check_effective_target_powerpc_altivec_ok.
* lib/target-supports.exp (check_effective_target_powerpc_spu):
Call check_effective_target_powerpc_altivec_ok.
* gcc.target/powerpc/dfp-dd.c, gcc.target/powerpc/dfp-td.c,
gcc.target/powerpc/ppc32-abi-dfp-1.c,
gcc.target/powerpc/ppu-intrinsics.c: Require powerpc_fprs.
From-SVN: r136378
Andy Hutchinson [Wed, 4 Jun 2008 22:02:57 +0000 (22:02 +0000)]
re PR target/27386 (AVR: wrong code generated when passing three uint64_t arguments to function)
PR target/27386
* config/avr/avr.h: (PUSH_ROUNDING): Remove.
From-SVN: r136377
Andy Hutchinson [Wed, 4 Jun 2008 21:59:54 +0000 (21:59 +0000)]
re PR target/30243 ([avr] signbit() causes an internal compiler error)
PR target/30243
* builtins.c (expand_builtin_signbit): Don't take lowpart when register is already smaller or equal to required mode.
From-SVN: r136376
Xinliang David Li [Wed, 4 Jun 2008 21:49:45 +0000 (21:49 +0000)]
tree-call-cdce.c: New file.
2008-06-04 Xinliang David Li <davidxl@google.com>
* tree-call-cdce.c: New file.
(cond_dead_built_in_calls): New static variable.
(input_domain): New struct.
(check_pow): New function.
(check_builtin_call): Ditto.
(check_target_format): Ditto.
(is_call_dce_candidate): Ditto.
(gen_one_condition): Ditto.
(gen_conditions_for_domain): Ditto.
(get_domain): Ditto.
(gen_conditions_for_pow_cst_base): Ditto.
(gen_conditions_for_pow_int_base): Ditto.
(gen_conditions_for_pow): Ditto.
(get_no_error_domain): Ditto.
(gen_shrink_wrap_conditions): Ditto.
(shrink_wrap_one_built_in_call): Ditto.
(shink_wrap_conditional_dead_built_in_calls): Ditto.
(tree_call_cdce): Ditto.
(gate_call_cdce): Ditto.
(pass_call_cdce): New gimple pass.
* passes.c: (init_optimization_passes): New pass.
* tree-pass.h: New pass declaration.
* opts.c (decode_options): New flag setting.
* common.opt: Add -ftree-builtin-call-dce flag.
* Makefile.in: Add new source file.
* tempvar.def: New tv_id.
* doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2008-06-04 Xinliang David Li <davidxl@google.com>
* gcc.dg/cdce1.c: New test.
* gcc.dg/cdce2.c: Ditto.
* g++.dg/cdce3.C: Ditto.
From-SVN: r136374
Janus Weil [Wed, 4 Jun 2008 21:04:32 +0000 (23:04 +0200)]
re PR fortran/36322 (ICE with PROCEDURE using a complicated interface)
2008-06-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/36322
PR fortran/36275
* resolve.c (resolve_symbol): Correctly copy the interface for a
PROCEDURE declaration.
2008-06-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/36322
PR fortran/36275
* gfortran.dg/proc_decl_2.f90: Extended.
From-SVN: r136372
Samuel Tardieu [Wed, 4 Jun 2008 17:01:24 +0000 (17:01 +0000)]
einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
gcc/ada/
* einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
From-SVN: r136362
Richard Guenther [Wed, 4 Jun 2008 16:00:10 +0000 (16:00 +0000)]
tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2008-06-04 Richard Guenther <rguenther@suse.de>
* tree-flow-inline.h (is_global_var): Do not check TREE_STATIC
on MTAGs.
(is_call_clobbered): Always check var_ann->call_clobbered.
(mark_call_clobbered): Always set var_ann->call_clobbered.
(clear_call_clobbered): Always clear var_ann->call_clobbered.
* tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
(reset_alias_info): Clear call clobbering info on MTAGs and
globals as well.
(set_pt_anything): Set pt_global_mem.
(create_tag_raw): Adjust comment.
(may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
From-SVN: r136360
Benjamin Kosnik [Wed, 4 Jun 2008 15:53:09 +0000 (15:53 +0000)]
assoc_container.hpp: Change allocator typedef to allocator_type, as per existing conventions.
2008-06-04 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/pb_ds/assoc_container.hpp: Change allocator typedef
to allocator_type, as per existing conventions.
* include/ext/pb_ds/detail/binomial_heap_base_/
binomial_heap_base_.hpp: Same.
* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Same.
* include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Same.
* include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp: Same.
* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Same.
* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same.
* include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp: Same.
* include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Same.
* include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp: Same.
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
left_child_next_sibling_heap_.hpp: Same.
* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Same.
* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Same.
* include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp: Same.
* include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Same.
* include/ext/pb_ds/detail/rc_binomial_heap_/
rc_binomial_heap_.hpp: Same.
* include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Same.
* include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp: Same.
* include/ext/pb_ds/list_update_policy.hpp: Same.
* include/ext/pb_ds/exception.hpp: Same.
* include/ext/pb_ds/tree_policy.hpp: Same.
* include/ext/pb_ds/trie_policy.hpp: Same.
* include/ext/pb_ds/priority_queue.hpp: Same.
* testsuite/util/regression/trait/assoc/trait.hpp: Same.
* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
* testsuite/util/regression/rand/priority_queue/detail/
defs_fn_imps.hpp: Same.
* testsuite/util/regression/rand/priority_queue/detail/
operator_fn_imps.hpp: Same.
* testsuite/util/regression/rand/priority_queue/
container_rand_regression_test.hpp: Same.
* testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp: Same.
* testsuite/util/regression/rand/assoc/detail/
operator_fn_imps.hpp: Same.
* testsuite/util/regression/rand/assoc/
container_rand_regression_test.hpp: Same.
* testsuite/util/native_type/assoc/native_multimap.hpp: Same.
* testsuite/util/native_type/assoc/native_hash_multimap.hpp: Same.
* testsuite/util/common_type/assoc/detail/
tree_supports_order_statistics.hpp: Same.
* testsuite/util/common_type/assoc/detail/
trie_supports_prefix_search.hpp: Same.
* testsuite/util/common_type/assoc/detail/
trie_supports_order_statistics.hpp: Same.
From-SVN: r136359
Joseph Myers [Wed, 4 Jun 2008 12:17:50 +0000 (13:17 +0100)]
m68k.opt (mxgot): New option.
2008-06-04 Joseph Myers <joseph@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
* config/m68k/m68k.opt (mxgot): New option.
* config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
(m68k_output_addr_const_extra): New.
* config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
* config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
* config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
* doc/invoke.texi (M680x0 Options): Document -mxgot.
testsuite:
2008-06-04 Joseph Myers <joseph@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
* gcc.target/m68k/xgot-1.c: New test.
Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
From-SVN: r136355
Richard Guenther [Wed, 4 Jun 2008 08:28:20 +0000 (08:28 +0000)]
tree-ssa-structalias.c (handle_ptr_arith): Correctly handle negative or non-representable offsets.
2008-06-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
negative or non-representable offsets.
* gcc.c-torture/execute/
20080604-1.c: New testcase.
From-SVN: r136351