gcc.git
12 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

12 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

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

From-SVN: r176863

12 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

12 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

12 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

12 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

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

From-SVN: r176856

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r176816

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r176778

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

From-SVN: r176724

12 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

12 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

12 years agohashtable_policy.h (_Prime_rehash_policy): Use __builtin_floor rather than __builtin_...
François Dumont [Sun, 24 Jul 2011 19:20:26 +0000 (21:20 +0200)]
hashtable_policy.h (_Prime_rehash_policy): Use __builtin_floor rather than __builtin_ceil to compute next resize value.

2011-07-24  François Dumont  <francois.cppdevs@free.fr>

        * include/bits/hashtable_policy.h (_Prime_rehash_policy): Use
        __builtin_floor rather than __builtin_ceil to compute next resize
        value.
        * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
        New.

From-SVN: r176717

12 years agodecl.c (gnat_to_gnu_entity): If the subprogram has copy-in copy-out parameters...
Eric Botcazou [Sun, 24 Jul 2011 13:14:17 +0000 (13:14 +0000)]
decl.c (gnat_to_gnu_entity): If the subprogram has copy-in copy-out parameters...

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
subprogram has copy-in copy-out parameters, try to promote the mode of
the return type if it is passed in registers.

From-SVN: r176714

12 years agoutils2.c (build_binary_op): Do not mark the left operand as addressable.
Eric Botcazou [Sun, 24 Jul 2011 12:50:41 +0000 (12:50 +0000)]
utils2.c (build_binary_op): Do not mark the left operand as addressable.

* gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
left operand as addressable.

From-SVN: r176713

12 years agogigi.h (build_function_stub): Remove.
Eric Botcazou [Sun, 24 Jul 2011 12:45:44 +0000 (12:45 +0000)]
gigi.h (build_function_stub): Remove.

* gcc-interface/gigi.h (build_function_stub): Remove.
(build_return_expr): Likewise.
(convert_vms_descriptor): Declare.
* gcc-interface/utils.c (convert_vms_descriptor): Make global.
(build_function_stub): Move to...
* gcc-interface/utils2.c (build_return_expr): Move to...
* gcc-interface/trans.c (build_function_stub): ...here.
(build_return_expr): ...here.
(Subprogram_Body_to_gnu): Add local variable for language_function.
Disconnect the parameter attributes cache, if any, once done with it.
Call end_subprog_body only after setting the end_locus.
Build the stub associated with the function, if any, at the very end.
(gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
variables and streamline control flow.

From-SVN: r176712

12 years agoDaily bump.
GCC Administrator [Sun, 24 Jul 2011 00:18:49 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r176711

12 years agodwarf2cfi: Generate and connect traces.
Richard Henderson [Sat, 23 Jul 2011 20:49:33 +0000 (13:49 -0700)]
dwarf2cfi: Generate and connect traces.

This kinda-sorta corresponds to Bernd's 007-dw2cfi patch.  Certainly
the same concepts of splitting the instruction stream into extended
basic blocks is the same.  This patch does a bit better job with the
documentation.  Also, I'm a bit more explicit about matching things
up with the similar code from the regular CFG routines.

What's missing at this point is any attempt to use DW_CFA_remember_state.
I've deferred that for the moment because it's easy to test the state
change code across epilogues, whereas the shrink-wrapping code is not
in this tree and section switching is difficult to force.

        * dwarf2cfi.c: Include basic-block.h.
        (dw_label_info): Remove.
        (trace_work_list, trace_index): New.
        (remember_row, emit_cfa_remember): Remove.
        (dw_trace_info_hash, dw_trace_info_eq): New.
        (get_trace_index, get_trace_info): New.
        (save_point_p): New.
        (free_cfi_row): Remove.
        (add_cfi): Do not emit DW_CFA_remember_state.
        (cfa_row_equal_p): New.
        (barrier_args_size): Remove.
        (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
        (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
        (maybe_record_trace_start, create_trace_edges, scan_trace): New.
        (dwarf2out_cfi_begin_epilogue): Remove.
        (dwarf2out_frame_debug_restore_state): Remove.
        (connect_traces, create_pseudo_cfg): New.
        (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
        * Makefile.in (dwarf2cfi.o): Update.

From-SVN: r176705

12 years agodwarf2cfi: Introduce dw_trace_info.
Richard Henderson [Sat, 23 Jul 2011 20:36:36 +0000 (13:36 -0700)]
dwarf2cfi: Introduce dw_trace_info.

This patch only introduces the structure definition and adjusts
the existing routines to use the new cur_trace global to access
the variables that were moved into the structure.

        * dwarf2cfi.c (dw_trace_info): New.
        (dw_label_info): New.
        (cie_return_save): New.
        (cur_trace): New.
        (queued_args_size): Rename from args_size.  Update all users.
        (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
        (def_cfa_1): Use cur_trace instead of cfa_*.
        (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
        (clobbers_queued_reg_save, reg_saved_in): Likewise.
        (dwarf2out_frame_debug_expr): Likewise.
        (create_cie_data): Split out from ...
        (execute_dwarf2_frame): ... here.  Initialize cur_trace.

From-SVN: r176704

12 years agodwarf2cfi: Allocate reg_saved_in_data in the heap.
Richard Henderson [Sat, 23 Jul 2011 20:27:32 +0000 (13:27 -0700)]
dwarf2cfi: Allocate reg_saved_in_data in the heap.

        * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
        Update all users to match.
        (execute_dwarf2_frame): Free reg_saved_in_data.

From-SVN: r176703

12 years agodwarf2cfi: Convert queued_reg_save to a VEC.
Richard Henderson [Sat, 23 Jul 2011 20:25:47 +0000 (13:25 -0700)]
dwarf2cfi: Convert queued_reg_save to a VEC.

Also, allocate it in the heap instead of garbage collected.

        * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
        (queued_reg_saves): Don't GTY.  Change to a VEC.
        (queue_reg_save): Update to match.
        (dwarf2out_flush_queued_reg_saves): Likewise.
        (clobbers_queued_reg_save): Likewise.
        (reg_saved_in): Likewise.
        (execute_dwarf2_frame): Free queued_reg_saves.

From-SVN: r176702

12 years agodwarf2cfi: Remove dw_cfi_row_ref typedef.
Richard Henderson [Sat, 23 Jul 2011 20:19:22 +0000 (13:19 -0700)]
dwarf2cfi: Remove dw_cfi_row_ref typedef.

        * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.

From-SVN: r176701

12 years agodwarf2cfi: Implement change_cfi_row.
Richard Henderson [Sat, 23 Jul 2011 20:17:54 +0000 (13:17 -0700)]
dwarf2cfi: Implement change_cfi_row.

Add a generic function to adjust cfi state from one row to another.
Use this to implement text section switching.  This will also be
usable for arbitrary changes around a cfg for shrink-wrapping.

        * dwarf2cfi.c (add_cfi_args_size): Split out from...
        (dwarf2out_args_size): ... here.
        (add_cfi_restore): Split out from ...
        (dwarf2out_frame_debug_cfa_restore): ... here.
        (def_cfa_0): Split out from ...
        (def_cfa_1): ... here.
        (cfi_oprnd_equal_p, cfi_equal_p): New.
        (change_cfi_row): New.
        (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
        (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
        (output_cfis): Remove.
        * dwarf2out.c (output_fde): Simplify output_cfi loop.
        (dwarf2out_switch_text_section): Don't call output_cfis.
        (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
        * dwarf2out.h: Update decls.
        (enum dw_val_class): Add dw_val_class_none.

From-SVN: r176700