platform/upstream/gcc.git
13 years agortlanal.c (tablejump_p): False for returns.
Bernd Schmidt [Thu, 28 Jul 2011 18:45:20 +0000 (18:45 +0000)]
rtlanal.c (tablejump_p): False for returns.

* rtlanal.c (tablejump_p): False for returns.
* reorg.c (first_active_target_insn): New static function.
(find_end_label): Set JUMP_LABEL for a new returnjump.
(optimize_skip, get_jump_flags, rare_destination,
mostly_true_jump, get_branch_condition,
steal_delay_list_from_target, own_thread_p,
fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
fill_eager_delay_slots, relax_delay_slots, make_return_insns,
dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
* jump.c (delete_related_insns): Likewise.
(jump_to_label_p): New function.
(redirect_target): New static function.
(redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
(redirect_jump_1): Assert that the new label is nonnull.
(redirect_jump): Likewise.
(redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
* ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
exit block.
(dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
changed.  Ensure that the right label is passed to redirect_jump.
* function.c (emit_return_into_block,
thread_prologue_and_epilogue_insns): Ensure new returnjumps have
ret_rtx in their JUMP_LABEL.
* print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
* emit-rtl.c (skip_consecutive_labels): Allow the caller to
pass ret_rtx as label.
* cfglayout.c (fixup_reorder_chain): Use
force_nonfallthru_and_redirect rather than force_nonfallthru.
(duplicate_insn_chain): Copy JUMP_LABELs for returns.
* rtl.h (ANY_RETURN_P): New macro.
(jump_to_label_p): Declare.
* resource.c (find_dead_or_set_registers): Handle ret_rtx in
JUMP_LABELs.
(mark_target_live_regs): Likewise.
* basic-block.h (force_nonfallthru_and_redirect): Declare.
* cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
* config/alpha/alpha.c (alpha_tablejump_addr_vec,
alpha_tablejump_best_label): Remove functions.
* config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
alpha_tablejump_best_label): Remove declarations.
* config/sh/sh.c (barrier_align, split_branches): Adjust for
ret_rtx in JUMP_LABELs.
* config/arm/arm.c (is_jump_table): Likewise.

From-SVN: r176881

13 years agopredicates.md (pic_32bit_opreand): Do not define as special predicate.
Uros Bizjak [Thu, 28 Jul 2011 16:40:21 +0000 (18:40 +0200)]
predicates.md (pic_32bit_opreand): Do not define as special predicate.

* config/i386/predicates.md (pic_32bit_opreand): Do not define as
special predicate.  Remove explicit mode checks.

From-SVN: r176879

13 years agodwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize DW_AT_data_member_location...
Jakub Jelinek [Thu, 28 Jul 2011 16:23:20 +0000 (18:23 +0200)]
dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize DW_AT_data_member_location containing just...

* dwarf2out.c (resolve_addr): For -gdwarf-2 don't
optimize DW_AT_data_member_location containing just
DW_OP_plus_uconst.

From-SVN: r176878

13 years agore PR debug/49871 (-gdwarf-3 creates invalid DWARF3 with DW_AT_data_member_location...
Jakub Jelinek [Thu, 28 Jul 2011 16:21:08 +0000 (18:21 +0200)]
re PR debug/49871 (-gdwarf-3 creates invalid DWARF3 with DW_AT_data_member_location attribute)

PR debug/49871
* dwarf2out.c (size_of_die, value_format, output_die): Use
DW_FORM_udata instead of DW_FORM_data[48] for
dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.

* gcc.dg/debug/dwarf2/pr49871.c: New test.

From-SVN: r176876

13 years ago* ChangeLog: Remove mess.
Uros Bizjak [Thu, 28 Jul 2011 15:15:47 +0000 (17:15 +0200)]
* ChangeLog: Remove mess.

From-SVN: r176874

13 years agoUpdate length attribute on *tls_global_dynamic_64.
H.J. Lu [Thu, 28 Jul 2011 14:54:02 +0000 (14:54 +0000)]
Update length attribute on *tls_global_dynamic_64.

2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.md (*tls_global_dynamic_64): Update length
attribute.

From-SVN: r176873

13 years agore PR target/47715 ([x32] TLS doesn't work)
Uros Bizjak [Thu, 28 Jul 2011 14:42:45 +0000 (16:42 +0200)]
re PR target/47715 ([x32] TLS doesn't work)

PR target/47715
* config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
tls_symbolic_operand check.  Update code sequence for TARGET_X32.
(tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
(tls_dynamic_gnu2_64): Ditto.
(*tls_dynamic_gnu2_lea_64): Ditto.
(*tls_dynamic_gnu2_call_64): Ditto.
(*tls_dynamic_gnu2_combine_64): Ditto.

From-SVN: r176872

13 years agoSet need_64bit_hwint to yes for x86 targets.
H.J. Lu [Thu, 28 Jul 2011 14:29:38 +0000 (14:29 +0000)]
Set need_64bit_hwint to yes for x86 targets.

gcc/

2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>

* config.gcc: Set need_64bit_hwint to yes for x86 targets.

libcpp/

2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>

* configure.ac: Set need_64bit_hwint to yes for x86 targets.
* configure: Regenerated.

From-SVN: r176871

13 years agoinit.c (__gnat_error_handler): Cast reason to int.
Rainer Orth [Thu, 28 Jul 2011 13:40:51 +0000 (13:40 +0000)]
init.c (__gnat_error_handler): Cast reason to int.

* init.c (__gnat_error_handler): Cast reason to int.
(__gnat_install_handler): Explain sa_sigaction use.

From-SVN: r176870

13 years agoOnly expand strlen to Pmode.
H.J. Lu [Thu, 28 Jul 2011 12:32:23 +0000 (12:32 +0000)]
Only expand strlen to Pmode.

2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>

PR target/47364
* config/i386/i386.md (strlen<mode>): Replace SWI48x with P.

From-SVN: r176868

13 years agovfp.md ("*movdf_vfp"): Handle the VFP constraints before the core constraints.
Ramana Radhakrishnan [Thu, 28 Jul 2011 12:02:17 +0000 (12:02 +0000)]
vfp.md ("*movdf_vfp"): Handle the VFP constraints before the core constraints.

2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

* config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
before the core constraints. Adjust attributes.
(*thumb2_movdf_vfp"): Likewise.

From-SVN: r176867

13 years agotree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
Kai Tietz [Thu, 28 Jul 2011 10:41:51 +0000 (12:41 +0200)]
tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.

2011-07-28  Kai Tietz  <ktietz@redhat.com>

        * tree-vrp.c (simplify_stmt_using_ranges): Remove
        TRUTH_NOT_EXPR case.
        (simplify_truth_ops_using_ranges): Likewise.
        (build_assert_expr_for): Likewise.
        (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
        and handle BIT_NOT_EXPR for truth-operation.

From-SVN: r176866

13 years agore PR target/49313 (Inefficient libgcc implementations for avr)
Georg-Johann Lay [Thu, 28 Jul 2011 10:29:17 +0000 (10:29 +0000)]
re PR target/49313 (Inefficient libgcc implementations for avr)

PR target/49313
Undo r176835 from trunk
2011-07-27  Georg-Johann Lay

From-SVN: r176865

13 years agoupdate copyright
Alan Modra [Thu, 28 Jul 2011 08:25:26 +0000 (17:55 +0930)]
update copyright

From-SVN: r176863

13 years agore PR target/49687 ([avr] Missed optimization for widening MUL)
Georg-Johann Lay [Thu, 28 Jul 2011 08:03:07 +0000 (08:03 +0000)]
re PR target/49687 ([avr] Missed optimization for widening MUL)

PR target/49687
* config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
Add _muluhisi3, _mulshisi3, _usmulhisi3.
* config/avr/libgcc.S (__mulsi3): Rewrite.
(__mulhisi3): Rewrite.
(__umulhisi3): Rewrite.
(__usmulhisi3): New.
(__muluhisi3): New.
(__mulshisi3): New.
(__mulohisi3): New.
(__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
declare.
* config/avr/predicates.md (pseudo_register_operand): Rewrite.
(pseudo_register_or_const_int_operand): New.
(combine_pseudo_register_operand): New.
(u16_operand): New.
(s16_operand): New.
(o16_operand): New.
* config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
* config/avr/avr.md (QIHI, QIHI2): New mode iterators.
(any_extend, any_extend2): New code iterators.
(extend_prefix): New code attribute.
(mulsi3): Rewrite. Turn insn to expander.
(mulhisi3): Ditto.
(umulhisi3): Ditto.
(usmulhisi3): New expander.
(*mulsi3): New insn-and-split.
(mulu<mode>si3): New insn-and-split.
(muls<mode>si3): New insn-and-split.
(mulohisi3): New insn-and-split.
(*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
*usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
*sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
*ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
insn-and-split.
(*mulsi3_call): Rewrite.
(*mulhisi3_call): Rewrite.
(*umulhisi3_call): Rewrite.
(*usmulhisi3_call): New insn.
(*muluhisi3_call): New insn.
(*mulshisi3_call): New insn.
(*mulohisi3_call): New insn.
(extendqihi2): Use combine_pseudo_register_operand as predicate
for operand 1.
(extendqisi2): Ditto.
(zero_extendqihi2): Ditto.
(zero_extendqisi2): Ditto.
(zero_extendhisi2): Ditto.
(extendhisi2): Ditto. Don't early-clobber operand 0.

From-SVN: r176862

13 years agolinux-unwind.h (frob_update_context <__powerpc64__>): Leave r2 REG_UNSAVED if stopped...
Alan Modra [Thu, 28 Jul 2011 07:44:24 +0000 (17:14 +0930)]
linux-unwind.h (frob_update_context <__powerpc64__>): Leave r2 REG_UNSAVED if stopped on the instruction that saves r2 in a plt call stub.

* config/rs6000/linux-unwind.h (frob_update_context <__powerpc64__>):
Leave r2 REG_UNSAVED if stopped on the instruction that saves r2
in a plt call stub.  Do restore r2 if stopped on bctrl.

From-SVN: r176861

13 years agoi386.c (add->lea splitter): Add SWI mode to PLUS RTX.
Uros Bizjak [Thu, 28 Jul 2011 07:18:49 +0000 (09:18 +0200)]
i386.c (add->lea splitter): Add SWI mode to PLUS RTX.

* config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.

From-SVN: r176860

13 years agoi386.exp (check_effective_target_bmi): Make sure the builtin isn't optimized away.
Jakub Jelinek [Thu, 28 Jul 2011 06:35:38 +0000 (08:35 +0200)]
i386.exp (check_effective_target_bmi): Make sure the builtin isn't optimized away.

* gcc.target/i386/i386.exp (check_effective_target_bmi): Make sure
the builtin isn't optimized away.

From-SVN: r176859

13 years agoDaily bump.
GCC Administrator [Thu, 28 Jul 2011 00:18:04 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r176856

13 years agore PR fortran/45586 (ICE non-trivial conversion at assignment)
Tobias Burnus [Wed, 27 Jul 2011 22:33:00 +0000 (00:33 +0200)]
re PR fortran/45586 (ICE non-trivial conversion at assignment)

2011-07-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45586
        * trans-types.c (gfc_get_derived_type): Ensure that pointer
        component types are marked as nonrestricted.

2011-07-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45586
        * gfortran.dg/lto/pr45586-2_0.f90: New.

From-SVN: r176852

13 years agore PR middle-end/49875 (FAIL: c-c++-common/cxxbitfields-4.c)
Aldy Hernandez [Wed, 27 Jul 2011 19:51:04 +0000 (19:51 +0000)]
re PR middle-end/49875 (FAIL: c-c++-common/cxxbitfields-4.c)

       PR middle-end/49875
        * c-c++-common/cxxbitfields-4.c: Check for smaller than long
        moves.
        * c-c++-common/cxxbitfields-5.c: Same.

From-SVN: r176848

13 years agore PR c++/49813 ([C++0x] sinh vs asinh vs constexpr)
Paolo Carlini [Wed, 27 Jul 2011 19:33:51 +0000 (19:33 +0000)]
re PR c++/49813 ([C++0x] sinh vs asinh vs constexpr)

2011-07-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/49813
* include/c_global/cmath: Use _GLIBCXX_CONSTEXPR and constexpr.

From-SVN: r176847

13 years agotarget-supports.exp (check_effective_target_mmap): Use check_function_available.
Ulrich Weigand [Wed, 27 Jul 2011 19:01:23 +0000 (19:01 +0000)]
target-supports.exp (check_effective_target_mmap): Use check_function_available.

* lib/target-supports.exp (check_effective_target_mmap): Use
check_function_available.

From-SVN: r176846

13 years agoPropagate the source location of a template's function_decl to the template_decl...
Jeffrey Yasskin [Wed, 27 Jul 2011 18:38:48 +0000 (18:38 +0000)]
Propagate the source location of a template's function_decl to the template_decl built out of it.

Propagate the source location of a template's function_decl to the
template_decl built out of it.  Without this, specializations
generated before the template was defined get the location of the
closing ')' instead of the location of the template's name, which can
produce inconsistent locations between translation units, which makes
gold's ODR checker unhappy.

* gcc/cp/pt.c (build_template_decl): Copy the function_decl's source
location to the new template_decl.
* gcc/testsuite/g++.old-deja/g++.pt/crash60.C: Updated.
* libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Updated.

From-SVN: r176845

13 years agore PR target/49866 (-mcmodel=large tail call fails to assemble)
Jakub Jelinek [Wed, 27 Jul 2011 18:19:40 +0000 (20:19 +0200)]
re PR target/49866 (-mcmodel=large tail call fails to assemble)

PR target/49866
* gcc.target/i386/pr49866.c: New test.

From-SVN: r176842

13 years agoAdd BMI testcases.
Yukhin Kirill [Wed, 27 Jul 2011 17:45:41 +0000 (17:45 +0000)]
Add BMI testcases.

2011-07-27  Yukhin Kirill  <kirill.yukhin@intel.com>

* gcc.target/i386/i386.exp (check_effective_target_bmi): New.
* gcc.target/i386/bmi-andn-1.c: New test.
* gcc.target/i386/bmi-andn-1a.c: Likewise.
* gcc.target/i386/bmi-andn-2.c: Likewise.
* gcc.target/i386/bmi-andn-2a.c: Likewise.
* gcc.target/i386/bmi-bextr-1.c: Likewise.
* gcc.target/i386/bmi-bextr-1a.c: Likewise.
* gcc.target/i386/bmi-bextr-2.c: Likewise.
* gcc.target/i386/bmi-bextr-2a.c: Likewise.
* gcc.target/i386/bmi-blsi-1.c: Likewise.
* gcc.target/i386/bmi-blsi-1a.c: Likewise.
* gcc.target/i386/bmi-blsi-2.c: Likewise.
* gcc.target/i386/bmi-blsi-2a.c: Likewise.
* gcc.target/i386/bmi-blsmsk-1.c: Likewise.
* gcc.target/i386/bmi-blsmsk-1a.c: Likewise.
* gcc.target/i386/bmi-blsmsk-2.c: Likewise.
* gcc.target/i386/bmi-blsmsk-2a.c: Likewise.
* gcc.target/i386/bmi-blsr-1.c: Likewise.
* gcc.target/i386/bmi-blsr-1a.c: Likewise.
* gcc.target/i386/bmi-blsr-2.c: Likewise.
* gcc.target/i386/bmi-blsr-2a.c: Likewise.
* gcc.target/i386/bmi-tzcnt-1.c: Likewise.
* gcc.target/i386/bmi-tzcnt-1a.c: Likewise.
* gcc.target/i386/bmi-tzcnt-2.c: Likewise.
* gcc.target/i386/bmi-tzcnt-2a.c: Likewise.

From-SVN: r176840

13 years agoFix PR49471: canonicalize_loop_ivs should not generate unsigned types.
Sebastian Pop [Wed, 27 Jul 2011 16:53:09 +0000 (16:53 +0000)]
Fix PR49471: canonicalize_loop_ivs should not generate unsigned types.

2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>

PR tree-optimization/49471
* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
iv only when the largest type is unsigned.  Do not call
lang_hooks.types.type_for_size.

* testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
* testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.

From-SVN: r176838

13 years agoPR45450: disable legality check after an openscop read
Sebastian Pop [Wed, 27 Jul 2011 16:53:02 +0000 (16:53 +0000)]
PR45450: disable legality check after an openscop read

2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>

PR middle-end/45450
* graphite-poly.c (apply_poly_transforms): Disable legality check
after an openscop read.

From-SVN: r176837

13 years agoFix PR47691: do not abort compilation when code generation fails
Sebastian Pop [Wed, 27 Jul 2011 16:52:52 +0000 (16:52 +0000)]
Fix PR47691: do not abort compilation when code generation fails

2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>

PR middle-end/47691
* graphite-clast-to-gimple.c (translate_clast_user): Update use of
copy_bb_and_scalar_dependences.
* sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
(graphite_copy_stmts_from_block): Update call to rename_uses.
(copy_bb_and_scalar_dependences): Update call to
graphite_copy_stmts_from_block.
* sese.h (copy_bb_and_scalar_dependences): Update declaration.

* gfortran.dg/graphite/id-pr47691.f: New.

From-SVN: r176836

13 years agore PR target/49313 (Inefficient libgcc implementations for avr)
Georg-Johann Lay [Wed, 27 Jul 2011 16:39:13 +0000 (16:39 +0000)]
re PR target/49313 (Inefficient libgcc implementations for avr)

PR target/49313
* config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
(__ctzsi2): Result for 0 may be undefined.
(__ctzhi2): Result for 0 may be undefined.
(__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
(__popcountsi2): Ditto. And don't clobber r26.
(__popcountdi2): Ditto. And don't clobber r27.
* config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
(parityhi2): New expand.
(paritysi2): New expand.
(popcounthi2): New expand.
(popcountsi2): New expand.
(clzhi2): New expand.
(clzsi2): New expand.
(ctzhi2): New expand.
(ctzsi2): New expand.
(ffshi2): New expand.
(ffssi2): New expand.
(copysignsf3): New insn.
(bswapsi2): New expand.
(*parityhi2.libgcc): New insn.
(*parityqihi2.libgcc): New insn.
(*paritysihi2.libgcc): New insn.
(*popcounthi2.libgcc): New insn.
(*popcountsi2.libgcc): New insn.
(*popcountqi2.libgcc): New insn.
(*popcountqihi2.libgcc): New insn-and-split.
(*clzhi2.libgcc): New insn.
(*clzsihi2.libgcc): New insn.
(*ctzhi2.libgcc): New insn.
(*ctzsihi2.libgcc): New insn.
(*ffshi2.libgcc): New insn.
(*ffssihi2.libgcc): New insn.
(*bswapsi2.libgcc): New insn.

From-SVN: r176835

13 years agoi386.c (ix86_expand_move): Do not explicitly check the mode of symbolic_opreand RTXes.
Uros Bizjak [Wed, 27 Jul 2011 16:21:18 +0000 (18:21 +0200)]
i386.c (ix86_expand_move): Do not explicitly check the mode of symbolic_opreand RTXes.

* config/i386/i386.c (ix86_expand_move): Do not explicitly check
the mode of symbolic_opreand RTXes.

From-SVN: r176834

13 years agopredicates.md (x86_64_movabs_operand): Reject pic32_bit_operand operands.
Uros Bizjak [Wed, 27 Jul 2011 16:16:42 +0000 (18:16 +0200)]
predicates.md (x86_64_movabs_operand): Reject pic32_bit_operand operands.

* config/i386/predicates.md (x86_64_movabs_operand): Reject
pic32_bit_operand operands.
* config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
in DImode.

From-SVN: r176833

13 years agoavx-os-support.h: New.
Uros Bizjak [Wed, 27 Jul 2011 15:39:58 +0000 (17:39 +0200)]
avx-os-support.h: New.

* gcc.target/i386/avx-os-support.h: New.
* gcc.target/i386/avx-check.h: Include avx-os-support.h
(main): Check avx_os_support before the test is run.
* gcc.target/i386/aes-avx-check.h: Ditto.
* gcc.target/i386/pclmul-avx-check.h: Ditto.

From-SVN: r176829

13 years agoi386.c (ix86_option_override_internal): Allow -mabi for 32-bit, too.
Kai Tietz [Wed, 27 Jul 2011 15:33:50 +0000 (17:33 +0200)]
i386.c (ix86_option_override_internal): Allow -mabi for 32-bit, too.

        * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
        for 32-bit, too.
        (ix86_handle_abi_attribute): Allow function attributes
        ms_abi/sysv_abi in 32-bit mode, too.
        * doc/extend.texi: Adjust attribute documentation.

        * gcc.target/i386/aggregate-ret3.c: New test.
        * gcc.target/i386/aggregate-ret4.c: New test.

From-SVN: r176828

13 years agogimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR expression handling.
Kai Tietz [Wed, 27 Jul 2011 14:59:40 +0000 (16:59 +0200)]
gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR expression handling.

2011-07-27  Kai Tietz  <ktietz@redhat.com>

        * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
        expression handling.
        (and_var_with_comparison_1): Likewise.

From-SVN: r176827

13 years agoparams.h (ALLOW_STORE_DATA_RACES): New.
Aldy Hernandez [Wed, 27 Jul 2011 13:22:09 +0000 (13:22 +0000)]
params.h (ALLOW_STORE_DATA_RACES): New.

* params.h (ALLOW_STORE_DATA_RACES): New.
* params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
* Makefile.in (expr.o): Depend on PARAMS_H.
* machmode.h (get_best_mode): Add argument.
* fold-const.c (optimize_bit_field_compare): Add argument to
get_best_mode.
(fold_truthop): Same.
* ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
* expr.c (emit_group_store): Same.
(copy_blkmode_from_reg): Same.
(write_complex_part): Same.
(optimize_bitfield_assignment_op): Add argument.
Add argument to get_best_mode.
(get_bit_range): New.
(expand_assignment): Calculate maxbits and pass it down
accordingly.
(store_field): New argument.
(expand_expr_real_2): New argument to store_field.
Include params.h.
* expr.h (store_bit_field): New argument.
* stor-layout.c (get_best_mode): Restrict mode expansion by taking
into account maxbits.
* calls.c (store_unaligned_arguments_into_pseudos): New argument
to store_bit_field.
* expmed.c (store_bit_field_1): New argument.  Use it.
(store_bit_field): Same.
(store_fixed_bit_field): Same.
(store_split_bit_field): Same.
(extract_bit_field_1): Pass new argument to get_best_mode.
(extract_bit_field): Same.
* stmt.c (store_bit_field): Pass new argument to store_bit_field.
* doc/invoke.texi: Document parameter allow-store-data-races.

From-SVN: r176824

13 years agore PR fortran/49755 (ALLOCATE with STAT= produces invalid code for already allocated...
Daniel Carrera [Wed, 27 Jul 2011 10:10:06 +0000 (10:10 +0000)]
re PR fortran/49755 (ALLOCATE with STAT= produces invalid code for already allocated vars)

2011-07-26  Daniel Carrera  <dcarrera@gmail.com>

PR fortran/49755
* trans.c (gfc_allocate_using_malloc): Change function signature.
Return nothing. New parameter "pointer". Eliminate temorary variables.
(gfc_allocate_using_lib): Ditto.
(gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
and gfc_allocate_using_malloc. Do not free and then reallocate a
variable that is already allocated.
(gfc_likely): New function. Basedon gfc_unlikely.
* trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
Instructions to modify the array descriptor are stored in this block
while other instructions continue to be stored in "pblock".
(gfc_array_allocate): Update call to gfc_array_init_size. Move the
descriptor_block so that the array descriptor is only updated if
the array was allocated successfully.
Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
* trans.h (gfc_allocate_allocatable): Change function signature.
Function now returns void.
(gfc_allocate_using_lib): Ditto, and new function parameter.
(gfc_allocate_using_malloc): Ditto.
* trans-openmp.c (gfc_omp_clause_default_ctor,
gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
to gfc_allocate_allocatable with gfc_allocate_using_malloc.
* trans-stmt.c (gfc_trans_allocate): Update function calls for
gfc_allocate_allocatable and gfc_allocate_using_malloc.

2011-07-26  Daniel Carrera  <dcarrera@gmail.com>

PR fortran/49755
* gfortran.dg/multiple_allocation_1.f90: Fix test. Allocating an
allocated array should *not* change its size.
* gfortran.dg/multiple_allocation_3.f90: New test.

From-SVN: r176822

13 years agodwarf2out.c (output_macinfo_op): Ensure fd->filename points to GC allocated copy...
Jakub Jelinek [Wed, 27 Jul 2011 09:36:25 +0000 (11:36 +0200)]
dwarf2out.c (output_macinfo_op): Ensure fd->filename points to GC allocated copy of the string.

* dwarf2out.c (output_macinfo_op): Ensure fd->filename points
to GC allocated copy of the string.
(dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
before .debug_line, not after it.

From-SVN: r176819

13 years agotree-vrp.c (extract_range_from_binary_expr): Remove TRUTH-binary cases and add new...
Kai Tietz [Wed, 27 Jul 2011 09:21:06 +0000 (11:21 +0200)]
tree-vrp.c (extract_range_from_binary_expr): Remove TRUTH-binary cases and add new bitwise-cases.

2011-07-27  Kai Tietz  <ktietz@redhat.com>

        * tree-vrp.c (extract_range_from_binary_expr): Remove
        TRUTH-binary cases and add new bitwise-cases.
        (extract_range_from_assignment): Likewise.
        (register_edge_assert_for_1): Likeiwise.
        (register_edge_assert_for): Likewise.
        (simplify_truth_ops_using_ranges): Likewise.
        (simplify_stmt_using_ranges): Likewise.

From-SVN: r176818

13 years agoDaily bump.
GCC Administrator [Wed, 27 Jul 2011 00:18:47 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r176816

13 years agoCall simplify_gen_subreg for PIC with mode of x.
H.J. Lu [Tue, 26 Jul 2011 21:43:57 +0000 (21:43 +0000)]
Call simplify_gen_subreg for PIC with mode of x.

2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>

PR target/47372
* config/i386/i386.c (ix86_delegitimize_address): Call
simplify_gen_subreg for PIC with mode of x only if modes of
x and orig_x are different.

From-SVN: r176812

13 years agodwarf2out.c (output_macinfo_op): Ensure fd->filename points to GC allocated copy...
Jakub Jelinek [Tue, 26 Jul 2011 21:12:39 +0000 (23:12 +0200)]
dwarf2out.c (output_macinfo_op): Ensure fd->filename points to GC allocated copy of the string.

* dwarf2out.c (output_macinfo_op): Ensure fd->filename points
to GC allocated copy of the string.
(dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
before .debug_line, not after it.

From-SVN: r176811

13 years agore PR c++/49776 ([C++0x]ICE in build_data_member_initialization, at cp/semantics...
Paolo Carlini [Tue, 26 Jul 2011 20:00:31 +0000 (20:00 +0000)]
re PR c++/49776 ([C++0x]ICE in build_data_member_initialization, at cp/semantics.c:5499)

/cp
2011-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/49776
* typeck.c (cp_build_modify_expr): Check digest_init return value
for error_mark_node.

/testsuite
2011-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/49776
* g++.dg/cpp0x/constexpr-49776.C: New.

From-SVN: r176809

13 years agoFix PR47046: correct evolution_function_is_affine_p
Sebastian Pop [Tue, 26 Jul 2011 18:48:49 +0000 (18:48 +0000)]
Fix PR47046: correct evolution_function_is_affine_p

"Bug 47046 - gcc.target/i386/sse4_1-movntdqa.c ICEs with -fgraphite-identity"

The problem here is that we are left with the following code to be
translated in the new representation following the transform that
Graphite has chosen:

        D.2709_14 = j_33 * i_32;
        D.2710_15 = D.2709_14 * i_32;
        D.2711_16 = D.2710_15 * sign_34;
        *D.2708_13 = D.2711_16;

In this particular case we have a nonlinear expression "i * i" for
which we have to generate code following the new graphite_iv variables.

The patch fixes the function that detects whether we are passing non
linear stuff to graphite: evolution_function_is_affine_p.  It seems
like for the moment evolution_function_is_affine_p is testing whether
an evolution function is affine only in the innermost loop, without
looking recursively at what happens in outer loops.

The chrec for this case is: {0, +, {0, +, {1, +, 2}_1}_1}_2 and we are
testing whether the evolution is affine only for the loop_2, which is
true as we have {0, +, blah}_2 with blah invariant in loop_2.

The patch adds the recursive call to evolution_function_is_affine_p.

Bootstrapped and tested on amd64-linux.

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

PR middle-end/47046
* tree-chrec.h (evolution_function_is_affine_p): Recursively call
evolution_function_is_affine_p on CHREC_RIGHT.

* gcc.dg/graphite/id-pr47046.c: New.

From-SVN: r176805

13 years agoAvoid use of lang_hooks.types.type_for_size.
Sebastian Pop [Tue, 26 Jul 2011 18:48:33 +0000 (18:48 +0000)]
Avoid use of lang_hooks.types.type_for_size.

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

* tree-data-ref.c (max_stmt_executions_tree): Do not call
lang_hooks.types.type_for_size.

From-SVN: r176804

13 years agoAdd testcase for PR47593
Sebastian Pop [Tue, 26 Jul 2011 18:48:20 +0000 (18:48 +0000)]
Add testcase for PR47593

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

PR middle-end/47653
* gcc.dg/graphite/run-id-pr47593.c: New.

From-SVN: r176803

13 years agoFix PR47653: do not handle loops using wrapping semantics in graphite
Sebastian Pop [Tue, 26 Jul 2011 18:48:08 +0000 (18:48 +0000)]
Fix PR47653: do not handle loops using wrapping semantics in graphite

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

PR middle-end/47653
* graphite-scop-detection.c (graphite_can_represent_loop): Discard
loops using wrapping semantics.

* gcc.dg/graphite/run-id-pr47653.c: New.
* gcc.dg/graphite/interchange-3.c: Do not use unsigned types for
induction variables.
* gcc.dg/graphite/scop-16.c: Same.
* gcc.dg/graphite/scop-17.c: Same.
* gcc.dg/graphite/scop-21.c: Same.

From-SVN: r176802

13 years agoFix PR48805: Do not instantiate ADDR_EXPRs
Sebastian Pop [Tue, 26 Jul 2011 18:47:44 +0000 (18:47 +0000)]
Fix PR48805: Do not instantiate ADDR_EXPRs

With this patch we avoid instantiating ADDR_EXPR: it makes no sense
to translate &b[i] into &b[{0, +, 1}_1].

Bootstrapped and tested on amd64-linux.

2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>

PR middle-end/48805
* tree-scalar-evolution.c (instantiate_scev_r): Return
chrec_dont_know for ADDR_EXPR.

* gcc.dg/graphite/id-pr48805.c: New.

From-SVN: r176801

13 years agoconfigure.ac: Set have_compiler based on whether gcc directory exists...
Ian Lance Taylor [Tue, 26 Jul 2011 18:44:11 +0000 (18:44 +0000)]
configure.ac: Set have_compiler based on whether gcc directory exists...

* configure.ac: Set have_compiler based on whether gcc directory
exists, rather than on whether gcc is in configdirs.
* configure: Rebuild.

From-SVN: r176800

13 years agore PR target/47369 ([x32] internal compiler error: in extract_insn, at recog.c:2109)
Uros Bizjak [Tue, 26 Jul 2011 18:03:54 +0000 (20:03 +0200)]
re PR target/47369 ([x32] internal compiler error: in extract_insn, at recog.c:2109)

PR target/47369
PR target/49853
* config/i386/i386.c (ix86_expand_move): Call convert_to_mode
if legitimize_tls_address returned operand in wrong mode. Allow
SImode and DImode symbolic operand for PIC.  Call convert_to_mode
if legitimize_pic_address returned operand in wrong mode.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r176798

13 years agotree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and return false for...
Martin Jambor [Tue, 26 Jul 2011 17:21:21 +0000 (19:21 +0200)]
tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and return false for invariants.

2011-07-26  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
return false for invariants.

From-SVN: r176797

13 years agoRemove an extra line.
H.J. Lu [Tue, 26 Jul 2011 17:07:51 +0000 (17:07 +0000)]
Remove an extra line.

2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>

* testsuite/demangle-expected: Remove an extra line.

From-SVN: r176796

13 years agoi386.md (add->lea splitter): Implement using SWI mode iterator.
Uros Bizjak [Tue, 26 Jul 2011 16:04:53 +0000 (18:04 +0200)]
i386.md (add->lea splitter): Implement using SWI mode iterator.

* config/i386/i386.md (add->lea splitter): Implement using SWI
mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
(add->lea zext splitter): Change operand 2 predicate to
x86_64_nonmemory_operand.

From-SVN: r176795

13 years agopredict.c (maybe_hot_frequency_p): Make sure a zero entry-block frequency makes every...
Richard Guenther [Tue, 26 Jul 2011 15:44:50 +0000 (15:44 +0000)]
predict.c (maybe_hot_frequency_p): Make sure a zero entry-block frequency makes everything hot.

2011-07-26  Richard Guenther  <rguenther@suse.de>

* predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
frequency makes everything hot.

From-SVN: r176794

13 years agocp-demangle.c (d_print_init): Initialize pack_index field.
Ian Lance Taylor [Tue, 26 Jul 2011 14:28:23 +0000 (14:28 +0000)]
cp-demangle.c (d_print_init): Initialize pack_index field.

* cp-demangle.c (d_print_init): Initialize pack_index field.
(d_print_comp): Check for NULL template argument.
* testsuite/demangle-expected: Add test case.

From-SVN: r176791

13 years agore PR middle-end/49840 (New test failures)
Richard Guenther [Tue, 26 Jul 2011 12:37:00 +0000 (12:37 +0000)]
re PR middle-end/49840 (New test failures)

2011-07-26  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/49840
* tree-vrp.c (range_fits_type_p): Properly handle full
double-int precision.

From-SVN: r176790

13 years agore PR bootstrap/49786 (bootstrap failed with bootstrap-profiled)
Martin Jambor [Tue, 26 Jul 2011 12:26:58 +0000 (14:26 +0200)]
re PR bootstrap/49786 (bootstrap failed with bootstrap-profiled)

2011-07-26  Martin Jambor  <mjambor@suse.cz>

PR bootstrap/49786
* ipa-cp.c (update_profiling_info): Avoid overflow when updating
counts.
(update_specialized_profile): Likewise.

From-SVN: r176789

13 years agore PR target/47381 ([x32] internal compiler error: in gen_lowpart_general, at rtlhook...
Uros Bizjak [Tue, 26 Jul 2011 12:00:33 +0000 (14:00 +0200)]
re PR target/47381 ([x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59)

PR target/47381
PR target/49832
PR target/49833
* config/i386/i386.md (i): Change SImode attribute to "e".
(g): Change SImode attribute to "rme".
(di): Change SImode attribute to "nF".
(general_operand): Change SImode attribute to x86_64_general_operand.
(general_szext_operand): Change SImode attribute to
x86_64_szext_general_operand.
(immediate_operand): Change SImode attribute to
x86_64_immediate_operand.
(nonmemory_operand): Change SImode attribute to
x86_64_nonmemory_operand.
(*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
(*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
(*lea_1): Use SWI48 mode iterator.
(*lea_1_zext): New insn pattern.
(testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
(*bt<mode>): Ditto.
(*add<mode>1): Use x86_64_general_operand predicate for operand 2.
Update operand constraints.
(addsi_1_zext): Ditto.
(*add<mode>2): Ditto.
(*addsi_3_zext): Ditto.
(*subsi_1_zext): Ditto.
(*subsi_2_zext): Ditto.
(*subsi_3_zext): Ditto.
(*addsi3_carry_zext): Ditto.
(*<plusminus_insn>si3_zext_cc_overflow): Ditto.
(*mulsi3_1_zext): Ditto.
(*andsi_1): Ditto.
(*andsi_1_zext): Ditto.
(*andsi_2_zext): Ditto.
(*<any_or:code>si_1_zext): Ditto.
(*<any_or:code>si_2_zext): Ditto.
(*test<mode>_1): Use <general_operand> predicate for operand 1.
(*and<mode>_2): Ditto.
(mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
(add->lea splitter): Check operand modes in insn constraint.  Extend
operands less than SImode wide to SImode.
(add->lea zext splitter): Do not extend input operands to DImode.
(*lea_general_1): Handle only QImode and HImode operands.
(*lea_general_2): Ditto.
(*lea_general_3): Ditto.
(*lea_general_1_zext): Remove.
(*lea_general_2_zext): Ditto.
(*lea_general_3_zext): Ditto.
(*lea_general_4): Check operand modes in insn constraint.  Extend
operands less than SImode wide to SImode.
(ashift->lea splitter): Ditto.
* config/i386/i386.c (ix86_print_operand_address): Print address
registers with 'q' modifier on 64bit targets.
* config/i386/predicates.md (pic_32bit_opreand): Define as special
predicate.  Reject non-SI and non-DI modes.

From-SVN: r176788

13 years agotrans-array.c (CAF_TOKEN_FIELD): New macro constant.
Tobias Burnus [Tue, 26 Jul 2011 07:30:37 +0000 (09:30 +0200)]
trans-array.c (CAF_TOKEN_FIELD): New macro constant.

2011-07-26  Tobias Burnus  <burnus@net-b.de>

        * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
        (gfc_conv_descriptor_token): New function.
        * trans-array.h (gfc_conv_descriptor_token): New prototype.
        * trans-types.c (gfc_get_array_descriptor_base): For coarrays
        with -fcoarray=lib, append "void *token" to the array descriptor.
        (gfc_array_descriptor_base_caf): New static variable.
        * trans-expr.c (gfc_conv_procedure_call): Handle token and
        * offset
        when passing a descriptor coarray to a nondescriptor dummy.

2011-07-26  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_lib_token_2.f90: New.

From-SVN: r176784

13 years agovect-70.c: Reduce the data size to fit SPU local store.
Ira Rosen [Tue, 26 Jul 2011 07:00:45 +0000 (07:00 +0000)]
vect-70.c: Reduce the data size to fit SPU local store.

* gcc.dg/vect/vect-70.c: Reduce the data size to fit
SPU local store.

From-SVN: r176783

13 years agore PR middle-end/49671 (volatile goes missing after inlining)
Andrew Pinski [Tue, 26 Jul 2011 05:28:45 +0000 (05:28 +0000)]
re PR middle-end/49671 (volatile goes missing after inlining)

2011-07-25  Andrew Pinski  <apinski@cavium.com>

PR tree-opt/49671
* tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
TREE_THIS_NOTRAP into the inner most MEM_REF.
Always copy TREE_THIS_VOLATILE.
* tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
arguments are not volatile references.

2011-07-25  Andrew Pinski  <apinski@cavium.com>

PR tree-opt/49671
* gcc.dg/tree-ssa/pr49671-1.c: New testcase.
* gcc.dg/tree-ssa/pr49671-2.c: New testcase.

From-SVN: r176782

13 years agoarray (at): Remove constexpr when -fno-exceptions.
Benjamin Kosnik [Tue, 26 Jul 2011 04:21:57 +0000 (04:21 +0000)]
array (at): Remove constexpr when -fno-exceptions.

2011-07-25  Benjamin Kosnik  <bkoz@redhat.com>

* include/std/array (at): Remove constexpr when -fno-exceptions.
* testsuite/23_containers/array/at_neg.cc: Test.

From-SVN: r176780

13 years agoinsn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
Richard Henderson [Tue, 26 Jul 2011 00:57:55 +0000 (17:57 -0700)]
insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.

        * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
        * final.c (final_scan_insn): Don't test for it.
        (rest_of_clean_state): Likewise.

From-SVN: r176779

13 years agoDaily bump.
GCC Administrator [Tue, 26 Jul 2011 00:18:37 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r176778

13 years agore PR debug/49841 (AIX bootstrap failure in dwarf2cfi.c:maybe_record_trace_start)
Richard Henderson [Mon, 25 Jul 2011 22:53:25 +0000 (15:53 -0700)]
re PR debug/49841 (AIX bootstrap failure in dwarf2cfi.c:maybe_record_trace_start)

PR debug/49841
* config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
(emit_frame_save): Likewise.
(rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
insn onto a dummy blockage insn after the join label.

From-SVN: r176773

13 years agodwarf2cfi: Generate remember/restore_state.
Richard Henderson [Mon, 25 Jul 2011 22:41:17 +0000 (15:41 -0700)]
dwarf2cfi: Generate remember/restore_state.

From-SVN: r176772

13 years agodwarf2cfi: Add debug_cfi_row.
Richard Henderson [Mon, 25 Jul 2011 22:35:13 +0000 (15:35 -0700)]
dwarf2cfi: Add debug_cfi_row.

From-SVN: r176771

13 years agogenattr.c (write_upcase, [...]): Move to ...
Joern Rennecke [Mon, 25 Jul 2011 21:32:56 +0000 (21:32 +0000)]
genattr.c (write_upcase, [...]): Move to ...

        * genattr.c (write_upcase, gen_attr <enum definition writing>):
        Move to ...
        * genattr-common.c ... here.
        (main): Call gen_attr.
        * optc-gen.awk: Make generated program include insn-attr-common.h .
        * Makefile.in (oprions.o): Depend on insn-attr-common.h

From-SVN: r176769

13 years agore PR bootstrap/49845 (bootstrap failure)
Paolo Carlini [Mon, 25 Jul 2011 17:50:13 +0000 (17:50 +0000)]
re PR bootstrap/49845 (bootstrap failure)

2011-07-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR bootstrap/49845
* parser.c (cp_parser_perform_range_for_lookup): Always assign *being
and *end before returning.

From-SVN: r176765

13 years agom32c.h (PRINT_OPERAND, [...]): Remove macro.
Anatoly Sokolov [Mon, 25 Jul 2011 17:46:07 +0000 (21:46 +0400)]
m32c.h (PRINT_OPERAND, [...]): Remove macro.

* config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
* config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
m32c_print_operand, m32c_print_operand_address): Remove.
* config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
Change return type to bool. Change argument type to bool.
(m32c_print_operand, m32c_print_operand_address): Make static.
(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

From-SVN: r176763

13 years agoRemove parm name from declaration
Dodji Seketeli [Mon, 25 Jul 2011 17:18:10 +0000 (17:18 +0000)]
Remove parm name from declaration

gcc/c-family

* c-common.h (set_underlying_type): Remove parm name from
declaration.

From-SVN: r176762

13 years agore PR libstdc++/49836 ([C++0x] vector<T>::push_back() should not require T to be...
Paolo Carlini [Mon, 25 Jul 2011 17:08:48 +0000 (17:08 +0000)]
re PR libstdc++/49836 ([C++0x] vector<T>::push_back() should not require T to be (move-)assignable)

2011-07-25  Paolo Carlini  <paolo.carlini@oracle.com>
    Nathan Ridge  <zeratul976@hotmail.com>

PR libstdc++/49836
* include/bits/stl_vector.h (vector<>::_M_emplace_back_aux):
Declare.
(vector<>::push_back(const value_type&)): Use it.
* include/bits/vector.tcc: Define.
(vector<>::emplace_back(_Args&&...)): Use it.
* testsuite/util/testsuite_tr1.h (CopyConsOnlyType, MoveConsOnlyType):
Add.
* testsuite/23_containers/vector/modifiers/push_back/49836.cc: New.
* testsuite/23_containers/deque/modifiers/push_back/49836.cc:
Likewise.
* testsuite/23_containers/deque/modifiers/push_front/49836.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.

Co-Authored-By: Nathan Ridge <zeratul976@hotmail.com>
From-SVN: r176761

13 years agosourcebuild.texi (Effective-Target Keywords, [...]): Document mmap.
Rainer Orth [Mon, 25 Jul 2011 16:44:22 +0000 (16:44 +0000)]
sourcebuild.texi (Effective-Target Keywords, [...]): Document mmap.

gcc:
* doc/sourcebuild.texi (Effective-Target Keywords, Environment
attributes): Document mmap.

gcc/testsuite:
* lib/target-supports.exp (check_effective_target_mmap): New proc.

* gcc.c-torture/execute/loop-2f.c: Remove #ifdef __unix__.
* gcc.c-torture/execute/loop-2g.c: Likewise.
* gcc.c-torture/execute/loop-2f.x: Load target-supports.exp.
Require mmap support.
* gcc.c-torture/execute/loop-2g.x: Likewise.
* gcc.dg/20030711-1.c: Replace dg-do target list by mmap.
(MAP_ANON): Provide default.
* gcc.dg/20050826-1.c: Likewise.
* gcc.target/i386/pr36533.c: Likewise.
* gcc.dg/vect/pr49038.c: Remove dg-do run.
Use dg-require-effective-target mmap.

From-SVN: r176760

13 years agommix.h (PRINT_OPERAND, [...]): Remove macro.
Anatoly Sokolov [Mon, 25 Jul 2011 16:35:38 +0000 (20:35 +0400)]
mmix.h (PRINT_OPERAND, [...]): Remove macro.

* config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
* config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
mmix_print_operand, mmix_print_operand_address): Remove.
* config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
Change return type to bool. Change argument type to bool.
(mmix_print_operand, mmix_print_operand_address): Make static.
(mmix_intval, mmix_output_condition): Change 'x' argument type
to const_rtx.
(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

From-SVN: r176759

13 years agore PR c++/49347 (G++ rejects Solaris spawn.h use of __restrict)
Rainer Orth [Mon, 25 Jul 2011 15:56:27 +0000 (15:56 +0000)]
re PR c++/49347 (G++ rejects Solaris spawn.h use of __restrict)

PR c++/49347
* inclhack.def (solaris_posix_spawn_restrict): New fix.
* fixincl.x: Regenerate.
* tests/base/spawn.h: New test.

From-SVN: r176758

13 years agore PR target/39386 ([avr] different computation results for O1 and O0 executables)
Georg-Johann Lay [Mon, 25 Jul 2011 15:41:55 +0000 (15:41 +0000)]
re PR target/39386 ([avr] different computation results for O1 and O0 executables)

PR target/39386
* config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
shift counter for x << x and x >> x shifts.

From-SVN: r176756

13 years agore PR libgomp/45351 (many unaligned accesses in libgomp tests)
Rainer Orth [Mon, 25 Jul 2011 15:39:52 +0000 (15:39 +0000)]
re PR libgomp/45351 (many unaligned accesses in libgomp tests)

PR libgomp/45351
* config/osf/sem.h: New file.
* configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.

From-SVN: r176755

13 years agore PR c++/49838 ([C++0x] ICE in cp_parser_perform_range_for_lookup, at cp/parser...
Paolo Carlini [Mon, 25 Jul 2011 15:29:13 +0000 (15:29 +0000)]
re PR c++/49838 ([C++0x] ICE in cp_parser_perform_range_for_lookup, at cp/parser.c:8796)

/cp
2011-07-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/49838
* parser.c (cp_parser_perform_range_for_lookup): Early return if
error_operand_p (range).

/testsuite
2011-07-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/49838
* g++.dg/cpp0x/range-for19.C: New.

From-SVN: r176754

13 years agore PR testsuite/49753 (FAIL: g++.dg/torture/pr49309.C)
Rainer Orth [Mon, 25 Jul 2011 15:25:32 +0000 (15:25 +0000)]
re PR testsuite/49753 (FAIL: g++.dg/torture/pr49309.C)

gcc/testsuite:
PR testsuite/49753
* g++.dg/torture/pr49309.C: Add -fpreprocessed to dg-options.

Revert:
2011-07-15  Jakub Jelinek  <jakub@redhat.com>

PR testsuite/49753
* g++.dg/torture/pr49309.C: Remove.

libmudflap:
Revert:
2011-07-15  Jakub Jelinek  <jakub@redhat.com>

PR testsuite/49753
PR tree-optimization/49309
* testsuite/libmudflap.c++/pass68-frag.cxx: New test.

From-SVN: r176752

13 years agore PR target/47124 (*solaris2 configurations configure, but don't build)
Rainer Orth [Mon, 25 Jul 2011 14:58:18 +0000 (14:58 +0000)]
re PR target/47124 (*solaris2 configurations configure, but don't build)

PR target/47124
* config.gcc: Reject *-*-solaris2 configuration.

From-SVN: r176751

13 years agore PR tree-optimization/49809 (gimple_check failure at -O3)
Richard Sandiford [Mon, 25 Jul 2011 14:51:47 +0000 (14:51 +0000)]
re PR tree-optimization/49809 (gimple_check failure at -O3)

gcc/
PR tree-optimization/49809
* tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
gimple_get_lhs instead of gimple_assign_lhs.

gcc/testsuite/
PR tree-optimization/49809
* gnat.dg/opt18.adb, gnat.dg/opt18.ads, gnat.dg/opt18_pkg.ads: New
test.

From-SVN: r176750

13 years agosystem.h [...]: Wrap C function declarations in extern "C".
Rainer Orth [Mon, 25 Jul 2011 14:26:58 +0000 (14:26 +0000)]
system.h [...]: Wrap C function declarations in extern "C".

* system.h [__cplusplus]: Wrap C function declarations in extern "C".
-This line, and those below, will be ignored--

M    ChangeLog
M    system.h

From-SVN: r176748

13 years agosystem.h [...]: Wrap C function declarations in extern "C".
Rainer Orth [Mon, 25 Jul 2011 14:24:59 +0000 (14:24 +0000)]
system.h [...]: Wrap C function declarations in extern "C".

gcc:
* system.h [__cplusplus]: Wrap C function declarations in extern "C".

include:
* xregex.h (regoff_t): Define.

From-SVN: r176747

13 years agore PR tree-optimization/49822 (Segfault in remove_prop_source_from_use)
Richard Guenther [Mon, 25 Jul 2011 14:15:02 +0000 (14:15 +0000)]
re PR tree-optimization/49822 (Segfault in remove_prop_source_from_use)

2011-07-25  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/49822
* tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
more.  Make sure to preserve stmts with side-effects.  Properly
handle virtual defs, follow a longer def chain.

From-SVN: r176745

13 years agobehalf of romain.geissler@gmail.com. Fix plugin file installation
Romain Geissler [Mon, 25 Jul 2011 11:15:12 +0000 (11:15 +0000)]
behalf of romain.geissler@gmail.com. Fix plugin file installation

From-SVN: r176741

13 years agoipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of original nodes...
Eric Botcazou [Mon, 25 Jul 2011 10:40:10 +0000 (10:40 +0000)]
ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of original nodes if...

* ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
original nodes if we are dealing with virtual clones.

From-SVN: r176739

13 years ago* common/config/c6x/c6x-common.c: New file.
Bernd Schmidt [Mon, 25 Jul 2011 10:37:07 +0000 (10:37 +0000)]
* common/config/c6x/c6x-common.c: New file.

From-SVN: r176738

13 years agotree-flow.h (tree_ssa_loop_version): Remove unused declaration.
Roman Zhuykov [Mon, 25 Jul 2011 09:43:01 +0000 (09:43 +0000)]
tree-flow.h (tree_ssa_loop_version): Remove unused declaration.

2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>

* tree-flow.h (tree_ssa_loop_version): Remove unused declaration.

From-SVN: r176737

13 years agore PR tree-optimization/49715 (Could do more efficient unsigned-to-float to conversio...
Richard Guenther [Mon, 25 Jul 2011 08:30:46 +0000 (08:30 +0000)]
re PR tree-optimization/49715 (Could do more efficient unsigned-to-float to conversions based on range information)

2011-07-25  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/49715
* tree-vrp.c: Include expr.h and optabs.h.
(range_fits_type_): New function.
(simplify_float_conversion_using_ranges): Likewise.
(simplify_stmt_using_ranges): Call it.
* Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
* optabs.c (can_float_p): Export.
* optabs.h (can_float_p): Declare.

* gcc.target/i386/pr49715-1.c: New testcase.
* gcc.target/i386/pr49715-2.c: Likewise.

From-SVN: r176735

13 years agotree-vrp.c (num_vr_values, [...]): New global vars.
Richard Guenther [Mon, 25 Jul 2011 08:29:01 +0000 (08:29 +0000)]
tree-vrp.c (num_vr_values, [...]): New global vars.

2011-07-25  Richard Guenther  <rguenther@suse.de>

* tree-vrp.c (num_vr_values, values_propagated): New global vars.
(get_value_range): For out-of-range SSA names or names created
after propagation return a read-only varying range.
(dump_all_value_ranges): Adjust.
(vrp_initialize): Likewise.
(vrp_finalize): Likewise.

From-SVN: r176734

13 years agore PR c++/49823 ([C++0x] ICE on decltype(expr)::type with template)
Jason Merrill [Mon, 25 Jul 2011 05:03:50 +0000 (01:03 -0400)]
re PR c++/49823 ([C++0x] ICE on decltype(expr)::type with template)

PR c++/49823
* parser.c (cp_parser_qualifying_entity): Handle templates.

From-SVN: r176732

13 years agore PR debug/49831 (arm-linux-gnueabi bootstrap failures due to ICE in dwarf2cfi.c...
Richard Henderson [Mon, 25 Jul 2011 03:35:05 +0000 (20:35 -0700)]
re PR debug/49831 (arm-linux-gnueabi bootstrap failures due to ICE in dwarf2cfi.c connect_traces)

PR debug/49831
        * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
        them entirely.

Constant pools are emitted in such a way as to be indistinguishable
from regular instructions, and these constant pools are, naturally,
not reachable as code.

From-SVN: r176730

13 years agore PR debug/49825 (Many testcase failures)
Richard Henderson [Mon, 25 Jul 2011 03:26:35 +0000 (20:26 -0700)]
re PR debug/49825 (Many testcase failures)

PR debug/49825
        * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
        (dwarf2out_notice_stack_adjust): Use args_size from call_insn.

From-SVN: r176729

13 years agore PR debug/49827 (sparc64-linux and cris-elf bootstrap failures due to ICE in dwarf2...
Richard Henderson [Mon, 25 Jul 2011 03:18:13 +0000 (20:18 -0700)]
re PR debug/49827 (sparc64-linux and cris-elf bootstrap failures due to ICE in dwarf2cfi.c connect_traces)

PR debug/49827
        * dwarf2cfi.c (create_trace_edges): Handle sequences properly.

From-SVN: r176728

13 years agodwarf2cfi: Reset args_size properly across abnormal edges.
Richard Henderson [Mon, 25 Jul 2011 03:10:42 +0000 (20:10 -0700)]
dwarf2cfi: Reset args_size properly across abnormal edges.

        * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
        Zero args_size for abnormal edges.  Adjust all callers.

From-SVN: r176727

13 years agore PR debug/49825 (Many testcase failures)
Richard Henderson [Mon, 25 Jul 2011 03:05:06 +0000 (20:05 -0700)]
re PR debug/49825 (Many testcase failures)

PR debug/49825

Test case gcc.c-torture/compile/pr49474.c, among others.

        * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.

From-SVN: r176726

13 years agoRemove the unused demangle_flag in collect2.c.
H.J. Lu [Mon, 25 Jul 2011 02:08:44 +0000 (02:08 +0000)]
Remove the unused demangle_flag in collect2.c.

2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>

PR bootstrap/49835
* collect2.c (demangle_flag): Removed.

From-SVN: r176725

13 years agoDaily bump.
GCC Administrator [Mon, 25 Jul 2011 00:18:53 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r176724

13 years agoconfigure.ac (demangler_in_ld): Default to yes.
Sandra Loosemore [Sun, 24 Jul 2011 23:22:41 +0000 (19:22 -0400)]
configure.ac (demangler_in_ld): Default to yes.

2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* configure.ac (demangler_in_ld): Default to yes.
* configure: Regenerated.
* collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
--no-demangle options straight through to ld.  When
HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
way that has the intended effect on Windows.

From-SVN: r176720

13 years agohashtable_policy.h (_Prime_rehash_policy::_M_next_bkt, [...]): Fix typos in the last...
Paolo Carlini [Sun, 24 Jul 2011 19:47:04 +0000 (19:47 +0000)]
hashtable_policy.h (_Prime_rehash_policy::_M_next_bkt, [...]): Fix typos in the last commit.

2011-07-24  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/hashtable_policy.h (_Prime_rehash_policy::_M_next_bkt,
_M_bkt_for_elements, _M_need_rehash): Fix typos in the last commit.

From-SVN: r176718