gcc.git
11 years agore PR rtl-optimization/56957 (ICE in add_insn_after, at emit-rtl.c:3783)
Andrey Belevantsev [Tue, 30 Apr 2013 10:55:52 +0000 (14:55 +0400)]
re PR rtl-optimization/56957 (ICE in add_insn_after, at emit-rtl.c:3783)

        PR rtl-optimization/56957
        PR rtl-optimization/57105

        * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
        variable.  Use just INSN_UID for determining whether an insn
        should be only disconnected from the insn stream.
        * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.

* gcc.dg/pr57105.c: New test.

From-SVN: r198449

11 years agore PR sanitizer/57104 (ICE: in expand_expr_addr_expr_1, at expr.c:7594 with -fsanitiz...
Jakub Jelinek [Tue, 30 Apr 2013 08:52:39 +0000 (10:52 +0200)]
re PR sanitizer/57104 (ICE: in expand_expr_addr_expr_1, at expr.c:7594 with -fsanitize=thread and hardreg variable)

PR tree-optimization/57104
* tsan.c (instrument_expr): Don't instrument accesses to
DECL_HARD_REGISTER VAR_DECLs.

* gcc.dg/pr57104.c: New test.

From-SVN: r198445

11 years agoconfig-list.mk (LIST): Add aarch64-elf and aarch64-linux-gnu.
Sofiane Naci [Tue, 30 Apr 2013 08:35:17 +0000 (08:35 +0000)]
config-list.mk (LIST): Add aarch64-elf and aarch64-linux-gnu.

From-SVN: r198443

11 years agofunction.h (loops_for_fn): New inline function.
Richard Biener [Tue, 30 Apr 2013 08:14:09 +0000 (08:14 +0000)]
function.h (loops_for_fn): New inline function.

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

* function.h (loops_for_fn): New inline function.
(set_loops_for_fn): Likewise.
* cfgloop.h (place_new_loop): Add struct function parameter.
(get_loop): Likewise.
(get_loops): Likewise.
(number_of_loops): Likewise.
(fel_next): Adjust.
(fel_init): Likewise.
* cfg.c (get_loop_copy): Adjust.
* cfgloop.c (flow_loops_dump): Likewise.
(record_loop_exits): Likewise.
(verify_loop_structure): Likewise.
* cfgloopanal.c (mark_irreducible_loops): Likewise.
(estimate_reg_pressure_cost): Likewise.
(mark_loop_exit_edges): Likewise.
* cfgloopmanip.c (place_new_loop): Likewise.
(add_loop): Likewise.
(duplicate_loop): Likewise.
* graph.c (draw_cfg_nodes): Likewise.
* graphite-clast-to-gimple.c (translate_clast_user): Likewise.
* graphite-sese-to-poly.c (build_scop_scattering): Likewise.
(extract_affine_chrec): Likewise.
(build_scop_iteration_domain): Likewise.
* graphite.c (graphite_initialize): Likewise.
* ira-build.c (create_loop_tree_nodes): Likewise.
(more_one_region_p): Likewise.
(rebuild_regno_allocno_maps): Likewise.
(mark_loops_for_removal): Likewise.
(mark_all_loops_for_removal): Likewise.
(remove_unnecessary_regions): Likewise.
(ira_build): Likewise.
* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
* loop-init.c (fix_loop_structure): Likewise.
(gate_rtl_move_loop_invariants): Likewise.
(gate_rtl_unswitch): Likewise.
(gate_rtl_unroll_and_peel_loops): Likewise.
(rtl_doloop): Likewise.
* lto-streamer-in.c (input_cfg): Likewise.
* lto-streamer-out.c (output_cfg): Likewise.
* modulo-sched.c (sms_schedule): Likewise.
* predict.c (tree_estimate_probability): Likewise.
(tree_estimate_probability_driver): Likewise.
(estimate_loops): Likewise.
* tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
(move_sese_region_to_fn): Likewise.
(debug_loop_num): Likewise.
* tree-chrec.c (chrec_evaluate): Likewise.
(hide_evolution_in_other_loops_than_loop): Likewise.
(chrec_component_in_loop_num): Likewise.
(reset_evolution_in_loop): Likewise.
(evolution_function_is_invariant_rec_p): Likewise.
* tree-if-conv.c (main_tree_if_conversion): Likewise.
* tree-inline.c (copy_loops): Likewise.
(copy_cfg_body): Likewise.
(tree_function_versioning): Likewise.
* tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
Likewise.
(add_to_evolution_1): Likewise.
(scev_const_prop): Likewise.
* tree-scalar-evolution.h (get_chrec_loop): Likewise.
* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
(tree_ssa_lim_initialize): Likewise.
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
(verify_loop_closed_ssa): Likewise.
* tree-ssa-loop.c  (tree_ssa_loop_init): Likewise.
(tree_ssa_loop_im): Likewise.
(tree_ssa_loop_unswitch): Likewise.
(tree_vectorize): Likewise.
(check_data_deps): Likewise.
(tree_ssa_loop_ivcanon): Likewise.
(tree_ssa_loop_bounds): Likewise.
(tree_complete_unroll): Likewise.
(tree_complete_unroll_inner): Likewise.
(tree_parallelize_loops): Likewise.
(tree_ssa_loop_prefetch): Likewise.
(tree_ssa_loop_ivopts): Likewise.
* tree-ssa.c (execute_update_addresses_taken): Liekwise.
* tree-vectorizer.c (vectorize_loops): Likewise.

From-SVN: r198441

11 years agogcc: arm: linux-eabi: fix handling of armv4 bx fixups when linking
Mike Frysinger [Tue, 30 Apr 2013 04:07:23 +0000 (04:07 +0000)]
gcc: arm: linux-eabi: fix handling of armv4 bx fixups when linking

The bpabi.h header already sets up defines to automatically use the
--fix-v4bx flag with the assembler & linker as needed, and creates a
default assembly & linker spec which uses those.  Unfortunately, the
linux-eabi.h header clobbers the LINK_SPEC define and doesn't include
the v4bx define when setting up its own.  So while the assembler spec
is retained and works fine to generate the right relocs, building for
armv4 targets doesn't invoke the linker correctly so all the relocs
get processed as if we had an armv4t target.

You can see this with -dumpspecs when configuring gcc for an armv4
target and using --with-arch=armv4:
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx
*subtarget_extra_asm_spec:
.... %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx} ...

