1. 10 Nov, 2015 22 commits
    • 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
    • Tie chains for move instructions. · 0d20a76b
      gcc/
      	* regrename.c (create_new_chain): Initialize renamed and tied_chain.
      	(build_def_use): Initialize terminated_this_insn.
      	(find_best_rename_reg): Pick and check register from the tied chain.
      	(regrename_do_replace): Mark head as renamed.
      	(struct du_head *terminated_this_insn). New static variable.
      	(scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
      	* regrename.h (struct du_head): Add tied_chain, renamed members.
      
      From-SVN: r230087
      Robert Suchanek committed
    • * gfortran.dg/pr68251.f90: New test. · 66d662de
      From-SVN: r230086
      Eric Botcazou committed
    • Workaround PR68256 on AArch64 · 3eece53d
      
      > This is causing a bootstrap comparison failure in gcc/go/gogo.o.
      
      I've had a look at this and the trigger is the
      aarch64_use_constant_blocks_p change which appears to be causing a
      bootstrap comparison failure because of differences to offsets when
      built with debug and without debug. I don't think the problem is
      specifically in the backend but this needs some careful
      investigation. For now, in the interest of go bootstraps continuing on
      trunk - I'm proposing a patch that partially rolls back the change in
      aarch64_use_constant_blocks_p and am still looking into the issue but
      it will take me some more time to get to the bottom of the issue.
      
      Bootstrapped on aarch64-none-linux-gnu including (c,c++ and go) -
      testing finished ok.
      
      2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
      	PR bootstrap/68256
      	* config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
      	Return false.
      
      From-SVN: r230085
      Ramana Radhakrishnan committed
    • parser.c (cp_finalize_oacc_routine): New boolean first argument. · 03310c37
      	gcc/cp/
      	* parser.c (cp_finalize_oacc_routine): New boolean first argument.
      	(cp_ensure_no_oacc_routine): Update call to cp_finalize_oacc_routine.
      	(cp_parser_simple_declaration): Maintain a boolean first to keep track
      	of each new declarator.  Propagate it to cp_parser_init_declarator.
      	(cp_parser_init_declarator): New boolean first argument.  Propagate it
      	to cp_parser_save_member_function_body and cp_finalize_oacc_routine.
      	(cp_parser_member_declaration): Likewise.
      	(cp_parser_single_declaration): Update call to
      	cp_parser_init_declarator.
      	(cp_parser_save_member_function_body): New boolean first_decl argument.
      	Propagate it to cp_finalize_oacc_routine.
      	(cp_parser_finish_oacc_routine): New boolean first argument.  Use it to
      	determine if multiple declarators follow a routine construct.
      	(cp_parser_oacc_routine): Update call to cp_parser_finish_oacc_routine.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/routine-5.c: Enable c++ tests.
      
      From-SVN: r230082
      Cesar Philippidis committed
    • PR c++/67913 - new expression with negative size not diagnosed · 685c8340
      PR c++/67913 - new expression with negative size not diagnosed
      PR c++/67927 - array new expression with excessive number of elements
                     not diagnosed 
      
      gcc/cp/
      	* call.c (build_operator_new_call): Do not assume size_check
      	is non-null, analogously to the top half of the function.
      	* init.c (build_new_1): Detect and diagnose array sizes in
      	excess of the maximum of roughly SIZE_MAX / 2.
      	Insert a runtime check only for arrays with a non-constant size.
      	(build_new): Detect and diagnose negative array sizes.
      
      gcc/testsuite/
      	* init/new45.C: New test to verify that operator new is invoked
      	with or without overhead for a cookie.
      	* init/new44.C: New test for placement new expressions for arrays
      	with excessive number of elements.
      	* init/new43.C: New test for placement new expressions for arrays
      	with negative number of elements.
      	* other/new-size-type.C: Expect array new expression with
      	an excessive number of elements to be rejected.
      
      From-SVN: r230081
      Martin Sebor committed
    • routine-1.c: New. · 36fa0f5f
      	gcc/testsuite/
      	* c-c++-common/goacc/routine-1.c: New.
      	* c-c++-common/goacc/routine-2.c: New.
      	* c-c++-common/goacc/routine-3.c: New.
      	* c-c++-common/goacc/routine-4.c: New.
      	* c-c++-common/goacc/routine-5.c: New.
      
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
      	* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
      	* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
      	* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
      	* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
      	* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.
      
      From-SVN: r230080
      Nathan Sidwell committed
    • re PR target/57845 (ICE with -freg-struct-return on SPARC) · fbae25c0
      	PR target/57845
      	* config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
      	not promote the mode for aggregate types.
      
      From-SVN: r230074
      Eric Botcazou committed
    • omp-low.h (replace_oacc_fn_attrib, [...]): Declare. · 3a40d81d
      	* omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
      	* omp-low.c (build_oacc_routine_dims): New.
      
      	c/
      	* c-parser.c (c_parser_declaration_or_fndef): Add OpenACC
      	routine arg.
      	(c_parser_declaration_or_fndef): Call c_finish_oacc_routine.
      	(c_parser_pragma): Parse 'acc routine'.
      	(OACC_ROUTINE_CLAUSE_MARK): Define.
      	(c_parser_oacc_routine, (c_finish_oacc_routine): New.
      
      	c-family/
      	* c-pragma.c (oacc_pragmas): Add "routine".
      	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ROUTINE.
      
      	cp/
      	* parser.h (struct cp_parser): Add oacc_routine field.
      	* parser.c (cp_ensure_no_oacc_routine): New.
      	(cp_parser_new): Initialize oacc_routine field.
      	(cp_parser_linkage_specification): Call cp_ensure_no_oacc_routine.
      	(cp_parser_namespace_definition,
      	cp_parser_class_specifier_1): Likewise.
      	(cp_parser_init_declarator): Call cp_finalize_oacc_routine.
      	(cp_parser_function_definition,
      	cp_parser_save_member_function_body): Likewise.
      	(OACC_ROUTINE_CLAUSE_MASK): New.
      	(cp_parser_finish_oacc_routine, cp_parser_oacc_routine,
      	cp_finalize_oacc_routine): New.
      	(cp_parser_pragma): Adjust omp_declare_simd checking.  Call
      	cp_ensure_no_oacc_routine.
      	(cp_parser_pragma): Add OpenACC routine handling.
      
      From-SVN: r230072
      Nathan Sidwell committed
    • Daily bump. · 7441dcf4
      From-SVN: r230069
      GCC Administrator committed
    • constraints.md (wF constraint): New constraints for power9/toc fusion. · 0299bc72
      [gcc]
      2015-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/constraints.md (wF constraint): New constraints
      	for power9/toc fusion.
      	(wG constraint): Likewise.
      
      	* config/rs6000/predicates.md (u6bit_cint_operand): New
      	predicate, recognize 0..63.
      	(upper16_cint_operand): New predicate for power9 and toc fusion.
      	(fpr_reg_operand): Likewise.
      	(toc_fusion_or_p9_reg_operand): Likewise.
      	(toc_fusion_mem_raw): Likewise.
      	(toc_fusion_mem_wrapped): Likewise.
      	(fusion_gpr_addis): If power9 fusion, allow fusion for a larger
      	address range.
      	(fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
      	instead.
      	(fusion_addis_mem_combo_load): Add support for power9 fusion of
      	floating point loads, floating point stores, and gpr stores.
      	(fusion_addis_mem_combo_store): Likewise.
      	(fusion_offsettable_mem_operand): Likewise.
      
      	* config/rs6000/rs6000-protos.h (emit_fusion_addis): Add
      	declarations.
      	(emit_fusion_load_store): Likewise.
      	(fusion_p9_p): Likewise.
      	(expand_fusion_p9_load): Likewise.
      	(expand_fusion_p9_store): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	(fusion_wrap_memory_address): Likewise.
      
      	* config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
      	elements for power9 fusion.
      	(rs6000_debug_print_mode): Rework debug information to print more
      	information about fusion.
      	(rs6000_init_hard_regno_mode_ok): Setup for power9 fusion
      	support.
      	(rs6000_legitimate_address_p): Recognize toc fusion as a valid
      	offsettable memory address.
      	(rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
      	(emit_fusion_gpr_load): Move most of the code from
      	emit_fusion_gpr_load into emit_fusion-addis that handles both
      	power8 and power9 fusion.
      	(emit_fusion_addis): Likewise.
      	(emit_fusion_load_store): Likewise.
      	(fusion_wrap_memory_address): Add support for TOC fusion.
      	(fusion_split_address): Likewise.
      	(fusion_p9_p): Add support for power9 fusion.
      	(expand_fusion_p9_load): Likewise.
      	(expand_fusion_p9_store): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      
      	* config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
      	new instructions in ISA 3.0.
      	(TARGET_CTZ): Likewise.
      	(TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
      	(TARGET_TOC_FUSION_FP): Likewise.
      
      	* config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
      	fusion unspecs.
      	(UNSPEC_FUSION_ADDIS): Likewise.
      	(QHSI mode iterator): New iterator for power9 fusion.
      	(GPR_FUSION): Likewise.
      	(FPR_FUSION): Likewise.
      	(mod<mode>3): Add support for ISA 3.0
      	modulus instructions.
      	(umod<mode>3): Likewise.
      	(divmod peephole): Likewise.
      	(udivmod peephole): Likewise.
      	(ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
      	instructions.
      	(ctz<mode>2_h): Likewise.
      	(ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
      	(ashdi3_extswsli_dot): Likewise.
      	(ashdi3_extswsli_dot2): Likewise.
      	(power9 fusion splitter): New power9/toc fusion support.
      	(toc_fusionload_<mode>): Likewise.
      	(toc_fusionload_di): Likewise.
      	(fusion_gpr_load_<mode>): Update predicate function.
      	(power9 fusion peephole2s): New power9/toc fusion support.
      	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
      	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
      	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
      	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
      	(fusion_p9_<mode>_constant): Likewise.
      
      [gcc/testsuite]
      2015-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* lib/target-supports.exp (check_p8vector_hw_available): Split
      	long line.
      	(check_vsx_hw_available): Likewise.
      	(check_p9vector_hw_available): Add new checks for ISA 3.0 hardware
      	support and for PowerPC float128 support.
      	(check_p9modulo_hw_available): Likewise.
      	(check_ppc_float128_sw_available): Likewise.
      	(check_ppc_float128_hw_available): Likewise.
      	(check_effective_target_powerpc_p9vector_ok): Likewise.
      	(check_effective_target_powerpc_p9modulo_ok): Likewise.
      	(check_effective_target_powerpc_float128_sw_ok): Likewise.
      	(check_effective_target_powerpc_float128_hw_ok): Likewise.
      	(is-effective-target): Add new PowerPc targets.
      	(is-effective-target-keyword): Likewise.
      	(check_vect_support_and_set_flags): If we have ISA 3.0 vector
      	instructions, use it.
      
      	* gcc.target/powerpc/mod-1.c: New test for ISA 3.0 instructions.
      	* gcc.target/powerpc/mod-2.c: Likewise.
      	* gcc.target/powerpc/ctz-1.c: Likewise.
      	* gcc.target/powerpc/ctz-2.c: Likewise.
      	* gcc.target/powerpc/extswsli-1.c: Likewise.
      	* gcc.target/powerpc/extswsli-2.c: Likewise.
      	* gcc.target/powerpc/extswsli-3.c: Likewise.
      
      	* gcc.target/powerpc/fusion.c (fusion_vector): Move to fusion2.c
      	and allow the test on PowerPC LE.
      	* gcc.target/powerpc/fusion2.c (fusion_vector): Likewise.
      	* gcc.target/powerpc/fusion3.c: New file, test power9 fusion.
      
      	* gcc.target/powerpc/float128-call.c: Use powerpc_float128_sw_ok
      	check instead of powerpc_vsx_ok.
      	* gcc.target/powerpc/float128-mix.c: Likewise.
      
      From-SVN: r230066
      Michael Meissner committed
  2. 09 Nov, 2015 18 commits
    • optabs.c (prepare_libcall_arg): New function. · cbb521e7
      2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
      
      	* optabs.c (prepare_libcall_arg): New function.
      	(expand_fixed_convert): Add call to prepare_libcall_arg.
      
      From-SVN: r230065
      Steve Ellcey committed
    • * gcc.dg/sso/*.c: Robustify dg-output directives. · 82669b68
      From-SVN: r230063
      Eric Botcazou committed
    • [sched] Dump dependency graph to a dot file · cdb0d947
      	* sched-int.h (dump_rgn_dependencies_dot): Declare
      	* sched-rgn.c (dump_rgn_dependencies_dot): New function
      	* print-rtl.h (print_insn): Add prototype
      
      From-SVN: r230062
      Nikolai Bozhenov committed
    • Change behavior of -fsched-verbose option · 4111f1c9
      	* haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
      	* common.opt (-fsched-verbose): Set default value to 1.
      	* invoke.texi (-fsched-verbose): Update the option's description.
      
      From-SVN: r230061
      Nikolai Bozhenov committed
    • visium.h (PRINT_OPERAND): Delete. · 01e83ff2
      	* config/visium/visium.h (PRINT_OPERAND): Delete.
      	(PRINT_OPERAND_PUNCT_VALID_P): Likewise.
      	(PRINT_OPERAND_ADDRESS): Likewise.
      	* config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
      	to...
      	(visium_print_operand_punct_valid_p): ...this.  New function.
      	(TARGET_PRINT_OPERAND): Define to...
      	(print_operand): Rename to...
      	(visium_print_operand): ...this.
      	(TARGET_PRINT_OPERAND_ADDRESS): Define to...
      	(visium_output_address): Rename to...
      	(visium_print_operand_address): ...this.
      	(print_operand_address): Delete.
      
      From-SVN: r230060
      Eric Botcazou committed
    • re PR middle-end/68259 ([sso] tree checking failure in… · a91c72e2
      re PR middle-end/68259 ([sso] tree checking failure in reverse_storage_order_for_component_p, at tree.h:4392)
      
      	PR middle-end/68259
      	* tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
      	Check that the type of the first operand is an aggregate type.
      
      From-SVN: r230056
      Eric Botcazou committed
    • omp-low.c: Fix some OpenACC comment typos. · 374d0225
      	* omp-low.c: Fix some OpenACC comment typos.
      	(lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
      	* omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
      	BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
      
      From-SVN: r230054
      Nathan Sidwell committed
    • 2015-11-09 François Dumont <fdumont@gcc.gnu.org> · ec494945
      	* include/bits/stl_algo.h
      	(partial_sort_copy): Instantiate std::iterator_traits only if concept
      	checks.
      	(lower_bound): Likewise.
      	(upper_bound): Likewise.
      	(equal_range): Likewise.
      	(binary_search): Likewise.
      	* include/bits/stl_heap.h (pop_heap): Likewise.
      
      From-SVN: r230052
      François Dumont committed
    • i386.md (*strmovqi_1): Fix insn enable condition. · 639fa8a3
      	* config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
      
      From-SVN: r230050
      Uros Bizjak committed
    • Re: [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier · 3d569e76
      	* tree-ssanames.c (verify_ssaname_freelists): Simplify check for
      	being in gimple/ssa form.  Remove redundant check for SSA_NAME.
      	Fix comment typo.
      
      From-SVN: r230049
      Jeff Law committed
    • pr66326.cc: Do not include cilk.h. · 4483f3ee
      	* g++.dg/cilk-plus/CK/pr66326.cc: Do not include cilk.h.
      	(main): Use _Cilk_spawn instead of cilk_spawn.
      
      From-SVN: r230048
      Uros Bizjak committed
    • Resolve DejaGnu hard stop · 4fe19f1d
      	gcc/testsuite/
      	* gcc.target/i386/addr-space-3.c: Fix quoting in dg-final
      	scan-assembler directive.
      
      From-SVN: r230038
      Thomas Schwinge committed
    • Support sized delete. · c518678b
      This adds transactional clones of the sized version of operator delete.
      
      From-SVN: r230036
      Torvald Riegel committed
    • rs6000.opt (-mpower9-fusion): Add new switches for ISA 3.0 (power9). · d1f0d376
      2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
      	ISA 3.0 (power9).
      	(-mpower9-vector): Likewise.
      	(-mpower9-dform): Likewise.
      	(-mpower9-minmax): Likewise.
      	(-mtoc-fusion): Likewise.
      	(-mmodulo): Likewise.
      	(-mfloat128-hardware): Likewise.
      
      	* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
      	mask for ISA 3.0 (power9).
      	(POWERPC_MASKS): Add new ISA 3.0 switches.
      	(power9 cpu): Add power9 cpu.
      
      	* config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for
      	power9.
      	(ASM_CPU_SPEC): Likewise.
      	(EXTRA_SPECS): Likewise.
      
      	* config/rs6000/rs6000-opts.h (enum processor_type): Add
      	PROCESSOR_POWER9.
      
      	* config/rs6000/rs6000.c (power9_cost): Initial cost setup for
      	power9.
      	(rs6000_debug_reg_global): Add support for power9 fusion.
      	(rs6000_setup_reg_addr_masks): Cache mode size.
      	(rs6000_option_override_internal): Until real power9 tuning is
      	added, use -mtune=power8 for -mcpu=power9.
      	(rs6000_setup_reg_addr_masks): Do not allow pre-increment,
      	pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
      	of Altivec registers.
      	(rs6000_option_override_internal): Add support for ISA 3.0
      	switches.
      	(rs6000_loop_align): Add support for power9 cpu.
      	(rs6000_file_start): Likewise.
      	(rs6000_adjust_cost): Likewise.
      	(rs6000_issue_rate): Likewise.
      	(insn_must_be_first_in_group): Likewise.
      	(insn_must_be_last_in_group): Likewise.
      	(force_new_group): Likewise.
      	(rs6000_register_move_cost): Likewise.
      	(rs6000_opt_masks): Likewise.
      
      	* config/rs6000/rs6000.md (cpu attribute): Add power9.
      	* config/rs6000/rs6000-tables.opt: Regenerate.
      
      	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
      	_ARCH_PWR9 if power9 support is available.
      
      	* config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
      	* config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
      
      	* configure.ac: Determine if the assembler supports the ISA 3.0
      	instructions.
      	* config.in (HAVE_AS_POWER9): Likewise.
      	* configure: Regenerate.
      
      	* doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
      	switches.
      
      From-SVN: r230031
      Michael Meissner committed
    • [AArch64][cleanup] Remove uses of CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW · ee78df47
      	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
      	Remove integer CONST_DOUBLE handling.  It should never occur.
      
      From-SVN: r230030
      Kyrylo Tkachov committed
    • [AArch64] PR target/68129: Define TARGET_SUPPORTS_WIDE_INT · 2ca5b430
      	PR target/68129
      	* config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
      	* config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
      	Delete VOIDmode case.  Assert that mode is not VOIDmode.
      	* config/aarch64/predicates.md (const0_operand): Remove const_double
      	match.
      
      	* gcc.dg/pr68129_1.c: New test.
      
      From-SVN: r230029
      Kyrylo Tkachov committed
    • Fix memory leaks in IPA. · c3431191
      	* ipa-inline-analysis.c (estimate_function_body_sizes): Call
      	body_info release function.
      	* ipa-prop.c (ipa_release_body_info): New function.
      	(ipa_analyze_node): Call the function.
      	(ipa_node_params::~ipa_node_params): Release known_csts.
      	* ipa-prop.h (ipa_release_body_info): Declare.
      
      From-SVN: r230028
      Martin Liska committed
    • Fix memory leaks and use a pool_allocator · af121e82
      	* gcc.c (record_temp_file): Release name string.
      	* ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead
      	of vec.
      	* lra-lives.c (free_live_range_list): Utilize
      	lra_live_range_pool for allocation and deallocation.
      	(create_live_range): Likewise.
      	(copy_live_range): Likewise.
      	(lra_merge_live_ranges): Likewise.
      	(remove_some_program_points_and_update_live_ranges): Likewise.
      	(lra_create_live_ranges_1): Release point_freq_vec that can
      	be not freed from previous iteration of the function.
      	* tree-eh.c (lower_try_finally_switch): Use auto_vec instead of
      	vec.
      	* tree-sra.c (sra_deinitialize): Release all vectors in
      	base_access_vec.
      	* tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
      	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
      	Release edge_info for a removed edge.
      	(thread_through_all_blocks): Free region vector.
      	* tree-ssa.h (free_dom_edge_info): Declare function extern.
      
      From-SVN: r230027
      Martin Liska committed