Commit Graph

123167 Commits

Author SHA1 Message Date
Richard Biener
0fc822d0f9 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
2013-04-30 08:14:09 +00:00
Mike Frysinger
37953bd308 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
2013-04-30 04:07:23 +00:00
GCC Administrator
5eb8b03c89 Daily bump.
From-SVN: r198437
2013-04-30 00:16:40 +00:00
Uros Bizjak
f9ed28db0c 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
2013-04-29 22:16:48 +02:00
Vladimir Makarov
deca73f5de 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
2013-04-29 19:42:20 +00:00
Uros Bizjak
fdca7d03ed 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
2013-04-29 20:20:58 +02:00
Tobias Burnus
69acfe77c1 re PR fortran/57114 (wrong information at http://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
2013-04-29 20:05:00 +02:00
Kai Tietz
e34b523de2 * gcc.c-torture/execute/pr55875.c
From-SVN: r198426
2013-04-29 10:23:50 -06:00
Ian Bolton
0b064172a2 [AArch64] Support LDR/STR from/to S and D registers
From-SVN: r198425
2013-04-29 16:13:16 +00:00
Ian Bolton
473cec554a Enable REE pass by default for AArch64 at O2 or higher
From-SVN: r198424
2013-04-29 15:59:19 +00:00
Richard Biener
a6f30e668a 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
2013-04-29 15:06:18 +00:00
Richard Biener
0c2b20400c 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
2013-04-29 14:12:54 +00:00
Senthil Kumar Selvaraj
3f12f6e914 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
2013-04-29 14:28:44 +01:00
Teresa Johnson
f41f80f908 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
2013-04-29 13:22:46 +00:00
Tom de Vries
315bbd2e3c 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
2013-04-29 13:08:24 +00:00
Jeff Law
ebbd90d832 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
2013-04-29 06:52:17 -06:00
Kyrylo Tkachov
8b9b57ebca 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
2013-04-29 12:39:38 +00:00
Christian Bruel
9498e5dcbb 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
2013-04-29 14:12:55 +02:00
Richard Biener
6093bc066f 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
2013-04-29 11:31:33 +00:00
Kyrylo Tkachov
84aacbfda5 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
2013-04-29 11:27:30 +00:00
Tom de Vries
8dee447981 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
2013-04-29 11:14:26 +00:00
James Greenhalgh
593bd7df64 [AArch64][Testsuite] Enable vect_uintfloat_cvt for AArch64.
gcc/testsuite/
	* lib/target-supports.exp (vect_uintfloat_cvt): Enable for AArch64.

From-SVN: r198406
2013-04-29 11:11:11 +00:00
James Greenhalgh
47934dc4c2 [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
2013-04-29 11:08:30 +00:00
James Greenhalgh
384be29f47 [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
2013-04-29 11:04:56 +00:00
James Greenhalgh
0386b123a2 [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
2013-04-29 11:02:15 +00:00
Uros Bizjak
00fcb892cc 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
2013-04-29 13:00:10 +02:00
James Greenhalgh
4c871069f9 [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
2013-04-29 10:57:59 +00:00
James Greenhalgh
1709ff9b5c [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
2013-04-29 10:54:32 +00:00
James Greenhalgh
ce96682437 [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
2013-04-29 10:51:46 +00:00
James Greenhalgh
b9de24febe [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
2013-04-29 10:48:54 +00:00
James Greenhalgh
77a205be4e [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
2013-04-29 10:23:15 +00:00
James Greenhalgh
0659ce6ffb [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
2013-04-29 10:17:51 +00:00
Richard Biener
ea78906a44 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
2013-04-29 09:09:08 +00:00
Janne Blomqvist
96cc0ef46b 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
2013-04-29 11:43:18 +03:00
Janne Blomqvist
c033f5ae32 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
2013-04-29 11:42:00 +03:00
Jakub Jelinek
94dc53320e 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
2013-04-29 09:55:09 +02:00
Jakub Jelinek
baee1763e2 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
2013-04-29 09:43:20 +02:00
GCC Administrator
8f36b23705 Daily bump.
From-SVN: r198384
2013-04-29 00:16:40 +00:00
Paolo Carlini
4882d82a27 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
2013-04-28 22:56:44 +00:00
Jakub Jelinek
01187df097 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
2013-04-28 23:36:57 +02:00
Tobias Burnus
5e67a36916 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
2013-04-28 21:54:44 +02:00
Janne Blomqvist
a2f7b4ad34 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
2013-04-28 21:16:25 +03:00
Eric Botcazou
22ad5e0a85 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
2013-04-28 17:29:01 +00:00
Joseph Myers
20cab75e80 * sv.po: Update.
From-SVN: r198371
2013-04-28 15:43:12 +01:00
Thomas Koenig
0de1e4a6aa 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
2013-04-28 13:32:59 +00:00
Jonathan Wakely
d872e4aa70 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
2013-04-28 12:51:59 +01:00
Jonathan Wakely
fe807059aa 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
2013-04-28 12:38:21 +01:00
GCC Administrator
35eb492bcf Daily bump.
From-SVN: r198365
2013-04-28 00:16:43 +00:00
Jakub Jelinek
d6fde69e8a * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
From-SVN: r198358
2013-04-27 14:29:42 +02:00
Jakub Jelinek
ba8011e6c0 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
2013-04-27 14:26:05 +02:00