With this fix in place, we also get the link spec:
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx
*link:
...  %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx} ...

And all my hello world tests / glibc builds automatically turn the
bx insn into the 'mov pc, lr' insn and all is right in the world.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
From-SVN: r198438

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

From-SVN: r198437

11 years agore PR target/44578 (GCC generates MMX instructions but fails to generate "emms")
Uros Bizjak [Mon, 29 Apr 2013 20:16:48 +0000 (22:16 +0200)]
re PR target/44578 (GCC generates MMX instructions but fails to generate "emms")

PR target/44578
* config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
alternative.

testsuite/ChangeLog:

PR target/44578
* gcc.target/i386/pr44578.c: New test.

From-SVN: r198433

11 years agore PR target/57097 (ICE: in find_hard_regno_for, at lra-assigns.c:561 with -O2 -fPIC...
Vladimir Makarov [Mon, 29 Apr 2013 19:42:20 +0000 (19:42 +0000)]
re PR target/57097 (ICE: in find_hard_regno_for, at lra-assigns.c:561 with -O2 -fPIC -m32)

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

PR target/57097
        * lra-constraints.c (process_alt_operands): Discourage a bit more
using memory for pseudos.  Print cost dump for alternatives.
Modify cost values for conflicts with early clobbers.
(curr_insn_transform): Spill pseudos reassigned to NO_REGS.

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

PR target/57097
* gcc.target/i386/pr57097.c: New test.

From-SVN: r198432

11 years agore PR target/57098 (ICE: in extract_insn, at recog.c:2154 (unrecognizable insn) with...
Uros Bizjak [Mon, 29 Apr 2013 18:20:58 +0000 (20:20 +0200)]
re PR target/57098 (ICE: in extract_insn, at recog.c:2154 (unrecognizable insn) with -mcmodel=large -msse4 and __builtin_shuffle())

PR target/57098
* config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.

testsuite/ChangeLog:

PR target/57098
* gcc.target/i386/pr57098.c: New test.

From-SVN: r198430

11 years agore PR fortran/57114 (wrong information at http://gcc.gnu.org/onlinedocs/gfortran...
Tobias Burnus [Mon, 29 Apr 2013 18:05:00 +0000 (20:05 +0200)]
re PR fortran/57114 (wrong information at gcc.gnu.org/onlinedocs/gfortran/RANK.html)

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

        PR fortran/57114
        * intrinsic.texi (RANK): Correct syntax description and
        expected result.

From-SVN: r198429

11 years ago* gcc.c-torture/execute/pr55875.c
Kai Tietz [Mon, 29 Apr 2013 16:23:50 +0000 (18:23 +0200)]
* gcc.c-torture/execute/pr55875.c

From-SVN: r198426

11 years ago[AArch64] Support LDR/STR from/to S and D registers
Ian Bolton [Mon, 29 Apr 2013 16:13:16 +0000 (16:13 +0000)]
[AArch64] Support LDR/STR from/to S and D registers

From-SVN: r198425

11 years agoEnable REE pass by default for AArch64 at O2 or higher
Ian Bolton [Mon, 29 Apr 2013 15:59:19 +0000 (15:59 +0000)]
Enable REE pass by default for AArch64 at O2 or higher

From-SVN: r198424

11 years agore PR tree-optimization/57075 (verify_flow_info failed: control flow in the middle...
Richard Biener [Mon, 29 Apr 2013 15:06:18 +0000 (15:06 +0000)]
re PR tree-optimization/57075 (verify_flow_info failed: control flow in the middle of basic block)

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

PR middle-end/57075
* tree-inline.c (copy_edges_for_bb): Still split the bbs,
even if not adding abnormal edges for calls that can make
abnormal gotos.

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

From-SVN: r198423

11 years agore PR middle-end/57103 (ICE: verify_gimple failed: location references block not...
Richard Biener [Mon, 29 Apr 2013 14:12:54 +0000 (14:12 +0000)]
re PR middle-end/57103 (ICE: verify_gimple failed: location references block not in block tree with -ftree-parallelize-loops=4)

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

PR middle-end/57103
* tree-cfg.c (move_stmt_op): Fix condition under which to update
TREE_BLOCK.
(move_stmt_r): Remove redundant checking.

* gcc.dg/autopar/pr57103.c: New testcase.

From-SVN: r198418

11 years agoc-common.c (check_user_alignment): Emit error for negative values.
Senthil Kumar Selvaraj [Mon, 29 Apr 2013 13:28:44 +0000 (13:28 +0000)]
c-common.c (check_user_alignment): Emit error for negative values.

c-family:
2013-04-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* c-common.c (check_user_alignment): Emit error for negative values.

testsuite:
2013-04-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/c1x-align-3.c: Add test for negative power of 2.

From-SVN: r198417

11 years agoThis patch fixes PR bootstrap/57077.
Teresa Johnson [Mon, 29 Apr 2013 13:22:46 +0000 (13:22 +0000)]
This patch fixes PR bootstrap/57077.

This patch fixes PR bootstrap/57077. Certain new uses of apply_probability
are actually scaling the counts up, and the scale factor should not
be treated as a probability as the value may exceed REG_BR_PROB_BASE.
One example (from the PR) is when scaling counts up in LTO when merging
profiles. Another example I found when preparing the patch to use
the rounding divide in more places is when inlining COMDAT functions.

Add new helper function apply_scale that does the scaling without
the probability range check. I audited the new uses of apply_probability
and changed the calls as appropriate.

2013-04-29  Teresa Johnson  <tejohnson@google.com>

PR bootstrap/57077
* basic-block.h (apply_scale): New function.
(apply_probability): Use apply_scale.
* gimple-streamer-in.c (input_bb): Ditto.
* lto-streamer-in.c (input_cfg): Ditto.
* lto-cgraph.c (merge_profile_summaries): Ditto.
* tree-optimize.c (execute_fixup_cfg): Ditto.
* tree-inline.c (copy_bb): Update comment to use
apply_scale.
(copy_edges_for_bb): Ditto.
(copy_cfg_body): Ditto.

From-SVN: r198416

11 years agoPreserve loops in tail-merge
Tom de Vries [Mon, 29 Apr 2013 13:08:24 +0000 (13:08 +0000)]
Preserve loops in tail-merge

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

* tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
(replace_block_by): Don't set LOOPS_NEED_FIXUP.
(tail_merge_optimize): Handle current_loops == NULL.

* gcc.dg/pr50763.c: Update test.

From-SVN: r198414

11 years agotree-vrp.c (range_fits_type_p): Move to earlier point in file.
Jeff Law [Mon, 29 Apr 2013 12:52:17 +0000 (06:52 -0600)]
tree-vrp.c (range_fits_type_p): Move to earlier point in file.

* tree-vrp.c (range_fits_type_p): Move to earlier point in file.
        (simplify_cond_using_ranges): Generalize code to simplify
        COND_EXPRs where one argument is a constant and the other
        is an SSA_NAME created by an integral type conversion.

* gcc.dg/tree-ssa/vrp88.c: New test.

From-SVN: r198413

11 years agoarm.md (store_minmaxsi): Use only when optimize_insn_for_size_p.
Kyrylo Tkachov [Mon, 29 Apr 2013 12:39:38 +0000 (12:39 +0000)]
arm.md (store_minmaxsi): Use only when optimize_insn_for_size_p.

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

* config/arm/arm.md (store_minmaxsi): Use only when
optimize_insn_for_size_p.

From-SVN: r198412

11 years agore PR target/57108 ([4.7/4.8/4.9] SH internal compiler error: in int_mode_for_mode...
Christian Bruel [Mon, 29 Apr 2013 12:12:55 +0000 (14:12 +0200)]
re PR target/57108 ([4.7/4.8/4.9] SH internal compiler error: in int_mode_for_mode, at stor-layout.c:395)

2013-04-29  Christian Bruel  <christian.bruel@st.com>

       PR target/57108
       * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.

From-SVN: r198411

11 years agore PR middle-end/57089 (ICE in verify_loop_structure, at cfgloop.c:1647)
Richard Biener [Mon, 29 Apr 2013 11:31:33 +0000 (11:31 +0000)]
re PR middle-end/57089 (ICE in  verify_loop_structure, at cfgloop.c:1647)

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

PR middle-end/57089
* omp-low.c (expand_omp_taskreg): If the parent function had
a broken loop tree make sure to schedule a fixup for the child
as well.
(expand_omp_for_generic): Properly add loops.
(expand_omp_for_static_nochunk): Likewise.
(expand_omp_for_static_chunk): Likewise.
(expand_omp_for): For the degenerate case fixup loops.
(expand_omp_sections): Fix default bb placement in loops.
(expand_omp_atomic_pipeline): Properly add loops.

* gfortran.dg/gomp/pr57089.f90: New testcase.

From-SVN: r198409

11 years agopredict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
Kyrylo Tkachov [Mon, 29 Apr 2013 11:27:30 +0000 (11:27 +0000)]
predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.

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

* predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.

From-SVN: r198408

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