1. 29 Apr, 2013 29 commits
    • Enable REE pass by default for AArch64 at O2 or higher · 473cec55
      From-SVN: r198424
      Ian Bolton committed
    • re PR tree-optimization/57075 (verify_flow_info failed: control flow in the middle of basic block) · a6f30e66
      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
      Richard Biener committed
    • re PR middle-end/57103 (ICE: verify_gimple failed: location references block not… · 0c2b2040
      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
      Richard Biener committed
    • c-common.c (check_user_alignment): Emit error for negative values. · 3f12f6e9
      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
      Senthil Kumar Selvaraj committed
    • This patch fixes PR bootstrap/57077. · f41f80f9
      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
      Teresa Johnson committed
    • Preserve loops in tail-merge · 315bbd2e
      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
      Tom de Vries committed
    • tree-vrp.c (range_fits_type_p): Move to earlier point in file. · ebbd90d8
      	* 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
      Jeff Law committed
    • arm.md (store_minmaxsi): Use only when optimize_insn_for_size_p. · 8b9b57eb
      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
      Kyrylo Tkachov committed
    • re PR target/57108 ([4.7/4.8/4.9] SH internal compiler error: in… · 9498e5dc
      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
      Christian Bruel committed
    • re PR middle-end/57089 (ICE in verify_loop_structure, at cfgloop.c:1647) · 6093bc06
      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
      Richard Biener committed
    • predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY. · 84aacbfd
      2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
      
      From-SVN: r198408
      Kyrylo Tkachov committed
    • Update tail-merge header comment. · 8dee4479
      2013-04-29  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-tail-merge.c: Update header comment.
      
      From-SVN: r198407
      Tom de Vries committed
    • [AArch64][Testsuite] Enable vect_uintfloat_cvt for AArch64. · 593bd7df
      gcc/testsuite/
      	* lib/target-supports.exp (vect_uintfloat_cvt): Enable for AArch64.
      
      From-SVN: r198406
      James Greenhalgh committed
    • [AArch64] fcvt instructions - arm_neon.h changes. · 47934dc4
      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
      James Greenhalgh committed
    • [AArch64] Add vector fix, fixuns, fix_trunc, fixuns_trunc standard patterns · 384be29f
      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
      James Greenhalgh committed
    • [AArch64] Vectorize over more math.h functions. · 0386b123
      gcc/
      	* config/aarch64/aarch64-builtins.c
      	(aarch64_builtin_vectorized_function): Vectorize over ifloorf,
      	iceilf, lround, iroundf.
      
      From-SVN: r198402
      James Greenhalgh committed
    • re PR target/54349 (_mm_cvtsi128_si64 unnecessary stores value at stack) · 00fcb892
      	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
      Uros Bizjak committed
    • [AArch64] Implement vector float->double widening and double->float narrowing. · 4c871069
      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
      James Greenhalgh committed
    • [AArch64] Add vector int to float conversions. · 1709ff9b
      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
      James Greenhalgh committed
    • [AArch64] Map fcvt intrinsics to builtin name directly. · ce966824
      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
      James Greenhalgh committed
    • [AArch64] Fix order of modes to lroundmn2 standard names. · b9de24fe
      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
      James Greenhalgh committed
    • [AArch64] Convert NEON frint implementations to use builtins. · 77a205be
      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
      James Greenhalgh committed
    • [AArch64] Map frint intrinsics to standard pattern names directly. · 0659ce6f
      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
      James Greenhalgh committed
    • re PR tree-optimization/57081 (Segmentation fault in simple_iv (tree-scalar-evolution.c:3151)) · ea78906a
      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
      Richard Biener committed
    • Simplify SYSTEM_CLOCK implementation. · 96cc0ef4
      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
      Janne Blomqvist committed
    • PR 56981 Improve unbuffered performance on special files. · c033f5ae
      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
      Janne Blomqvist committed
    • re PR tree-optimization/57083 (Wrong constant folding) · 94dc5332
      	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
      Jakub Jelinek committed
    • predicates.md (general_vector_operand): New predicate. · baee1763
      	* 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
      Jakub Jelinek committed
    • Daily bump. · 8f36b237
      From-SVN: r198384
      GCC Administrator committed
  2. 28 Apr, 2013 10 commits
  3. 27 Apr, 2013 1 commit