platform/upstream/gcc.git
11 years agoUpdate tail-merge header comment.
Tom de Vries [Mon, 29 Apr 2013 11:14:26 +0000 (11:14 +0000)]
Update tail-merge header comment.

2013-04-29  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-tail-merge.c: Update header comment.

From-SVN: r198407

11 years ago[AArch64][Testsuite] Enable vect_uintfloat_cvt for AArch64.
James Greenhalgh [Mon, 29 Apr 2013 11:11:11 +0000 (11:11 +0000)]
[AArch64][Testsuite] Enable vect_uintfloat_cvt for AArch64.

gcc/testsuite/
* lib/target-supports.exp (vect_uintfloat_cvt): Enable for AArch64.

From-SVN: r198406

11 years ago[AArch64] fcvt instructions - arm_neon.h changes.
James Greenhalgh [Mon, 29 Apr 2013 11:08:30 +0000 (11:08 +0000)]
[AArch64] fcvt instructions - arm_neon.h changes.

gcc/
* config/aarch64/arm_neon.h
(vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
(vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
(vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
(vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.

gcc/testsuite/
* gcc.target/aarch64/vect-vcvt.c: New.

From-SVN: r198404

11 years ago[AArch64] Add vector fix, fixuns, fix_trunc, fixuns_trunc standard patterns
James Greenhalgh [Mon, 29 Apr 2013 11:04:56 +0000 (11:04 +0000)]
[AArch64] Add vector fix, fixuns, fix_trunc, fixuns_trunc standard patterns

gcc/
* config/aarch64/aarch64-simd.md
(<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
(<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
fix_trunc, fixuns_trunc.
(ftrunc<VDQF:mode>2): New.
* config/aarch64/iterators.md (optab): Add fix, fixuns.
(fix_trunc_optab): New.

From-SVN: r198403

11 years ago[AArch64] Vectorize over more math.h functions.
James Greenhalgh [Mon, 29 Apr 2013 11:02:15 +0000 (11:02 +0000)]
[AArch64] Vectorize over more math.h functions.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Vectorize over ifloorf,
iceilf, lround, iroundf.

From-SVN: r198402

11 years agore PR target/54349 (_mm_cvtsi128_si64 unnecessary stores value at stack)
Uros Bizjak [Mon, 29 Apr 2013 11:00:10 +0000 (13:00 +0200)]
re PR target/54349 (_mm_cvtsi128_si64 unnecessary stores value at stack)

PR target/54349
* config/i386/i386.h (enum ix86_tune_indices)
<X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
New, split from X86_TUNE_INTER_UNIT_MOVES.
<X86_TUNE_INTER_UNIT_MOVES>: Remove.
(TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
(TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
(TARGET_INTER_UNIT_MOVES): Remove.
* config/i386/i386.c (initial_ix86_tune_features): Update.
Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
(ix86_expand_convert_uns_didf_sse): Use
TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
(ix86_expand_vector_init_one_nonzero): Ditto.
(ix86_expand_vector_init_interleave): Ditto.
(inline_secondary_memory_needed): Return true for moves from SSE class
registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
* config/i386/constraints.md (Yi, Ym): Depend on
TARGET_INTER_UNIT_MOVES_TO_VEC.
(Yj, Yn): New constraints.
* config/i386/i386.md (*movdi_internal): Change constraints of
operand 1 from Yi to Yj and from Ym to Yn.
(*movsi_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.
(*float<SWI48x:mode><X87MODEF:mode>2_1): Use
TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
(*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
(floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
(floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
* config/i386/sse.md (movdi_to_sse): Ditto.
(sse2_stored): Change constraint of operand 1 from Yi to Yj.
Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
TARGET_INTER_UNIT_MOVES.
(sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
(sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
instead of TARGET_INTER_UNIT_MOVES.
* config/i386/mmx.md (*mov<mode>_internal): Change constraint of
operand 1 from Yi to Yj and from Ym to Yn.

From-SVN: r198401

11 years ago[AArch64] Implement vector float->double widening and double->float narrowing.
James Greenhalgh [Mon, 29 Apr 2013 10:57:59 +0000 (10:57 +0000)]
[AArch64] Implement vector float->double widening and double->float  narrowing.

gcc/
* config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
(float_truncate_hi_): Likewise.
(float_extend_lo_): Likewise.
(float_truncate_lo_): Likewise.
* config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
(aarch64_float_extend_lo_v2df): Likewise.
(vec_unpacks_hi_v4sf): Likewise.
(aarch64_float_truncate_lo_v2sf): Likewise.
(aarch64_float_truncate_hi_v4sf): Likewise.
(vec_pack_trunc_v2df): Likewise.
(vec_pack_trunc_df): Likewise.

From-SVN: r198400

11 years ago[AArch64] Add vector int to float conversions.
James Greenhalgh [Mon, 29 Apr 2013 10:54:32 +0000 (10:54 +0000)]
[AArch64] Add vector int to float conversions.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_fold_builtin): Fold float conversions.
* config/aarch64/aarch64-simd-builtins.def
(floatv2si, floatv4si, floatv2di): New.
(floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
* config/aarch64/aarch64-simd.md
(<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
* config/aarch64/iterators.md (FLOATUORS): New.
(optab): Add float, floatuns.
(su_optab): Likewise.

From-SVN: r198399

11 years ago[AArch64] Map fcvt intrinsics to builtin name directly.
James Greenhalgh [Mon, 29 Apr 2013 10:51:46 +0000 (10:51 +0000)]
[AArch64] Map fcvt intrinsics to builtin name directly.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Use new names for
fcvt builtins.
* config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
(lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
(fcvtzu): Split as...
(lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
(fcvtas): Split as...
(lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
(fcvtau): Split as...
(lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
(fcvtps): Split as...
(lceilv2sf, lceilv4sf, lceilv2df): ...This.
(fcvtpu): Split as...
(lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
(fcvtms): Split as...
(lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
(fcvtmu): Split as...
(lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
(lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
(lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
(lfrintnusf, lfrintnudf): Likewise.
* config/aarch64/aarch64-simd.md
(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
define_insn.
(aarch64_fcvt<frint_suffix><su><mode>): Remove.
* config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
(fcvt_pattern): Likewise.

From-SVN: r198398

11 years ago[AArch64] Fix order of modes to lroundmn2 standard names.
James Greenhalgh [Mon, 29 Apr 2013 10:48:54 +0000 (10:48 +0000)]
[AArch64] Fix order of modes to lroundmn2 standard names.

gcc/
* config/aarch64/aarch64-simd.md
(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
(l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.

From-SVN: r198397

11 years ago[AArch64] Convert NEON frint implementations to use builtins.
James Greenhalgh [Mon, 29 Apr 2013 10:23:15 +0000 (10:23 +0000)]
[AArch64] Convert NEON frint implementations to use builtins.

gcc/
* config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
(vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
(vrnd<a,m,n,p>_f32): Implement using builtins.
(vrnd<i,x><q>_f<32, 64>): New.

gcc/testsuite/
* gcc.target/aarch64/vect-vrnd.c: New.

From-SVN: r198396

11 years ago[AArch64] Map frint intrinsics to standard pattern names directly.
James Greenhalgh [Mon, 29 Apr 2013 10:17:51 +0000 (10:17 +0000)]
[AArch64] Map frint intrinsics to standard pattern names directly.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Fold to standard pattern names.
* config/aarch64/aarch64-simd-builtins.def (frintn): New.
(frintz): Rename to...
(btrunc): ...this.
(frintp): Rename to...
(ceil): ...this.
(frintm): Rename to...
(floor): ...this.
(frinti): Rename to...
(nearbyint): ...this.
(frintx): Rename to...
(rint): ...this.
(frinta): Rename to...
(round): ...this.
* config/aarch64/aarch64-simd.md
(aarch64_frint<frint_suffix><mode>): Delete.
(<frint_pattern><mode>2): Convert to insn.
* config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
* config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
(frint_pattern): Likewise.
(frint_suffix): Likewise.

From-SVN: r198394

11 years agore PR tree-optimization/57081 (Segmentation fault in simple_iv (tree-scalar-evolution...
Richard Biener [Mon, 29 Apr 2013 09:09:08 +0000 (09:09 +0000)]
re PR tree-optimization/57081 (Segmentation fault in simple_iv (tree-scalar-evolution.c:3151))

2013-04-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/57081
* loop-init.c: Include tree-flow.h.
(loop_optimizer_finalize): Free number of iteration estimates.
* Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.

* gcc.dg/torture/pr57081.c: New testcase.

From-SVN: r198392

11 years agoSimplify SYSTEM_CLOCK implementation.
Janne Blomqvist [Mon, 29 Apr 2013 08:43:18 +0000 (11:43 +0300)]
Simplify SYSTEM_CLOCK implementation.

2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/system_clock (gf_gettime_mono): Use variable
        resolution for fractional seconds argument.
        (system_clock_4): Simplify, update for gf_gettime_mono change.
        (system_clock_8): Likewise.

From-SVN: r198391

11 years agoPR 56981 Improve unbuffered performance on special files.
Janne Blomqvist [Mon, 29 Apr 2013 08:42:00 +0000 (11:42 +0300)]
PR 56981 Improve unbuffered performance on special files.

2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>

        PR fortran/56981
        * io/transfer.c (next_record_w_unf): First fix head marker, then
        write tail.
        (next_record): Call flush_if_unbuffered.
        * io/unix.c (struct unix_stream): Add field unbuffered.
        (flush_if_unbuffered): New function.
        (fd_to_stream): New argument.
        (open_external): Fix fd_to_stream call.
        (input_stream): Likewise.
        (output_stream): Likewise.
        (error_stream): Likewise.
        * io/unix.h (flush_if_unbuffered): New prototype.

From-SVN: r198390

11 years agore PR tree-optimization/57083 (Wrong constant folding)
Jakub Jelinek [Mon, 29 Apr 2013 07:55:09 +0000 (09:55 +0200)]
re PR tree-optimization/57083 (Wrong constant folding)

PR tree-optimization/57083
* tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
non-singleton shift count range, zero extend low_bound for uns case.

* gcc.dg/torture/pr57083.c: New test.

From-SVN: r198388

11 years agopredicates.md (general_vector_operand): New predicate.
Jakub Jelinek [Mon, 29 Apr 2013 07:43:20 +0000 (09:43 +0200)]
predicates.md (general_vector_operand): New predicate.

* config/i386/predicates.md (general_vector_operand): New predicate.
* config/i386/i386.c (const_vector_equal_evenodd_p): New function.
(ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
if they aren't nonimmediate operands.  If their original values
satisfy const_vector_equal_evenodd_p, don't shift them.
* config/i386/sse.md (mul<mode>3): Use general_vector_operand
predicates.  For the SSE4.1 case force operands[{1,2}] into registers
if not nonimmediate_operand.
(vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
instead of register_operand.
(vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.

From-SVN: r198387

11 years agoDaily bump.
GCC Administrator [Mon, 29 Apr 2013 00:16:40 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r198384

11 years agore PR c++/56450 (ICE with SFINAE when detecting non-static member variable)
Paolo Carlini [Sun, 28 Apr 2013 22:56:44 +0000 (22:56 +0000)]
re PR c++/56450 (ICE with SFINAE when detecting non-static member variable)

/cp
2013-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/56450
* semantics.c (finish_decltype_type): Handle COMPOUND_EXPR.

/testsuite
2013-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/56450
* g++.dg/cpp0x/decltype52.C: New.

From-SVN: r198381

11 years agoN3472 binary constants
Jakub Jelinek [Sun, 28 Apr 2013 21:36:57 +0000 (23:36 +0200)]
N3472 binary constants

N3472 binary constants
* include/cpplib.h (struct cpp_options): Fix a typo in user_literals
field comment.  Add binary_constants field.
* init.c (struct lang_flags): Add binary_constants field.
(lang_defaults): Add bin_cst column to the table.
(cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
* expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
in diagnostics.  Accept binary constants if
CPP_OPTION (pfile, binary_constants) even when pedantic.  Adjust
pedwarn message.

* g++.dg/cpp/limits.C: Adjust warning wording.
* g++.dg/system-binary-constants-1.C: Likewise.
* g++.dg/cpp1y/system-binary-constants-1.C: New test.

From-SVN: r198380

11 years agore PR fortran/57093 (Seg fault on internal output to a character scalar coarray)
Tobias Burnus [Sun, 28 Apr 2013 19:54:44 +0000 (21:54 +0200)]
re PR fortran/57093 (Seg fault on internal output to a character scalar coarray)

2013-04-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57093
        * trans-types.c (gfc_get_element_type): Fix handling
        of scalar coarrays of type character.
        * intrinsic.texi (PACK): Add missing ")".

2013-04-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57093
        * gfortran.dg/coarray_30.f90: New.

From-SVN: r198379

11 years agoFix sign error in SYSTEM_CLOCK kind=4 Windows version.
Janne Blomqvist [Sun, 28 Apr 2013 18:16:25 +0000 (21:16 +0300)]
Fix sign error in SYSTEM_CLOCK kind=4 Windows version.

2013-04-28  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsics/system_clock.c (system_clock_4): Fix sign error in
Windows version.

From-SVN: r198378

11 years agostor-layout.c (finalize_size_functions): Allocate a structure and reset cfun before...
Eric Botcazou [Sun, 28 Apr 2013 17:29:01 +0000 (17:29 +0000)]
stor-layout.c (finalize_size_functions): Allocate a structure and reset cfun before dumping the functions.

* stor-layout.c (finalize_size_functions): Allocate a structure and
reset cfun before dumping the functions.

From-SVN: r198376

11 years ago* sv.po: Update.
Joseph Myers [Sun, 28 Apr 2013 14:43:12 +0000 (15:43 +0100)]
* sv.po: Update.

From-SVN: r198371

11 years agore PR fortran/57071 (Optimize (-1)**k to 1 - 2 * mod(K, 2))
Thomas Koenig [Sun, 28 Apr 2013 13:32:59 +0000 (13:32 +0000)]
re PR fortran/57071 (Optimize  (-1)**k  to 1 - 2 * mod(K, 2))

2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/57071
* frontend-passes (optimize_power):  New function.
(optimize_op):  Use it.

2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/57071
* gfortran.dg/power_3.f90:  New test.
* gfortran.dg/power_4.f90:  New test.

From-SVN: r198369

11 years agohashtable_policy.h (_Hashtable_ebo_helper): Fix comment.
Jonathan Wakely [Sun, 28 Apr 2013 11:51:59 +0000 (11:51 +0000)]
hashtable_policy.h (_Hashtable_ebo_helper): Fix comment.

* include/bits/hashtable_policy.h (_Hashtable_ebo_helper): Fix
comment.
* include/std/mutex (__recursive_mutex_base): Likewise.

From-SVN: r198368

11 years agore PR libstdc++/51365 (cannot use final empty class in std::tuple)
Jonathan Wakely [Sun, 28 Apr 2013 11:38:21 +0000 (11:38 +0000)]
re PR libstdc++/51365 (cannot use final empty class in std::tuple)

PR libstdc++/51365
* include/bits/shared_ptr_base (_Sp_ebo_helper): Helper class to
implement EBO safely.
(_Sp_counted_base::_M_get_deleter): Add noexcept.
(_Sp_counter_ptr): Use noexcept instead of comments.
(_Sp_counted_deleter): Likewise. Use _Sp_ebo_helper.
(_Sp_counted_ptr_inplace): Likewise.
* testsuite/20_util/shared_ptr/cons/51365.cc: New.
* testsuite/20_util/shared_ptr/cons/52924.cc: Add rebind member to
custom allocator and test construction with custom allocator.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
line number.

From-SVN: r198367

11 years agoDaily bump.
GCC Administrator [Sun, 28 Apr 2013 00:16:43 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r198365

11 years ago* config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
Jakub Jelinek [Sat, 27 Apr 2013 12:29:42 +0000 (14:29 +0200)]
* config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.

From-SVN: r198358

11 years agore PR target/56866 (with '-O3 -march=bdver2' misscompiles glibc-2.17/crypt/sha512.c)
Jakub Jelinek [Sat, 27 Apr 2013 12:26:05 +0000 (14:26 +0200)]
re PR target/56866 (with '-O3 -march=bdver2' misscompiles glibc-2.17/crypt/sha512.c)

PR target/56866
* config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
use xop_pmacsdqh if uns_p.
* config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
the immediate rotate count.

* gcc.c-torture/execute/pr56866.c: New test.
* gcc.target/i386/pr56866.c: New test.

From-SVN: r198355

11 years agoDaily bump.
GCC Administrator [Sat, 27 Apr 2013 00:16:38 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r198353

11 years agomove_range.cc: Adjust dialect to -std=gnu++11.
Paolo Carlini [Fri, 26 Apr 2013 21:20:00 +0000 (21:20 +0000)]
move_range.cc: Adjust dialect to -std=gnu++11.

2013-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/23_containers/unordered_set/insert/move_range.cc: Adjust
dialect to -std=gnu++11.

From-SVN: r198347

11 years ago2013-04-26 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Fri, 26 Apr 2013 20:13:41 +0000 (20:13 +0000)]
2013-04-26  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/hashtable_policy.h
(_Insert_base<>::insert<_It>(_It, _It)): Enable move semantics.
* testsuite/23_containers/unordered_set/insert/move_range.cc: New.

From-SVN: r198346

11 years agortl.h (struct rtx_def): Add comment for field jump.
Vladimir Makarov [Fri, 26 Apr 2013 18:11:35 +0000 (18:11 +0000)]
rtl.h (struct rtx_def): Add comment for field jump.

2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>

* rtl.h (struct rtx_def): Add comment for field jump.
(LRA_SUBREG_P): New macro.
* recog.c (register_operand): Check LRA_SUBREG_P.
* lra.c (lra): Add note at the end of RTL code. Align non-empty
stack frame.
* lra-spills.c (lra_spill): Align stack after spilling pseudos.
(lra_final_code_change): Skip subreg change for operators.
* lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
if there are no operand changes.
* lra-constraints.c (curr_insn_set): New.
(match_reload): Set LRA_SUBREG_P.
(emit_spill_move): Ditto.
(check_and_process_move): Use curr_insn_set. Process only single
set insns.  Don't initialize sec_mem_p and change_p.
(simplify_operand_subreg): Use LRA_SUBREG_P.
(reg_in_class_p): New function.
(process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
of #ifdef.  Add code to remove cycling.
(process_address): Check EXTRA_CONSTRAINT_STR. Process even if
non-null disp.  Reload inner instead of disp when base and index
are null.  Try to put lo_sum into register.
(EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
(check_and_process_move): Move code for move cost check to
simple_move_p.  Remove equiv_substitution.
(simple_move_p): New function.
(curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
curr_insn_set.  Call check_and_process_move only for single set
insns.  Use the new function.  Move call of check_and_process_move
after operand equiv substitution and address process.

From-SVN: r198344

11 years agore PR go/57045 (Build failure in libgo/runtime/proc.c: error: ‘({anonymous})’ may...
Jakub Jelinek [Fri, 26 Apr 2013 13:14:55 +0000 (15:14 +0200)]
re PR go/57045 (Build failure in libgo/runtime/proc.c: error: ‘({anonymous})’ may be used uninitialized in this function)

PR go/57045
* tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
with nonlocal goto receivers or returns twice calls, ignore
unininitialized values from abnormal edges to nl goto receiver
or returns twice call.

* gcc.dg/setjmp-5.c: New test.

From-SVN: r198340

11 years agore PR tree-optimization/57051 (Optimization regression in 4.8.0 from 4.7.2)
Jakub Jelinek [Fri, 26 Apr 2013 13:13:36 +0000 (15:13 +0200)]
re PR tree-optimization/57051 (Optimization regression in 4.8.0 from 4.7.2)

PR tree-optimization/57051
* fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
and VEC_RSHIFT_EXPR if shift count is a multiple of element
bitsize.

From-SVN: r198339

11 years agoomp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
Richard Biener [Fri, 26 Apr 2013 12:56:36 +0000 (12:56 +0000)]
omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.

2013-04-26  Richard Biener  <rguenther@suse.de>

* omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
(expand_omp_taskreg): Likewise.  Mark loops for fixup.
* tree-cfg.c (move_block_to_fn): Remap loop fathers.
(fixup_loop_arrays_after_move): New function.
(move_sese_region_to_fn): Properly outline the loop tree parts
of the SESE region.

From-SVN: r198338

11 years agore PR c++/55708 (g++ crashes: constexpr function with reference parameters.)
Paolo Carlini [Fri, 26 Apr 2013 12:11:14 +0000 (12:11 +0000)]
re PR c++/55708 (g++ crashes: constexpr function with reference parameters.)

2013-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

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

From-SVN: r198337

11 years agoi386.md (type, unit): Fix long lines.
Uros Bizjak [Fri, 26 Apr 2013 12:00:29 +0000 (14:00 +0200)]
i386.md (type, unit): Fix long lines.

* config/i386/i386.md (type, unit): Fix long lines.

From-SVN: r198336

11 years agocstdio (gets): Provide only in C++98 and C++11.
Paolo Carlini [Fri, 26 Apr 2013 11:32:49 +0000 (11:32 +0000)]
cstdio (gets): Provide only in C++98 and C++11.

2013-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

* include/c_global/cstdio (gets): Provide only in C++98 and C++11.
* include/c_std/cstdio (gets): Likewise.
* testsuite/27_io/headers/cstdio/functions_std.cc: Adjust.

From-SVN: r198335

11 years agoMakefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
Richard Biener [Fri, 26 Apr 2013 11:13:14 +0000 (11:13 +0000)]
Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.

2013-04-26  Richard Biener  <rguenther@suse.de>

* Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
(lto-streamer-out.o): Likewise.
* cfgloop.c (init_loops_structure): Export, add struct function
argument and adjust.
(flow_loops_find): Adjust.
* cfgloop.h (enum loop_estimation): Add EST_LAST.
(init_loops_structure): Declare.
* lto-streamer-in.c: Include cfgloop.h.
(input_cfg): Input the loop tree.
* lto-streamer-out.c: Include cfgloop.h.
(output_cfg): Output the loop tree.
(output_struct_function_base): Do not drop PROP_loops.

From-SVN: r198334

11 years agotree-cfg.c (execute_build_cfg): Build the loop tree.
Richard Biener [Fri, 26 Apr 2013 08:01:19 +0000 (08:01 +0000)]
tree-cfg.c (execute_build_cfg): Build the loop tree.

2013-03-26  Richard Biener  <rguenther@suse.de>

* tree-cfg.c (execute_build_cfg): Build the loop tree.
(pass_build_cfg): Provide PROP_loops.
(move_sese_region_to_fn): Remove loops that are outlined into fn
for now.
* tree-inline.c: Include cfgloop.h.
(initialize_cfun): Do not drop PROP_loops.
(copy_loops): New function.
(copy_cfg_body): Copy loop structure.
(tree_function_versioning): Initialize destination loop tree.
* tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
(pass_parallelize_loops): Do IL verification.
* loop-init.c (loop_optimizer_init): Fixup loops if required.
* tree-optimize.c (execute_fixup_cfg): If we need to cleanup
the CFG make sure we fixup loops as well.
* tree-ssa-tail-merge.c: Include cfgloop.h.
(replace_block_by): When merging loop latches mark loops for fixup.
* lto-streamer-out.c (output_struct_function_base): Drop
PROP_loops for now.
* tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
(tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
* ipa-split.c: Include cfgloop.h.
(split_function): Add the new return block to the loop tree root.
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
whether we have removed the forwarder block.
(merge_phi_nodes): If we removed a forwarder mark loops for fixup.
* cfgloop.h (place_new_loop): Declare.
* cfgloopmanip.c (place_new_loop): Export.
* Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
(tree-switch-conversion.o): Likewise.
(tree-complex.o): Likewise.
(tree-inline.o): Likewise.
(tree-ssa-tailmerge.o): Likewise.
(ipa-split.o): Likewise.
(tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
(tree-ssa-copy.o): Likewise.
* tree-switch-conversion.c: Include cfgloop.h
(process_switch): If we emit a bit-test cascade, schedule loops
for fixup.
* tree-complex.c: Include cfgloop.h.
(expand_complex_div_wide): Properly add new basic-blocks to loops.
* asan.c: Include cfgloop.h.
(create_cond_insert_point): Properly add new basic-blocks to
loops, schedule loop fixup.
* cfgloop.c (verify_loop_structure): Check that looks are not
marked for fixup.
* omp-low.c (expand_parallel_call): Properly add new basic-blocks
to loops.
(expand_omp_for_generic): Likewise.
(expand_omp_sections): Likewise.
(expand_omp_atomic_pipeline): Schedule loops for fixup.
* tree-ssa-copy.c: Include tree-scalar-evolution.h.
(fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
is initialized, not when loops are present.
* tree-parloops.c (parallelize_loops): Remove checking here.
* passes.c (init_optimization_passes): Schedule a copy-propagation
pass before complete unrolling of inner loops.

* gcc.dg/tree-prof/update-loopch.c: Revert last change.
* gcc.dg/graphite/pr33766.c: Fix undefined behavior.
* gcc.dg/pr53265.c: Remove XFAILs.
* gcc.dg/tree-ssa/loop-38.c: Remove unreliable dump scanning.
* gcc.dg/tree-ssa/pr21559.c: Change back to two expected jump threads.

From-SVN: r198333

11 years agoMakefile.in (toplev.o): Depend on diagnostic-color.h.
Jakub Jelinek [Fri, 26 Apr 2013 06:55:56 +0000 (08:55 +0200)]
Makefile.in (toplev.o): Depend on diagnostic-color.h.

* Makefile.in (toplev.o): Depend on diagnostic-color.h.
* diagnostic-color.c (should_colorize): Remove _WIN32 version.
(colorize_init): Add argument to _WIN32 version.
* toplev.c: Include diagnostic-color.h.
(process_options): Default to -fdiagnostics-color=auto if
GCC_COLORS env var is in the environment.
* common.opt (fdiagnostics-color=): Add Var and Init.
* doc/invoke.texi (-fdiagnostics-color=): Document that if
GCC_COLORS env var is in the environment, the default is auto
rather than never.

* lib/prune.exp: Add -fdiagnostics-color=never to TEST_ALWAYS_FLAGS.
* lib/c-compat.exp (compat-use-alt-compiler, compat_setup_dfp): Handle
-fdiagnostics-color=never option similarly to
-fno-diagnostics-show-caret option.

From-SVN: r198332

11 years agodiagnostic.h (file_name_as_prefix): Add context argument.
Jakub Jelinek [Fri, 26 Apr 2013 06:54:54 +0000 (08:54 +0200)]
diagnostic.h (file_name_as_prefix): Add context argument.

* diagnostic.h (file_name_as_prefix): Add context argument.
* diagnostic.c (file_name_as_prefix): Likewise.  Colorize
the string as locus.
* langhooks.c (lhd_print_error_function): Adjust caller.
cp/
* error.c (cp_print_error_function): Adjust file_name_as_prefix
caller.

From-SVN: r198331

11 years agoThis patch is part of a consolodation of the hash_table patches to the...
Lawrence Crowl [Fri, 26 Apr 2013 00:30:32 +0000 (00:30 +0000)]
This patch is part of a consolodation of the hash_table patches to the...

This patch is part of a consolodation of the hash_table patches to
the cxx-conversion branch for files not under gcc/config.

Update various hash tables from htab_t to hash_table.
Modify types and calls to match.

* var-tracking.c'emit_note_data_def.vars
* var-tracking.c'shared_hash_def.htab
* var-tracking.c'changed_variables

Fold variable_htab_hash, variable_htab_eq, variable_htab_free
  into new struct variable_hasher.
Add typedef variable_table_type.
Add typedef variable_iterator_type.

Tested on x86_64.

Index: gcc/ChangeLog

* var-tracking.c (shared_hash_def::htab):
Change type to hash_table.  Update dependent calls and types.

2013-04-25  Lawrence Crowl  <crowl@google.com>

From-SVN: r198330

11 years agoThis patch is the main part of a consolodation of the hash_table patches to the...
Lawrence Crowl [Fri, 26 Apr 2013 00:28:35 +0000 (00:28 +0000)]
This patch is the main part of a consolodation of the hash_table patches to the...

This patch is the main part of a consolodation of the hash_table
patches to the cxx-conversion branch for files not under gcc/config.

Update various hash tables from htab_t to hash_table.
Modify types and calls to match.

* tree-parloops.c'reduction
* tree-parloops.c'name_to_copy

Fold reduction_info_hash and reduction_info_eq into new struct
reduction_hasher.  Fold name_to_copy_elt_eq and name_to_copy_elt_hash
into new struct name_to_copy_hasher.

* trans-mem.c'tm_log

Fold tm_log_hash, tm_log_eq, tm_log_free into new struct log_entry_hasher.

* trans-mem.c'tm_memopt_value_numbers

Fold tm_memop_hash, tm_memop_eq into new struct tm_memop_hasher.

* tree-ssa-strlen.c'decl_to_stridxlist_htab

Fold decl_to_stridxlist_hash into new struct stridxlist_hasher.

* tree-ssa-loop-ivopts.c'ivopts_data::inv_expr_tab

Fold htab_inv_expr_hash and htab_inv_expr_eq into new struct
iv_inv_expr_hasher.

* tree-ssa-uncprop.c'equiv

Equiv renamed to val_ssa_equiv because of name ambiguity with local variables.

Fold equiv_hash, equiv_eq and equiv_free into new struct val_ssa_equiv_hasher.

Renamed variables equiv_hash_elt to an_equiv_elt because of name ambiguity
with struct type.  Changed equiv_hash_elt_p to an_equiv_elt_p to match.

* tree-ssa-phiopt.c'seen_ssa_names

Fold name_to_bb_hash and name_to_bb_eq into new struct ssa_names_hasher.

* tree-ssa-structalias.c'pointer_equiv_class_table
* tree-ssa-structalias.c'location_equiv_class_table

Fold equiv_class_label_hash and equiv_class_label_eq into new
struct equiv_class_hasher.

* tree-ssa-structalias.c'shared_bitmap_table

Fold shared_bitmap_hash and shared_bitmap_eq into new struct
shared_bitmap_hasher.

* tree-ssa-live.c'var_map_base_init::tree_to_index

New struct tree_int_map_hasher.

* tree-sra.c'candidates

Fold uid_decl_map_hash and uid_decl_map_eq into new struct
uid_decl_hasher.  This change moves the definitions from tree-ssa.c
into tree-sra.c and removes the declarations from tree-flow.h

tree-browser.c

Remove stale declaration of removed TB_parent_eq.
Fix template parameter for base class to match value_type.

gimple.h

Use gimplify_hasher::hash rather than gimple_tree_hash in the
  assertion check.
Change return values to match return type. (I.e. no conversions.)

* graphite-clast-to-gimple.c'ivs_params::newivs_index
* graphite-clast-to-gimple.c'ivs_params::params_index
* graphite-clast-to-gimple.c'print_generated_program::params_index
* graphite-clast-to-gimple.c'gloog::newivs_index
* graphite-clast-to-gimple.c'gloog::params_index
* graphite.c graphite_transform_loops::bb_pbb_mapping
* sese.c copy_bb_and_scalar_dependences::rename_map

Move hash table declarations to a new graphite-htab.h, because they
are used in few places.

Remove unused:

htab_t scop::original_pddrs
SCOP_ORIGINAL_PDDRS

Remove unused:

insert_loop_close_phis
insert_guard_phis
debug_ivtype_map
ivtype_map_elt_info
new_ivtype_map_elt

* gimplify.c'gimplify_ctx::temp_htab

Move struct gimple_temp_hash_elt and struct gimplify_ctx to a new
gimplify-ctx.h, because they are used few places.

* cselib.c'cselib_hash_table
* gcse.c'pre_ldst_table
* gimple-ssa-strength-reduction.c'base_cand_map
* haifa-sched.c'delay_htab
* haifa-sched.c'delay_htab_i2
* ira-color.c'allocno_hard_regs_htab
* ira-costs.c'cost_classes_htab
* loop-invariant.c'merge_identical_invariants::eq
* loop-iv.c'bivs
* loop-unroll.c'opt_info::insns_to_split
* loop-unroll.c'opt_info::insns_with_var_to_expand
* passes.c'name_to_pass_map
* plugin.c'event_tab
* postreload-gcse.c'expr_table
* store-motion.c'store_motion_mems_table
* tree-cfg.c'discriminator_per_locus
* tree-scalar-evolution.c'resolve_mixers::cache
* tree-ssa-dom.c'avail_exprs

Remove unused:
dse.c bitmap clear_alias_sets
dse.c bitmap disqualified_clear_alias_sets
dse.c alloc_pool clear_alias_mode_pool
dse.c dse_step2_spill
dse.c dse_step5_spill
graphds.h htab_t graph::indices

* attribs.c'scoped_attributes::attribute_hash
* bitmap.c'bitmap_desc_hash
* dwarf2cfi.c'trace_index
* dwarf2out.c'break_out_includes::cu_hash_table
* dwarf2out.c'copy_decls_for_unworthy_types::decl_table
* dwarf2out.c'optimize_external_refs::map
* dwarf2out.c'output_comp_unit::extern_map
* dwarf2out.c'output_comdat_type_unit::extern_map
* dwarf2out.c'output_macinfo::macinfo_htab
* dwarf2out.c'optimize_location_lists::htab
* dwarf2out.c'dwarf2out_finish::comdat_type_table
* except.c'ehspec_hash_type
* except.c'assign_filter_values::ttypes
* except.c'assign_filter_values::ehspec
* except.c'sjlj_assign_call_site_values::ar_hash
* except.c'convert_to_eh_region_ranges::ar_hash
* trans-mem.c'tm_new_mem_hash
* tree-browser.c'TB_up_ht
* tree-eh.c'finally_tree

Move the declaration of hash_table <alloc_pool_hasher> alloc_pool_hash
in alloc-pool.c to after the method definitions for its parameter
class.

* ggc-common.c'loc_hash
* ggc-common.c'ptr_hash

Add a new hash_table method elements_with_deleted to meet the needs of
gcc-common.c.

Correct many methods with parameter types compare_type to the correct
value_type.  (Correct code was unlikely to notice the change, but
incorrect code will.)

* tree-complex.c'complex_variable_components
* tree-parloops.c'eliminate_local_variables_stmt::decl_address
* tree-parloops.c'separate_decls_in_region::decl_copies

Move hash table declarations to a new tree-hasher.h, to resolve
compilation dependences and because they are used in few places.

* lto-streamer.h'output_block::string_hash_table
* lto-streamer-in.c'file_name_hash_table
* lto-streamer.c'tree_htab

The struct string_slot moves from data-streamer.h to lto-streamer.h to
resolve compilation dependences.

Tested on x86_64.

Index: gcc/ChangeLog

2013-04-25  Lawrence Crowl  <crowl@google.com>

* Makefile.in: Update as needed below.

* alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
Move declaration to after the type's method definitons.

* attribs.c (htab_t scoped_attributes::attribute_hash):
Change type to hash_table.  Update dependent calls and types.

* bitmap.c (htab_t bitmap_desc_hash):
Change type to hash_table.  Update dependent calls and types.

* cselib.c (htab_t cselib_hash_table):
Change type to hash_table.  Update dependent calls and types.

* data-streamer.h (struct string_slot): Move to lto-streamer.h.
(hash_string_slot_node): Move implementation into lto-streamer.h
struct string_slot_hasher.
(eq_string_slot_node): Likewise.

* data-streamer-out.c: Update output_block::string_hash_table
dependent calls and types.

* dwarf2cfi.c (htab_t trace_index):
Change type to hash_table.  Update dependent calls and types.

* dwarf2out.c (htab_t break_out_includes::cu_hash_table):
Change type to hash_table.  Update dependent calls and types.
(htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
(htab_t optimize_external_refs::map): Likewise.
(htab_t output_comp_unit::extern_map): Likewise.
(htab_t output_comdat_type_unit::extern_map): Likewise.
(htab_t output_macinfo::macinfo_htab): Likewise.
(htab_t optimize_location_lists::htab): Likewise.
(htab_t dwarf2out_finish::comdat_type_table): Likewise.

* except.c (htab_t ehspec_hash_type):
Change type to hash_table.  Update dependent calls and types.
(assign_filter_values::ttypes): Likewise.
(assign_filter_values::ehspec): Likewise.
(sjlj_assign_call_site_values::ar_hash): Likewise.
(convert_to_eh_region_ranges::ar_hash): Likewise.

* gcse.c (htab_t pre_ldst_table):
Change type to hash_table.  Update dependent calls and types.

* ggc-common.c (htab_t saving_htab):
Change type to hash_table.  Update dependent calls and types.
(htab_t loc_hash): Likewise.
(htab_t ptr_hash): Likewise.
(call_count): Rename ggc_call_count.
(call_alloc): Rename ggc_call_alloc.
(loc_descriptor): Rename make_loc_descriptor.
(add_statistics): Rename ggc_add_statistics.

* ggc-common.c (saving_htab):
Change type to hash_table.  Update dependent calls and types.

* gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
(push_gimplify_context): Likewise.
(pop_gimplify_context): Likewise.
(struct gimple_temp_hash_elt): Added.
(struct gimplify_hasher): Likewise.
(struct gimplify_ctx.temp_htab):
Change type to hash_table.  Update dependent calls and types.

* gimple-fold.c: Include gimplify-ctx.h.

* gimple-ssa-strength-reduction.c (htab_t base_cand_map):
Change type to hash_table.  Update dependent calls and types.
(base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
avoid potential global name collision.

* gimplify.c: Include gimplify-ctx.h.
(struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
(htab_t gimplify_ctx::temp_htab):
Update dependent calls and types for new type hash_table.
(gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
(gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.

* gimplify-ctx.h: New.
(struct gimple_temp_hash_elt): Move from gimplify.c.
(class gimplify_hasher): New.
(struct gimplify_ctx): Move from gimple.h.
(htab_t gimplify_ctx::temp_htab):
Change type to hash_table.  Update dependent calls and types.

* graphite-clast-to-gimple.c: Include graphite-htab.h.
(htab_t ivs_params::newivs_index):
Change type to hash_table.  Update dependent calls and types.
(htab_t ivs_params::params_index): Likewise.
(htab_t print_generated_program::params_index): Likewise.
(htab_t gloog::newivs_index): Likewise.
(htab_t gloog::params_index): Likewise.

* graphite.c: Include graphite-htab.h.
4htab_t graphite_transform_loops::bb_pbb_mapping):
Change type to hash_table.  Update dependent calls and types.

* graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
(bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
(eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.

* graphite-dependences.c: Include graphite-htab.h.
(loop_is_parallel_p): Change hash table type of parameter.

* graphite-htab.h: New.
(typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
(extern find_pbb_via_hash): Move from graphite-poly.h.
(extern loop_is_parallel_p): Move from graphite-poly.h.
(extern get_loop_body_pbbs): Move from graphite-poly.h.

* graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
(extern loop_is_parallel_p): Move to graphite-htab.h.
(extern get_loop_body_pbbs): Move to graphite-htab.h.

* haifa-sched.c (htab_t delay_htab):
Change type to hash_table.  Update dependent calls and types.
(htab_t delay_htab_i2): Likewise.

* ira-color.c (htab_t allocno_hard_regs_htab):
Change type to hash_table.  Update dependent calls and types.

* ira-costs.c (htab_t cost_classes_htab):
Change type to hash_table.  Update dependent calls and types.

* loop-invariant.c (htab_t merge_identical_invariants::eq):
Change type to hash_table.  Update dependent calls and types.

* loop-iv.c (htab_t bivs):
Change type to hash_table.  Update dependent calls and types.

* loop-unroll.c (htab_t opt_info::insns_to_split):
Change type to hash_table.  Update dependent calls and types.
(htab_t opt_info::insns_with_var_to_expand): Likewise.

* lto-streamer.h (struct string_slot): Move from data-streamer.h
(struct string_slot_hasher): New.
(htab_t output_block::string_hash_table):
Change type to hash_table.  Update dependent calls and types.

* lto-streamer-in.c (freeing_string_slot_hasher): New.
(htab_t file_name_hash_table):
Change type to hash_table.  Update dependent calls and types.

* lto-streamer-out.c: Update output_block::string_hash_table dependent
calls and types.

* lto-streamer.c (htab_t tree_htab):
Change type to hash_table.  Update dependent calls and types.

* omp-low.c: Include gimplify-ctx.h.

* passes.c (htab_t name_to_pass_map):
Change type to hash_table.  Update dependent calls and types.
(pass_traverse): Rename to passes_pass_traverse.

* plugin.c (htab_t event_tab):
Change type to hash_table.  Update dependent calls and types.

* postreload-gcse.c (htab_t expr_table):
Change type to hash_table.  Update dependent calls and types.
(dump_hash_table_entry): Rename dump_expr_hash_table_entry.

* sese.c (debug_rename_map_1): Make extern.
(htab_t copy_bb_and_scalar_dependences::rename_map):
Change type to hash_table.  Update dependent calls and types.

* sese.h (extern debug_rename_map): Move to .c file.

* store-motion.c (htab_t store_motion_mems_table):
Change type to hash_table.  Update dependent calls and types.

* trans-mem.c (htab_t tm_new_mem_hash):
Change type to hash_table.  Update dependent calls and types.

* tree-browser.c (htab_t TB_up_ht):
Change type to hash_table.  Update dependent calls and types.

* tree-cfg.c (htab_t discriminator_per_locus):
Change type to hash_table.  Update dependent calls and types.

* tree-complex.c: Include tree-hasher.h
(htab_t complex_variable_components):
Change type to hash_table.  Update dependent calls and types.

* tree-eh.c (htab_t finally_tree):
Change type to hash_table.  Update dependent calls and types.

* tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
struct int_tree_hasher.
(extern int_tree_map_eq): Likewise.
(uid_decl_map_hash): Removed.
(extern decl_tree_map_eq): Likewise.

* tree-hasher.h: New.
(struct int_tree_hasher): New.
(typedef int_tree_htab_type): New.

* tree-inline.c: Include gimplify-ctx.h.

* tree-mudflap.c: Include gimplify-ctx.h.

* tree-parloops.c: Include tree-hasher.h.
(htab_t eliminate_local_variables_stmt::decl_address):
Change type to hash_table.  Update dependent calls and types.
(htab_t separate_decls_in_region::decl_copies): Likewise.

* tree-scalar-evolution.c (htab_t resolve_mixers::cache):
Change type to hash_table.  Update dependent calls and types.

* tree-sra.c (candidates):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
in tree-flow.h.
(int_tree_map_hash): Likewise.

* tree-ssa-dom.c (htab_t avail_exprs):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-live.c (var_map_base_init::tree_to_index):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-phiopt.c (seen_ssa_names):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-strlen.c (decl_to_stridxlist_htab):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-uncprop.c (equiv):
Change type to hash_table.  Update dependent calls and types.

From-SVN: r198329

11 years agoDaily bump.
GCC Administrator [Fri, 26 Apr 2013 00:16:40 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r198328

11 years ago* de.po, sv.po, vi.po: Update.
Joseph Myers [Thu, 25 Apr 2013 23:05:08 +0000 (00:05 +0100)]
* de.po, sv.po, vi.po: Update.

From-SVN: r198323

11 years agore PR rtl-optimization/57003 (gcc breaks -O2 optimization with Wine(64) - links/info...
Jakub Jelinek [Thu, 25 Apr 2013 21:49:22 +0000 (23:49 +0200)]
re PR rtl-optimization/57003 (gcc breaks -O2 optimization with Wine(64) - links/info/bisect of commits included)

PR rtl-optimization/57003
* regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
call note_stores with kill_clobbered_value callback again after
killing regs_invalidated_by_call.

* gcc.target/i386/pr57003.c: New test.

From-SVN: r198320

11 years agoPR 57028 Bootstrap regression wrt zlib.
Janne Blomqvist [Thu, 25 Apr 2013 19:16:46 +0000 (22:16 +0300)]
PR 57028 Bootstrap regression wrt zlib.

2013-04-25  Janne Blomqvist  <jb@gcc.gnu.org>

        PR bootstrap/57028
        * Make-lang.in (f951): Link in ZLIB.
        (CFLAGS-fortran/module.o): Add zlib include directory.

From-SVN: r198318

11 years ago[AArch64] Describe the 'BSL' RTL pattern more accurately.
James Greenhalgh [Thu, 25 Apr 2013 16:54:32 +0000 (16:54 +0000)]
[AArch64] Describe the 'BSL' RTL pattern more accurately.

gcc/
* config/aarch64/aarch64-simd.md
(aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
(aarch64_simd_bsl<mode>): Likewise.
* config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.

From-SVN: r198316

11 years agore PR c++/57064 ([clarification requested] Which overload with ref-qualifier should...
Jason Merrill [Thu, 25 Apr 2013 16:24:49 +0000 (12:24 -0400)]
re PR c++/57064 ([clarification requested] Which overload with ref-qualifier should be called?)

PR c++/57064
* g++.dg/cpp0x/ref-qual9.C: New.

From-SVN: r198311

11 years agore PR c++/56859 (alignas() fails in template)
Jason Merrill [Thu, 25 Apr 2013 16:24:42 +0000 (12:24 -0400)]
re PR c++/56859 (alignas() fails in template)

PR c++/56859
* typeck.c (cxx_alignas_expr): Handle value-dependence properly.

From-SVN: r198310

11 years agore PR c++/50261 ([C++0x] ICE on brace-initialize an array member)
Jason Merrill [Thu, 25 Apr 2013 16:24:33 +0000 (12:24 -0400)]
re PR c++/50261 ([C++0x] ICE on brace-initialize an array member)

PR c++/50261
* init.c (perform_member_init): Call reshape_init.

From-SVN: r198309

11 years agore PR tree-optimization/57066 (std::logb(-inf) returns wrong value)
Marek Polacek [Thu, 25 Apr 2013 15:51:57 +0000 (15:51 +0000)]
re PR tree-optimization/57066 (std::logb(-inf) returns wrong value)

PR tree-optimization/57066
        * builtins.c (fold_builtin_logb): Return +Inf for -Inf.

        * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.

From-SVN: r198308

11 years ago[AArch64] Change iterator for neg<mode>2 from VDQM to VDQ.
James Greenhalgh [Thu, 25 Apr 2013 12:49:39 +0000 (12:49 +0000)]
[AArch64] Change iterator for neg<mode>2 from VDQM to VDQ.

gcc/
* config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.

From-SVN: r198306

11 years ago[AArch64] Make vabs<q>_f<32, 64> a tree/gimple intrinsic.
James Greenhalgh [Thu, 25 Apr 2013 12:47:18 +0000 (12:47 +0000)]
[AArch64] Make vabs<q>_f<32, 64> a tree/gimple intrinsic.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_fold_builtin): New.
* config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
* config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
* config/aarch64/aarch64-simd-builtins.def (abs): New.
* config/aarch64/arm_neon.h
(vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.

From-SVN: r198305

11 years ago[AArch64] Implement TARGET_GIMPLE_FOLD_BUILTIN for aarch64 backend.
James Greenhalgh [Thu, 25 Apr 2013 12:44:25 +0000 (12:44 +0000)]
[AArch64] Implement TARGET_GIMPLE_FOLD_BUILTIN for aarch64 backend.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_gimple_fold_builtin): New.
* config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
* config/aarch64/aarch64-simd-builtins.def (addv): New.
* config/aarch64/aarch64-simd.md (addpv4sf): New.
(addvv4sf): Update.
* config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.

gcc/testsuite/
* gcc.target/aarch64/vaddv-intrinsic.c: New.
* gcc.target/aarch64/vaddv-intrinsic-compile.c: Likewise.
* gcc.target/aarch64/vaddv-intrinsic.x: Likewise.

Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com>
From-SVN: r198304

11 years agogcc/
Naveen H.S [Thu, 25 Apr 2013 12:21:13 +0000 (12:21 +0000)]
gcc/

2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* config/aarch64/aarch64.md
(*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.

gcc/testsuite/

2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* gcc.target/aarch64/cmp.c: New.

From-SVN: r198303

11 years agoaarch64.md (*ngc<mode>): New pattern.
Naveen H.S [Thu, 25 Apr 2013 11:55:05 +0000 (11:55 +0000)]
aarch64.md (*ngc<mode>): New pattern.

gcc/

2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* config/aarch64/aarch64.md (*ngc<mode>): New pattern.
(*ngcsi_uxtw): New pattern.

gcc/testsuite/

2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* gcc.target/aarch64/ngc.c: New.

From-SVN: r198302

11 years agoMinor reformatting.
Arnaud Charlet [Thu, 25 Apr 2013 10:58:18 +0000 (12:58 +0200)]
Minor reformatting.

From-SVN: r198301

11 years ago* gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Exclude s-init.ad{s,b}
Arnaud Charlet [Thu, 25 Apr 2013 10:57:43 +0000 (10:57 +0000)]
* gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Exclude s-init.ad{s,b}

From-SVN: r198300

11 years agoUpdate dependencies.
Arnaud Charlet [Thu, 25 Apr 2013 10:56:07 +0000 (12:56 +0200)]
Update dependencies.

From-SVN: r198299

11 years agoarm.c (neon_builtin_type_mode): Add T_V4HF.
Kyrylo Tkachov [Thu, 25 Apr 2013 10:54:39 +0000 (10:54 +0000)]
arm.c (neon_builtin_type_mode): Add T_V4HF.

2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
            Julian Brown  <julian@codesourcery.com>

* config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
(TB_DREG): Add T_V4HF.
(v4hf_UP): New macro.
(neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
(arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN,
NEON_FLOAT_NARROW.
Handle initialisation of V4HF. Adjust initialisation of reinterpret
built-ins.
(arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
NEON_FLOAT_NARROW.
(arm_vector_mode_supported_p): Handle V4HF.
(arm_mangle_map): Handle V4HFmode.
* config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
* config/arm/arm_neon_builtins.def: Add entries for
vcvtv4hfv4sf, vcvtv4sfv4hf.
* config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
(neon_vcvtv4hfv4sf): Likewise.
* config/arm/neon-gen.ml: Handle half-precision floating point
features.
* config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
* config/arm/arm_neon.h: Regenerate.
* config/arm/neon.ml (type elts): Add F16.
(type vectype): Add T_float16x4, T_floatHF.
(type vecmode): Add V4HF.
(type features): Add Requires_FP_bit feature.
(elt_width): Handle F16.
(elt_class): Likewise.
(elt_of_class_width): Likewise.
(mode_of_elt): Refactor.
(type_for_elt): Handle F16, fix error messages.
(vectype_size): Handle T_float16x4.
(vcvt_sh): New function.
(ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
(string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
(string_of_mode): Handle V4HF.
* doc/arm-neon-intrinsics.texi: Regenerate.

2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* lib/target-supports.exp
(check_effective_target_arm_neon_fp16_ok_nocache): New procedure.
(check_effective_target_arm_neon_fp16_ok): Likewise.
(add_options_for_arm_neon_fp16): Likewise.
* gcc.target/arm/neon/vcvtf16_f32.c: New test. Generated.
* gcc.target/arm/neon/vcvtf32_f16.c: Likewise.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r198298

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:54:33 +0000 (12:54 +0200)]
[multiple changes]

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Apply_Predicate_Check): Update the comment associated
with the call to Check_Expression_Against_Static_Predicate.
* sem_ch3.adb (Analyze_Object_Declaration): Update the comment
associated with the call to Check_Expression_Against_Static_Predicate.
* sem_util.adb (Check_Expression_Against_Static_Predicate):
Broaden the check from a static expression to an expression with
a known value at compile time.
* sem_util.ads (Check_Expression_Against_Static_Predicate): Update
comment on usage.

2013-04-25  Thomas Quinot  <quinot@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference, cases Position,
First_Bit, and Last_Bit): Fix incorrect test in implementation of
RM 2005 13.5.2(3/2).

2013-04-25  Claire Dross  <dross@adacore.com>

* a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, a-cfhama.adb,
a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads
(Query_Element): Removed.
(Update_Element): Removed.
(Insert): The version with no New_Item specified is removed.
(Iterate): Removed.
(Write): Removed.
(Read): Removed.
Every check of fields Busy and Lock has been removed.

2013-04-25  Robert Dewar  <dewar@adacore.com>

* sem_prag.adb (Analyze_Pragma, case Contract_Cases): Remove
call to S14_Pragma (Find_Related_Subprogram): Require proper
placement in subprogram body (Find_Related_Subprogram): Detect
duplicates for all cases (Find_Related_Subprogram): Handle case
of spec nested inside body.

From-SVN: r198297

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:51:19 +0000 (12:51 +0200)]
[multiple changes]

2013-04-25  Arnaud Charlet  <charlet@adacore.com>

* par-prag.adb: Fix typo.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Apply_Predicate_Check): If the type has a static
predicate and the expression is also static, check whether the
expression satisfies the predicate.
* sem_ch3.adb (Analyze_Object_Declaration): If the type has a
static predicate and the expression is also static, see if the
expression satisfies the predicate.
* sem_util.adb: Alphabetize several routines.
(Check_Expression_Against_Static_Predicate): New routine.
* sem_util.ads (Check_Expression_Against_Static_Predicate): New routine.

From-SVN: r198296

11 years agognat_rm.texi: Document Reason argument for pragma Warnings.
Robert Dewar [Thu, 25 Apr 2013 10:49:26 +0000 (10:49 +0000)]
gnat_rm.texi: Document Reason argument for pragma Warnings.

2013-04-25  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi: Document Reason argument for pragma Warnings.
* par-prag.adb: Handle Reason parameter for pragma Warnings.
* sem_prag.adb (Analyze_Pragma, case Warnings): Allow Reason argument.
* snames.ads-tmpl (Name_Reason): New name entry.

From-SVN: r198295

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:48:04 +0000 (12:48 +0200)]
[multiple changes]

2013-04-25  Yannick Moy  <moy@adacore.com>

* exp_spark.adb (Expand_SPARK_N_In): Remove procedure.
(Expand_SPARK): Remove special expansion for membership tests.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch3.adb (Expand_N_Object_Declaration): Update all places
that should use constant Base_Typ. When building an invariant
check, account for invariants coming from the base type. Prevent
the creation of a junk invariant check when the related object
is of an array type and it is initialized with an aggregate.
* exp_util.adb (Make_Invariant_Call): Typ is now a variable. Use
the base type to create an invariant call when the type of the
expression is a composite subtype.

2013-04-25  Vasiliy Fofanov  <fofanov@adacore.com>

* a-cborse.adb: Fix minor typo.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Different_Generic_Profile): A spec and body
match in an instance if a subtype declaration that renames a
generic actual with the same name appears between spec and body.

From-SVN: r198294

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:46:18 +0000 (12:46 +0200)]
[multiple changes]

2013-04-25  Robert Dewar  <dewar@adacore.com>

* sem_util.adb: Minor reformatting.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Expand_N_Aggregate): Use special circuitry to
fold strings with a single others choice only if there are no
expressions in the aggregate.

2013-04-25  Arnaud Charlet  <charlet@adacore.com>

* gnat_ugn.texi: Update doc on Ada 2012 default mode.

From-SVN: r198293

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:42:01 +0000 (12:42 +0200)]
[multiple changes]

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb: Add with and use clause for Stringt.
(Expand_Contract_Cases): Moved from sem_ch6. Add formal parameters
Decls and Stmts along with comments on their usage.
* exp_ch6.ads (Expand_Contract_Cases): Moved from sem_ch6.
* sem_ch6.adb (Expand_Contract_Cases): Moved to exp_ch6.
(Process_Contract_Cases): Update the call to Expand_Contract_Cases.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* gnat_rm.texi: Minor editing, to clarify use of dimension aspects.
* sem_util.adb (Is_OK_Variable_For_Out_Formal): Reject an
aggregate for a packed type, which may be converted into an
unchecked conversion of an object.

From-SVN: r198292

11 years agosem_prag.adb: Minor code reorganization (correct misspelling Restiction).
Robert Dewar [Thu, 25 Apr 2013 10:39:36 +0000 (10:39 +0000)]
sem_prag.adb: Minor code reorganization (correct misspelling Restiction).

2013-04-25  Robert Dewar  <dewar@adacore.com>

* sem_prag.adb: Minor code reorganization (correct misspelling
Restiction).
* sem_util.adb, aspects.ads, sem_ch6.adb: Minor reformatting.
* gnat_rm.texi: Document impl-defined aspects.
* sem_dim.adb, sem_dim.ads, gnat_ugn.texi, s-dimmks.ads: Minor
reformatting.

From-SVN: r198291

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:35:29 +0000 (12:35 +0200)]
[multiple changes]

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Set_Abstract_States): The attribute now applies
to generic packages.
* sem_ch4.adb (Referenced): Moved to sem_util.
* sem_ch7.adb (Unit_Requires_Body): A [generic] package with
a non-null abstract state needs a body.
* sem_prag.adb (Analyze_Depends_In_Decl_Part): Update the calls
to Collect_Subprogram_Inputs_Outputs.
(Analyze_Global_Item): Verify the proper usage of an item with mode
In_Out or Output relative to the enclosing context.
(Analyze_Pragma): Abstract_State can now be applied to a generic
package. Do not reset the Analyzed flag for pragmas Depends and Global
as this is not needed.
(Appears_In): Moved to library level.
(Check_Mode_Restiction_In_Enclosing_Context): New routine.
(Collect_Subprogram_Inputs_Outputs): Moved to library level. Add
formal parameters Subp_Id, Subp_Inputs, Subp_Outputs and Global
seen along with comments on usage.
* sem_util.ads, sem_util.adb (Referenced): New routine.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch6.adb (Expand_Contract_Cases): Generate
detailed error messages only when switch -gnateE is in effect.

2013-04-25  Yannick Moy  <moy@adacore.com>

* sem_attr.adb (Analyze_Attribute): Do not issue
an error for a possibly misplaced 'Result or 'Old attribute when
analyzing the aspect.

From-SVN: r198290

11 years agosem_ch12.adb, [...]: Minor reformatting.
Robert Dewar [Thu, 25 Apr 2013 10:33:23 +0000 (10:33 +0000)]
sem_ch12.adb, [...]: Minor reformatting.

2013-04-25  Robert Dewar  <dewar@adacore.com>

* sem_ch12.adb, sem_util.adb, sem_ch4.adb: Minor reformatting.

From-SVN: r198289

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:31:36 +0000 (12:31 +0200)]
[multiple changes]

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch4.adb (Analyze_Quantified_Expression):
Add local variable Loop_Id. Verify that the loop variable
is used within the condition of the quantified expression.
(Referenced): New routine.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_case.adb (Analyze_Choices): Enhance the error message
given on a bad use of subtype predicate.
* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Enhance
the error message given on a bad use of subtype predicate.
* sem_util.adb (Bad_Predicated_Subtype_Use): Add formal parameter
Suggest_Static. Emit an extra error message advising how to
remedy the bad use of the predicate if the context warrants it.
* sem_util.ads (Bad_Predicated_Subtype_Use): Add formal parameter
Suggest_Static along with a comment explaining its usage.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_disp.adb (Check_Dispatching_Operation): Further refinement
to checks for AI05-0125: the check for a hidden primitive that
may be overridden by the new declaration only applies if the
hidden operation is never declared. This is not the case if the
operation is declared in a parent unit.

From-SVN: r198288

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:28:45 +0000 (12:28 +0200)]
[multiple changes]

2013-04-25  Robert Dewar  <dewar@adacore.com>

* debug.adb: Remove d.X and d.Y entries and documentation.
* exp_ch4.adb (Expand_N_If_Expression): Remove special code used
if expression with actions not available (now always available).
(Expand_Short_Circuit_Operator): Same change.
* gnat1drv.adb (Adjust_Global_Switches) Remove setting
Use_Expression_With_Actions flag, since this is now obsolete.
* opt.ads (Use_Expression_Actions): Removed (always True now).
* sinfo.ads: Minor comment updates.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Check_Generic_Actuals): If an actual is an array
subtype whose base type is currently private, install full view
when compiling instance body.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_disp.adb (Check_Dispatching_Operation): Refine checks for
AI05-0125: the check for a hidden primitive that may be overridden
by the new declaration is only performed if the declaration comes
from source, and it must carry an explicit overriding indicator.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Abstract_States): The attribute now applies to
generic packages.
* sem_ch3.adb (Analyze_Object_Declaration): Check whether an
object declaration introduces an illegal hidden state.
* sem_prag.adb (Analyze_Abstract_State): Check whether a state
declaration introduces an illegal hidden state.
* sem_util.ads, sem_util.adb (Check_No_Hidden_State): New routine.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Is_Build_In_Place_Function_Call): The call may
be to a protected function, in which case the name in the call
is a selected component.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch4.adb (Analyze_Quantified_Expression):
Warn on a suspicious use of quantifier "some" when "all" was meant.
(No_Else_Or_Trivial_True): New routine.

From-SVN: r198287

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:25:54 +0000 (12:25 +0200)]
[multiple changes]

2013-04-25  Robert Dewar  <dewar@adacore.com>

* einfo.ads, einfo.adb: Put back with/use for Namet.
(Get_Pragma): New name (wi new spec) for Find_Pragma.
* sem_ch6.adb: Change name Find_Pragma to Get_Pragma with
different interface.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Is_Visible_Component): In an instance all
components are visible.

From-SVN: r198286

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:24:16 +0000 (12:24 +0200)]
[multiple changes]

2013-04-25  Matthew Heaney  <heaney@adacore.com>

* a-rbtgbo.adb, a-crbtgo.adb (Generic_Equal): do not test for
tampering when container empty.
* a-crbtgk.adb (Ceiling, Find, Floor): ditto.
(Generic_Conditional_Insert, Generic_Conditional_Insert_With_Hint):
ditto.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* par-ch12.adb: Move aspects from package specification to
generic package declaration.
* sem_ch12.adb: Analyze aspect specifications before building
and analyzing the generic copy, so that the generated pragmas
are properly taken into account.
* sem_ch13.adb: For compilation unit aspects that apply to a
generic package declaration, insert corresponding pragmas ahead
of visible declarations.
* sprint.adb: Display properly the aspects of a generic type
declaration.

2013-04-25  Robert Dewar  <dewar@adacore.com>

* frontend.adb: Minor reformatting.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* einfo.ads: Extend documentation on use of Is_Private_Ancestor
for untagged types.
* sem_ch3.adb (Is_Visible_Component): Refine predicate for the
case of untagged types derived from private types, to reject
illegal selected components.

From-SVN: r198285

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:19:59 +0000 (12:19 +0200)]
[multiple changes]

2013-04-25  Gary Dismukes  <dismukes@adacore.com>

* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
for case of selecting from an unexpanded implicit dereference
and do not make a recursive call on such a prefix.

2013-04-25  Doug Rupp  <rupp@adacore.com>

* targparm.adb (VXF{_Str}): New tag for vaxfloat.
(Get_Target_Parameters): Handle VXF tag.
* targparm.ads (VAX_Float_On_Target): New boolean.
* system-vms-ia64.ads (VAX_Float): New boolean.
* frontend.adb (Frontend): Handle VAX float boolean.

From-SVN: r198284

11 years agoeinfo.ads, einfo.adb: Remove with and use clauses for Namet.
Hristian Kirtchev [Thu, 25 Apr 2013 10:13:14 +0000 (10:13 +0000)]
einfo.ads, einfo.adb: Remove with and use clauses for Namet.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.ads, einfo.adb: Remove with and use clauses for Namet.
(Find_Pragma): New routine.
* sem_util.ads, sem_util.adb (Find_Pragma): Moved to einfo.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Add_Call): Do not capture the nature of the inherited
predicate.
(Add_Predicates): Save the static predicate for diagnostics and error
reporting purposes.
(Process_PPCs): Remove local variables Dynamic_Predicate_Present and
Static_Predicate_Present. Add local variable Static_Pred. Ensure that
the expression of a static predicate is static.

From-SVN: r198283

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 10:10:58 +0000 (12:10 +0200)]
[multiple changes]

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Is_Ghost_Subprogram): Remove useless code.

2013-04-25  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi: Minor addition of index entry.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch6.adb (Check_Access_Invariants): Test whether an
invariant procedure is empty before generating a call to it.
(Has_Enabled_Predicate): New routine.
(Has_Null_Body): New routine.
(Process_PPCs): Test whether an invariant procedure is
empty before generating a call to it. Test whether predicates are
enabled for a particular type before generating a predicate call.
* sem_util.ads, sem_util.adb (Find_Pragma): New routine.

From-SVN: r198282

11 years agosem_ch7.adb, [...]: Minor reformatting.
Robert Dewar [Thu, 25 Apr 2013 10:09:35 +0000 (10:09 +0000)]
sem_ch7.adb, [...]: Minor reformatting.

2013-04-25  Robert Dewar  <dewar@adacore.com>

* sem_ch7.adb, einfo.adb, repinfo.adb, snames.adb-tmpl,
snames.ads-tmpl: Minor reformatting.

From-SVN: r198281

11 years agosem_ch7.adb: Minor reformatting.
Thomas Quinot [Thu, 25 Apr 2013 10:08:30 +0000 (10:08 +0000)]
sem_ch7.adb: Minor reformatting.

2013-04-25  Thomas Quinot  <quinot@adacore.com>

* sem_ch7.adb: Minor reformatting.

From-SVN: r198280

11 years agore PR libstdc++/57065 (incorrect default allocator template for debug and profile...
Paolo Carlini [Thu, 25 Apr 2013 09:42:46 +0000 (09:42 +0000)]
re PR libstdc++/57065 (incorrect default allocator template for debug and profile unordered_map)

2013-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/57065
* include/debug/unordered_map (unordered_map, unordered_multimap):
Fix default allocator type.
* include/profile/unordered_map (unordered_map, unordered_multimap):
Likewise.
* include/bits/unordered_map.h: Fix comments.

From-SVN: r198279

11 years ago[AArch64] Fix printf format warning in aarch64_print_operand
James Greenhalgh [Thu, 25 Apr 2013 09:14:27 +0000 (09:14 +0000)]
[AArch64] Fix printf format warning in aarch64_print_operand

gcc/
* config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
format specifier in 'X' case.

From-SVN: r198278

11 years ago[multiple changes]
Arnaud Charlet [Thu, 25 Apr 2013 08:35:16 +0000 (10:35 +0200)]
[multiple changes]

2013-04-25  Robert Dewar  <dewar@adacore.com>

* gnat_rm.texi: Minor fix to Loop_Variant doc (Loop_Entry allowed).
* s-tarest.adb: Minor reformatting.

2013-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* aspects.ads, aspects.adb: Remove aspect Ghost from all relevant
tables.
* einfo.adb: Remove with and use clause for Aspects.
(Is_Ghost_Function): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Subprogram): New routine.
* einfo.ads: Remove synthesized attribute Is_Ghost_Function
along with its uses in entities.  Add synthesized attributes
Is_Ghost_Entity and Is_Ghost_Subprogram along with uses in related
entities.
(Is_Ghost_Function): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Subprogram): New routine.
* par-prag.adb: Remove pragma Ghost from the processing machinery.
* repinfo.adb (List_Mechanisms): Add a value for convention Ghost.
* sem_attr.adb (Analyze_Access_Attribute): Update the check
for ghost subprograms.
* sem_ch4.adb (Analyze_Call): Update the check for calls
to ghost subprograms.
(Check_Ghost_Function_Call): Removed.
(Check_Ghost_Subprogram_Call): New routine.
* sem_ch6.adb (Check_Convention): Rewritten.
(Check_Overriding_Indicator): Remove the check for overriding
ghost functions.
(Convention_Of): New routine.
* sem_ch12.adb (Preanalyze_Actuals): Update the check for ghost
generic actual subprograms.
* sem_mech.adb (Set_Mechanisms): Add an entry for convention Ghost.
* sem_prag.adb: Remove the value for pragma Ghost from
table Sig_Flags.
(Analyze_Pragma): Remove the processing for pragma Ghost.
(Process_Convention): Emit an error when a ghost
subprogram attempts to override.
(Set_Convention_From_Pragma): Emit an error when a ghost subprogram
attempts to override.
* sinfo.ads: Clarify the usage of field Label_Construct.
* snames.adb-tmpl (Get_Convention_Id): Add an entry for
predefined name Ghost.
(Get_Convention_Name): Add an entry for convention Ghost.
* snames.ads-tmpl: Move predefined name Ghost to the sublist
denoting conventions. Add convention id Ghost. Remove pragma
id Ghost.

2013-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch7.adb (Swap_Private_Dependents): Do no recurse on child
units if within a generic hierarchy.

From-SVN: r198275

11 years agore PR target/57052 (missed optimization with rotate and mask)
Alan Modra [Thu, 25 Apr 2013 01:00:13 +0000 (10:30 +0930)]
re PR target/57052 (missed optimization with rotate and mask)

PR target/57052
* config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
(rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
Repeat for many other rotate/shift and mask patterns using subregs.
Name lshiftrt insns.
(ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
on WORDS_BIG_ENDIAN.

From-SVN: r198274

11 years agoconfig.host: Match little-endian powerpc-linux.
Alan Modra [Thu, 25 Apr 2013 00:57:16 +0000 (10:27 +0930)]
config.host: Match little-endian powerpc-linux.

libgcc/
* config.host: Match little-endian powerpc-linux.
gcc/
* config.gcc: Support little-endian powerpc-linux targets.
* config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
(LINK_OS_LINUX_SPEC): Define.
* config/rs6000/linuxspe.h (TARGET_DEFAULT):
Preserve MASK_LITTLE_ENDIAN.
* config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
* config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
(LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
(LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
* config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
Correct fp word order for little-endian.  Don't shift toc entries
smaller than a word for little-endian.
* config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
(bswapdi2 splits): Correct low-part subreg for little-endian.
Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
low/high where such is correct only for be.
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
little-endian for -mcall-aixdesc.

From-SVN: r198273

11 years agors6000.c (rs6000_secondary_reload_inner): Use replace_equiv_address_nv.
Alan Modra [Thu, 25 Apr 2013 00:50:57 +0000 (10:20 +0930)]
rs6000.c (rs6000_secondary_reload_inner): Use replace_equiv_address_nv.

* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
replace_equiv_address_nv.

From-SVN: r198272

11 years agors6000.c (rs6000_emit_set_long_const): Tidy.
Alan Modra [Thu, 25 Apr 2013 00:49:08 +0000 (10:19 +0930)]
rs6000.c (rs6000_emit_set_long_const): Tidy.

* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.

From-SVN: r198271

11 years agoDaily bump.
GCC Administrator [Thu, 25 Apr 2013 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r198270

11 years agoFix date of ChangeLog entry.
Jonathan Wakely [Wed, 24 Apr 2013 22:44:01 +0000 (23:44 +0100)]
Fix date of ChangeLog entry.

From-SVN: r198267

11 years agorevert: rtl.h (struct rtx_def): ...
Vladimir Makarov [Wed, 24 Apr 2013 22:33:06 +0000 (22:33 +0000)]
revert: rtl.h (struct rtx_def): ...

2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>

Revert:
2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
* rtl.h (struct rtx_def): ...

From-SVN: r198266

11 years agore PR libstdc++/56905 ([C++11][DR 1130] std::copy_exception should be removed or...
Jonathan Wakely [Wed, 24 Apr 2013 22:00:16 +0000 (22:00 +0000)]
re PR libstdc++/56905 ([C++11][DR 1130] std::copy_exception should be removed or no longer be used)

PR libstdc++/56905
* libsupc++/exception_ptr.h (copy_exception): Deprecate and
move implementation to make_exception_ptr.
* include/std/future (_State_base::_M_break_promise): Replace
copy_exception with make_exception_ptr.
* testsuite/18_support/exception_ptr/move.cc: Likewise.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
* testsuite/30_threads/future/members/get2.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
* testsuite/30_threads/shared_future/members/get2.cc: Likewise.

From-SVN: r198265

11 years agore PR rtl-optimization/57046 (wrong code generated by gcc 4.8.0 on i686)
Vladimir Makarov [Wed, 24 Apr 2013 20:27:33 +0000 (20:27 +0000)]
re PR rtl-optimization/57046 (wrong code generated by gcc 4.8.0 on i686)

2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimizations/57046
* lra-constraints (split_reg): Set up lra_risky_transformations_p
for multi-reg splits.

2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimizations/57046
* gcc.target/i386/pr57046.c: New test.

From-SVN: r198263

11 years agoHandle -mx32 in x86-64 ASM_SPEC
H.J. Lu [Wed, 24 Apr 2013 20:07:50 +0000 (20:07 +0000)]
Handle -mx32 in x86-64 ASM_SPEC

* config/i386/x86-64.h (ASM_SPEC): Support -mx32.

From-SVN: r198262

11 years agocpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
Paolo Carlini [Wed, 24 Apr 2013 19:33:54 +0000 (19:33 +0000)]
cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.

/libcpp
2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

* include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
* init.c (lang_defaults): Add defaults for the latter.
(cpp_init_builtins): Define __cplusplus as 201300L for the latter.
* lex.c (_cpp_lex_direct): Update.

/gcc/c-family
2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

* c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y.

/gcc/testsuite
2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp1y/cplusplus.C: New.

From-SVN: r198261

11 years ago* invoke.texi: Update expected date for C++1y.
Jason Merrill [Wed, 24 Apr 2013 18:23:51 +0000 (14:23 -0400)]
* invoke.texi: Update expected date for C++1y.

From-SVN: r198260

11 years ago2013-04-24 Sterling Augustine <saugustine@google.com>
Sterling Augustine [Wed, 24 Apr 2013 17:19:47 +0000 (17:19 +0000)]
2013-04-24  Sterling Augustine  <saugustine@google.com>

* dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
(comp_dir_string, debug_str_dwo_section): New.
(DEBUG_STR_DWO_SECTION): Rename to ...
(DEBUG_DWO_STR_SECTION): ... this.
(DEBUG_NORM_STR_SECTION): Delete.
(DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
(DEBUG_STR_DWO_SECTION_FLAGS): New.
(find_AT_string): Move most logic to ...
(find_AT_string_in_table): ... here.  New.
(add_top_level_skeleton_die_attrs): Call comp_dir_string and
add_skeleton_AT_string.  Delete logic.
(output_skeleton_debug_sections): Remove call to
add_top_level_skeleton_die_attrs.
(add_comp_dir_attribute): Move logic to comp_dir_string.
(dwarf2out_init): Initialize debug_str_dwo_section.
(output_indirect_string): Call find_string_form.
(output_indirect_strings): Rewrite.
(prune_unused_types): Empty skeleton_debug_str_hash.
Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
(dwarf2out_finish):  Call output_indirect_strings.

From-SVN: r198259

11 years agocpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
Paolo Carlini [Wed, 24 Apr 2013 17:09:22 +0000 (17:09 +0000)]
cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.

2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

* doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.

/c-family
2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

* c-cppbuiltin.c (c_cpp_builtins): Do not define
__GXX_EXPERIMENTAL_CXX1Y__.

/testsuite
2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp1y/cxx1y_macro.C: Remove.

From-SVN: r198258

11 years agore PR c++/53721 ([C++11] "this" not allowed in trailing return type)
Jason Merrill [Wed, 24 Apr 2013 16:46:53 +0000 (12:46 -0400)]
re PR c++/53721 ([C++11] "this" not allowed in trailing return type)

PR c++/53721
* parser.c (cp_parser_postfix_dot_deref_expression): Fix thinko.

From-SVN: r198257