1. 11 Nov, 2015 11 commits
  2. 10 Nov, 2015 29 commits
    • nvptx.opt (moptimize): New flag. · dba619f3
      	* config/nvptx/nvptx.opt (moptimize): New flag.
      	* config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
      	default.
      	(nvptx_optimize_inner): New.
      	(nvptx_process_pars): Call it when optimizing.
      	* doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
      
      From-SVN: r230137
      Nathan Sidwell committed
    • rs6000.c (rs6000_secondary_reload_direct_move): Remove redundant code. · 43ee07b7
      2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
      	Remove redundant code.
      
      From-SVN: r230136
      Bill Schmidt committed
    • libgo: use Solaris sendfile lib, fix Solaris _in6_addr_t fields · 88cf4de8
          
          Before Solaris 12 the sendfile function is found in -lsendfile, so look
          for it there.
          
          Solaris 12 adds some more types that use _in6_addr_t, that need to be
          edited in mksysinfo.
          
          Patch by Rainer Orth.
          
          Reviewed-on: https://go-review.googlesource.com/16779
      
      From-SVN: r230132
      Ian Lance Taylor committed
    • [PATCH] Fix minor fallout from operand_address changes · 732ea6d1
      2015-11-10  Jeff Law  <law@redhat.com>
      
      	* config/ft32/ft32.c (ft32_print_operand): Supply mode to
      	call to output_address.
      	* config/moxie/moxie.c (moxie_print_operand_address): Similarly.
      	Add unnamed machine_mode argument.
      
      From-SVN: r230130
      Jeff Law committed
    • config.gcc (powerpc*-*-*, [...]): Add power9 to hosts that default to 64-bit. · 1840c953
      2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
      	default to 64-bit.
      
      
      Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
      
      From-SVN: r230123
      Michael Meissner committed
    • re PR go/68255 (cgo-generated constructor not being called) · ea5c2003
      	PR go/68255
          cmd/go: always use --whole-archive for gccgo packages
          
          This is a backport of https://golang.org/cl/16775.
          
          This is, in effect, what the gc toolchain does.  It fixes cases where Go
          code refers to a C global variable; without this, if the global variable
          was the only thing visible in the C code, the generated cgo file might
          not get pulled in from the archive, leaving the Go variable
          uninitialized.
          
          This was reported against gccgo as https://gcc.gnu.org/PR68255 .
          
          Reviewed-on: https://go-review.googlesource.com/16778
      
      From-SVN: r230120
      Ian Lance Taylor committed
    • i386.md (*movabs<mode>_1): Add explicit size directives for -masm=intel. · c5a237e9
      	* config/i386/i386.md (*movabs<mode>_1): Add explicit
      	size directives for -masm=intel.
      	(*movabs<mode>_2): Ditto.
      
      From-SVN: r230119
      Uros Bizjak committed
    • i386.c (ix86_print_operand): Remove dead code that tried to avoid (%rip) for call operands. · 41d9ec3c
      	* config/i386/i386.c (ix86_print_operand): Remove dead code that
      	tried to avoid (%rip) for call operands.
      
      	* config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
      	argument.  Do not use RIP relative addressing when no_rip is set.
      	(ix86_print_operand): Update call to ix86_print_operand_address_as.
      	(ix86_print_operand_address): Ditto.
      	* config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
      	absolute movabs operand 0.  Add square braces for -masm=intel.
      	(*movabs<mode>_2): Ditto for operand 1.
      
      From-SVN: r230117
      Uros Bizjak committed
    • [ARM] Fix costing of vmul+vcvt combine pattern · 6a9ee02f
      	* config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
      	combine_vcvtf2i pattern.
      
      From-SVN: r230116
      Kyrylo Tkachov committed
    • [ARM][cleanup] Remove uses of CONST_DOUBLE_HIGH/LOW · aad146c3
      	* config/arm/arm.c (neon_valid_immediate): Remove integer
      	CONST_DOUBLE handling.  It should never occur.
      
      From-SVN: r230115
      Kyrylo Tkachov committed
    • [AArch64] Move iterators from atomics.md to iterators.md · d81cb613
      	* config/aarch64/atomics.md (unspecv): Move to iterators.md.
      	(ATOMIC_LDOP): Likewise.
      	(atomic_ldop): Likewise.
      	* config/aarch64/iterators.md (unspecv): Moved from atomics.md.
      	(ATOMIC_LDOP): Likewise.
      	(atomic_ldop): Likewise.
      
      From-SVN: r230114
      Matthew Wahab committed
    • Fix return type of heterogeneous find for sets · d4a9dffb
      	PR libstdc++/68190
      	* include/bits/stl_multiset.h (multiset::find): Fix return types.
      	* include/bits/stl_set.h (set::find): Likewise.
      	* testsuite/23_containers/map/operations/2.cc: Test find return types.
      	* testsuite/23_containers/multimap/operations/2.cc: Likewise.
      	* testsuite/23_containers/multiset/operations/2.cc: Likewise.
      	* testsuite/23_containers/set/operations/2.cc: Likewise.
      
      From-SVN: r230113
      Jonathan Wakely committed
    • Update C++17 library implementation status · 60baa188
      	* doc/xml/manual/status_cxx2017.xml: Update.
      	* doc/html/*: Regenerate.
      
      From-SVN: r230108
      Jonathan Wakely committed
    • firstprivate-1.c: Remove inadvertent commit. · d350c40c
      	* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
      	inadvertent commit.
      
      From-SVN: r230107
      Nathan Sidwell committed
    • Enhance pool allocator · 8bd37a2e
      	* alloc-pool.h (allocate_raw): New function.
      	(operator new (size_t, object_allocator<T> &a)): Use the
      	function instead of object_allocator::allocate).
      
      From-SVN: r230105
      Martin Liska committed
    • sse.md (HALFMASKMODE): New attribute. · bea40885
      gcc/
      
      	* config/i386/sse.md (HALFMASKMODE): New attribute.
      	(DOUBLEMASKMODE): New attribute.
      	(vec_pack_trunc_qi): New.
      	(vec_pack_trunc_<mode>): New.
      	(vec_unpacks_lo_hi): New.
      	(vec_unpacks_lo_si): New.
      	(vec_unpacks_lo_di): New.
      	(vec_unpacks_hi_hi): New.
      	(vec_unpacks_hi_<mode>): New.
      
      gcc/testsuite/
      
      	* gcc.target/i386/mask-pack.c: New test.
      	* gcc.target/i386/mask-unpack.c: New test.
      
      From-SVN: r230104
      Ilya Enkovich committed
    • optabs.c (expand_binop_directly): Allow scalar mode for vec_pack_trunc_optab. · e6f5c25d
      gcc/
      
      	* optabs.c (expand_binop_directly): Allow scalar mode for
      	vec_pack_trunc_optab.
      	* tree-vect-loop.c (vect_determine_vectorization_factor): Skip
      	boolean vector producers from pattern sequence when computing VF.
      	* tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
      	vect_recog_mask_conversion_pattern.
      	(search_type_for_mask): Choose the smallest
      	type if different size types are mixed.
      	(build_mask_conversion): New.
      	(vect_recog_mask_conversion_pattern): New.
      	(vect_pattern_recog_1): Allow scalar mode for boolean vectype.
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
      	load with pattern.
      	(vectorizable_conversion): Support boolean vectors.
      	(free_stmt_vec_info): Allow patterns for statements with no lhs.
      	* tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
      
      From-SVN: r230103
      Ilya Enkovich committed
    • i386-protos.h (ix86_expand_sse_movcc): New. · f79fe06f
      gcc/
      
      2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
      
      	* config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
      	* config/i386/i386.c (ix86_expand_sse_movcc): Make public.
      	Cast mask to FP mode if required.
      	* config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
      	(vcond_mask_<mode><avx512fmaskmodelower>): New.
      	(vcond_mask_<mode><sseintvecmodelower>): New.
      	(vcond_mask_<mode><sseintvecmodelower>): New.
      	(vcond_mask_v2div2di): New.
      	(vcond_mask_<mode><sseintvecmodelower>): New.
      	(vcond_mask_<mode><sseintvecmodelower>): New.
      
      From-SVN: r230102
      Ilya Enkovich committed
    • optabs-query.h (get_vcond_mask_icode): New. · a414c77f
      gcc/
      
      2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
      
      	* optabs-query.h (get_vcond_mask_icode): New.
      	* optabs-tree.c (expand_vec_cond_expr_p): Use
      	get_vcond_mask_icode for VEC_COND_EXPR with mask.
      	* optabs.c (expand_vec_cond_mask_expr): New.
      	(expand_vec_cond_expr): Use get_vcond_mask_icode
      	when possible.
      	* optabs.def (vcond_mask_optab): New.
      	* tree-vect-patterns.c (vect_recog_bool_pattern): Don't
      	generate redundant comparison for COND_EXPR.
      	* tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
      	as a condition.
      	(vectorizable_condition): Likewise.
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
      	cond_exp with no embedded comparison.
      	(vect_build_slp_tree_1): Likewise.
      
      From-SVN: r230101
      Ilya Enkovich committed
    • sse.md (maskload<mode>): Rename to ... · 1ab8a1b1
      2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
      
      	* config/i386/sse.md (maskload<mode>): Rename to ...
      	(maskload<mode><sseintvecmodelower>): ... this.
      	(maskstore<mode>): Rename to ...
      	(maskstore<mode><sseintvecmodelower>): ... this.
      	(maskload<mode><avx512fmaskmodelower>): New.
      	(maskstore<mode><avx512fmaskmodelower>): New.
      
      From-SVN: r230100
      Ilya Enkovich committed
    • internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes. · 045c1278
      gcc/
      
      	* internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
      	(expand_MASK_STORE): Adjust to maskstore optab changes.
      	* optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
      	 Adjust to maskload, maskstore optab changes.
      	* optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
      	* optabs.def (maskload_optab): Transform into convert optab.
      	(maskstore_optab): Likewise.
      	* tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
      	can_vec_mask_load_store_p signature change.
      	(predicate_mem_writes): Use boolean mask.
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
      	can_vec_mask_load_store_p signature change.  Allow invariant masks.
      	(vectorizable_operation): Ignore type precision for boolean vectors.
      
      gcc/testsuite/
      
      	* gcc.target/i386/avx2-vec-mask-bit-not.c: New test.
      
      From-SVN: r230099
      Ilya Enkovich committed
    • expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results. · 42fd8198
      gcc/
      
      	* expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
      	(const_vector_mask_from_tree): New.
      	(const_vector_from_tree): Use const_vector_mask_from_tree
      	for boolean vectors.
      	* optabs-query.h (get_vec_cmp_icode): New.
      	* optabs-tree.c (expand_vec_cmp_expr_p): New.
      	* optabs-tree.h (expand_vec_cmp_expr_p): New.
      	* optabs.c (vector_compare_rtx): Add OPNO arg.
      	(expand_vec_cond_expr): Adjust to vector_compare_rtx change.
      	(expand_vec_cmp_expr): New.
      	* optabs.def (vec_cmp_optab): New.
      	(vec_cmpu_optab): New.
      	* optabs.h (expand_vec_cmp_expr): New.
      	* tree-vect-generic.c (expand_vector_comparison): Add vector
      	comparison optabs check.
      	* tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
      	operations for VF.  Add mask type computation.
      	* tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
      	(vectorizable_comparison): New.
      	(vect_analyze_stmt): Add vectorizable_comparison.
      	(vect_transform_stmt): Likewise.
      	(vect_init_vector): Support boolean vector invariants.
      	(vect_get_vec_def_for_operand): Add VECTYPE arg.
      	(vectorizable_condition): Directly provide vectype for invariants
      	used in comparison.
      	* tree-vectorizer.h (get_mask_type_for_scalar_type): New.
      	(enum vect_var_kind): Add vect_mask_var.
      	(enum stmt_vec_info_type): Add comparison_vec_info_type.
      	(vectorizable_comparison): New.
      	(vect_get_vec_def_for_operand): Add VECTYPE arg.
      	* tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
      	(vect_create_destination_var): Likewise.
      	* tree-vect-patterns.c (check_bool_pattern): Check fails
      	if we can vectorize comparison directly.
      	(search_type_for_mask): New.
      	(vect_recog_bool_pattern): Support cases when bool pattern
      	check fails.
      	* tree-vect-slp.c (vect_build_slp_tree_1): Allow
      	comparison statements.
      	(vect_get_constant_vectors): Support boolean vector
      	constants.
      	* config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
      	(ix86_expand_int_vec_cmp): New.
      	(ix86_expand_fp_vec_cmp): New.
      	* config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
      	op_true and op_false.
      	(ix86_int_cmp_code_to_pcmp_immediate): New.
      	(ix86_fp_cmp_code_to_pcmp_immediate): New.
      	(ix86_cmp_code_to_pcmp_immediate): New.
      	(ix86_expand_mask_vec_cmp): New.
      	(ix86_expand_fp_vec_cmp): New.
      	(ix86_expand_int_sse_cmp): New.
      	(ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
      	(ix86_expand_int_vec_cmp): New.
      	(ix86_get_mask_mode): New.
      	(TARGET_VECTORIZE_GET_MASK_MODE): New.
      	* config/i386/sse.md (avx512fmaskmodelower): New.
      	(vec_cmp<mode><avx512fmaskmodelower>): New.
      	(vec_cmp<mode><sseintvecmodelower>): New.
      	(vec_cmpv2div2di): New.
      	(vec_cmpu<mode><avx512fmaskmodelower>): New.
      	(vec_cmpu<mode><sseintvecmodelower>): New.
      	(vec_cmpuv2div2di): New.
      
      gcc/testsuite/
      
      	* gcc.dg/vect/slp-cond-5.c: New test.
      
      From-SVN: r230098
      Ilya Enkovich committed
    • * include/bits/functional_hash.h: Fix grammar in comment. · fb933335
      From-SVN: r230097
      Jonathan Wakely committed
    • re PR tree-optimization/68240 (compilation hangs on valid code at -O1 and above… · 94852c8e
      re PR tree-optimization/68240 (compilation hangs on valid code at -O1 and above on x86_64-linux-gnu)
      
      2015-11-10  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/68240
      	* tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
      	properly.
      	(visit_phi): For PHIs with just a single executable edge
      	take its value directly.
      	(expressions_equal_p): Handle VN_TOP properly.
      
      	* gcc.dg/torture/pr68240.c: New testcase.
      
      From-SVN: r230095
      Richard Biener committed
    • tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Handle memory… · ef785d9f
      tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF conservatively.
      
      2015-11-10  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
      	Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
      	conservatively.
      
      From-SVN: r230094
      Richard Biener committed
    • re PR tree-optimization/56118 (Piecewise vector / complex initialization from… · a6524bba
      re PR tree-optimization/56118 (Piecewise vector / complex initialization from constants not combined)
      
      2015-11-10  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/56118
      	* tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
      	cost favor vectorized version.
      
      	* gcc.target/i386/pr56118.c: New testcase.
      
      From-SVN: r230091
      Richard Biener committed
    • [AArch64][2/3] Implement negcc, notcc optabs · 3204ac98
      	* config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
      	* config/aarch64/iterators.md (NEG_NOT): New code iterator.
      	(neg_not_op): New code attribute.
      
      	* gcc.target/aarch64/cond_op_imm_1.c: New test.
      
      From-SVN: r230090
      Kyrylo Tkachov committed
    • [optabs][ifcvt][1/3] Define negcc, notcc optabs · ce68b5cf
      	* ifcvt.c (noce_try_inverse_constants): New function.
      	(noce_process_if_block): Call it.
      	* optabs.h (emit_conditional_neg_or_complement): Declare prototype.
      	* optabs.def (negcc_optab, notcc_optab): Declare.
      	* optabs.c (emit_conditional_neg_or_complement): New function.
      	* doc/tm.texi (Standard Names): Document negcc, notcc names.
      
      From-SVN: r230089
      Kyrylo Tkachov committed
    • [haifa-sched] PR rtl-optimization/68236: Exit early from autoprefetcher… · df554b0e
      [haifa-sched] PR rtl-optimization/68236: Exit early from autoprefetcher lookahead if not in haifa sched
      
      	PR rtl-optimization/68236
      	* haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
      	if insn_queue doesn't exist.
      	(haifa_sched_finish): Reset insn_queue to NULL.
      
      From-SVN: r230088
      Kyrylo Tkachov committed