Commit Graph

123292 Commits

Author SHA1 Message Date
James Greenhalgh 1598945b00 [AArch64] Fold max and min reduction builtins to tree.
gcc/
	* config/aarch64/aarch64-builtins
	(aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.

From-SVN: r198498
2013-05-01 15:18:18 +00:00
James Greenhalgh 998eaf975b [AArch64] Refactor vector max and min RTL and builtins.
gcc/
	* config/aarch64/aarch64-simd-builtins.def
	(reduc_smax_): New.
	(reduc_smin_): Likewise.
	(reduc_umax_): Likewise.
	(reduc_umin_): Likewise.
	(reduc_smax_nan_): Likewise.
	(reduc_smin_nan_): Likewise.
	(fmax): Remove.
	(fmin): Likewise.
	(smax): Update for V2SF, V4SF and V2DF modes.
	(smin): Likewise.
	(smax_nan): New.
	(smin_nan): Likewise.
	* config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
	(<su><maxmin><mode>3): ...This, refactor.
	(s<maxmin><mode>3): New.
	(<maxmin_uns><mode>3): Likewise.
	(reduc_<maxmin_uns>_<mode>): Refactor.
	(reduc_<maxmin_uns>_v4sf): Likewise.
	(reduc_<maxmin_uns>_v2si): Likewise.
	(aarch64_<fmaxmin><mode>: Remove.
	* config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
	new builtin names.
	(vmin<q>_f<32,64>): Likewise.
	* config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
	(FMAXMIN): New.
	(su): Add mappings for smax, smin, umax, umin.
	(maxmin): New.
	(FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
	(FMAXMIN): Rename as...
	(FMAXMIN_UNS): ...This.
	(maxminv): Remove.
	(fmaxminv): Likewise.
	(fmaxmin): Likewise.
	(maxmin_uns): New.
	(maxmin_uns_op): Likewise.

From-SVN: r198497
2013-05-01 15:16:14 +00:00
James Greenhalgh 92d9038e4f [AArch64] Add testcases for FAC, FCM changes.
gcc/testsuite/
	* gcc.target/aarch64/scalar-vca.c: New.
	* gcc.target/aarch64/vect-vca.c: Likewise.

From-SVN: r198496
2013-05-01 10:52:13 +00:00
James Greenhalgh bd11644e62 [AArch64] Rewrite vca<ge, gt, le, lt> Neon patterns in C.
gcc/
	* config/aarch64/arm_neon.h
	(vac<ge, gt><sd>_f<32, 64>): Rename to...
	(vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
	(vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.

From-SVN: r198495
2013-05-01 10:49:31 +00:00
James Greenhalgh 75dd5aceb2 [AArch64] Add combiner patterns for FAC instructions
gcc/
	* config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
	* config/aarch64/iterators.md (FAC_COMPARISONS): New.

From-SVN: r198494
2013-05-01 10:46:00 +00:00
James Greenhalgh ad755ff16d [AArch64 Testsuite] Fix fallout from FCM changes.
gcc/testsuite/
	* gcc.target/aarch64/scalar_intrinsics.c (force_simd): New.
	(test_vceqd_s64): Force arguments to SIMD registers.
	(test_vceqzd_s64): Likewise.
	(test_vcged_s64): Likewise.
	(test_vcled_s64): Likewise.
	(test_vcgezd_s64): Likewise.
	(test_vcged_u64): Likewise.
	(test_vcgtd_s64): Likewise.
	(test_vcltd_s64): Likewise.
	(test_vcgtzd_s64): Likewise.
	(test_vcgtd_u64): Likewise.
	(test_vclezd_s64): Likewise.
	(test_vcltzd_s64): Likewise.
	(test_vtst_s64): Likewise.
	(test_vtst_u64): Likewise.

From-SVN: r198493
2013-05-01 10:43:02 +00:00
James Greenhalgh 7c19979f0f [AArch64] Add special case when expanding vcond with arms {-1, -1}, {0, 0}.
gcc/
	* config/aarch64/aarch64-simd.md
	(vcond<mode>_internal): Handle special cases for constant masks.
	(vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
	(vcondu<mode><mode>): Likewise.
	(vcond<v_cmp_result><mode>): New.

From-SVN: r198492
2013-05-01 10:40:23 +00:00
James Greenhalgh bb60efd9bf [AArch64] Remap neon vcmp functions to C/TREE
gcc/
	* config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
	(aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
	* config/aarch64/aarch64-simd-builtins.def
	(cmeq): Update to BUILTIN_VALLDI.
	(cmgt): Likewise.
	(cmge): Likewise.
	(cmle): Likewise.
	(cmlt): Likewise.
	* config/aarch64/arm_neon.h
	(vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
	to builtins or C as appropriate.

From-SVN: r198491
2013-05-01 10:37:28 +00:00
James Greenhalgh 889b941239 [AArch64] Improve description of <F>CM instructions in RTL
gcc/
	* config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
	(cmgeu): ...This.
	(cmhi): Rename to...
	(cmgtu): ...This.
	* config/aarch64/aarch64-simd.md
	(simd_mode): Add SF.
	(aarch64_vcond_internal): Use new names for unsigned comparison insns.
	(aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
	* config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
	(cstore<mode>_neg): ...This.
	* config/aarch64/iterators.md
	(VALLF): new.
	(unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
	(COMPARISONS): New.
	(UCOMPARISONS): Likewise.
	(optab): Add missing comparisons.
	(n_optab): New.
	(cmp_1): Likewise.
	(cmp_2): Likewise.
	(CMP): Likewise.
	(cmp): Remove.
	(VCMP_S): Likewise.
	(VCMP_U): Likewise.
	(V_cmp_result): Add DF, SF modes.
	(v_cmp_result): Likewise.
	(v): Likewise.
	(vmtype): Likewise.
	* config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.

From-SVN: r198490
2013-05-01 10:33:57 +00:00
Greta Yorsh 0a7dbb7661 thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert define_insn to define_insn_and_split.
2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
	define_insn to define_insn_and_split.
	(thumb32_umaxsi3,thumb2_uminsi3): Likewise.
	(thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
	(thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
	(thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
	(thumb2_negscc): Likewise.

From-SVN: r198489
2013-05-01 11:25:28 +01:00
Paolo Carlini 57c16a5eb6 re PR c++/57092 (Using decltype of function pointer type to define a data member causes compiler crash)
/cp
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57092
	* semantics.c (finish_decltype_type): Handle instantiated template
	non-type arguments.

/testsuite
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57092
	* g++.dg/cpp0x/decltype53.C: New.

From-SVN: r198487
2013-05-01 09:21:30 +00:00
Thomas Koenig e1e14947cf frontend-passes.c (optimize_power): Fix typo in comment.
2013-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (optimize_power):  Fix typo
	in comment.

From-SVN: r198486
2013-05-01 08:28:57 +00:00
GCC Administrator dceb165352 Daily bump.
From-SVN: r198484
2013-05-01 00:16:23 +00:00
Thomas Koenig 068b04fe4c re PR fortran/57071 (Optimize (-1)**k to 1 - 2 * mod(K, 2))
2013-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57071
	* frontend-passes.c (optimize_power):  Simplify
	1**k to 1.

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

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

From-SVN: r198476
2013-04-30 21:45:13 +00:00
Brooks Moses dc4ea06f6a MAINTAINERS: Update my email; move myself from Fortran reviewer to Write After Approval.
* MAINTAINERS: Update my email; move myself from Fortran
reviewer to Write After Approval.

From-SVN: r198469
2013-04-30 11:31:46 -07:00
Greta Yorsh fb614ca68b thumb2.md (thumb2_incscc, [...]): Delete.
2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.

From-SVN: r198465
2013-04-30 18:08:25 +01:00
Greta Yorsh 9e64a0bf20 Committed as obvious.
2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/thumb2.md: Remove trailing whitespaces.

From-SVN: r198464
2013-04-30 17:50:12 +01:00
Richard Sandiford d6b2815614 explow.c (plus_constant): Pass "mode" to immed_double_int_const.
gcc/
	* explow.c (plus_constant): Pass "mode" to immed_double_int_const.
	Use gen_int_mode rather than GEN_INT.

From-SVN: r198462
2013-04-30 16:15:55 +00:00
H.J. Lu b0dec60747 Fix a typo in ChangeLog
From-SVN: r198458
2013-04-30 08:53:58 -07:00
H.J. Lu f91674c330 Remove the trayed debug_gimple_stmt
* value-prof.c (stream_in_histogram_value): Remove the trayed
	debug_gimple_stmt.

From-SVN: r198457
2013-04-30 08:53:03 -07:00
Richard Biener 3551257c5d re PR tree-optimization/57122 (ICE in verify_loop_structure, at cfgloop.c:1647 (loop n’s latch does not have an edge to its header !))
2013-04-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/57122
	* cfghooks.c (split_edge): Properly check for the loop
	latch edge.

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

From-SVN: r198456
2013-04-30 15:03:58 +00:00
Richard Biener 4c1aff1ce4 re PR middle-end/57107 (tree check fail in unlink_stmt_vdef)
2013-04-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/57107
	* tree-eh.c (sink_clobbers): Preserve virtual SSA form.

	* g++.dg/torture/pr57107.C: New testcase.

From-SVN: r198454
2013-04-30 13:54:14 +00:00
Andrey Belevantsev 54b8379a26 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
2013-04-30 14:55:52 +04:00
Jakub Jelinek abc27962b8 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
2013-04-30 10:52:39 +02:00
Sofiane Naci a46d0aff5e config-list.mk (LIST): Add aarch64-elf and aarch64-linux-gnu.
From-SVN: r198443
2013-04-30 08:35:17 +00:00
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