PR 68432: Add a target hook to control size/speed optab choices
[platform/upstream/gcc.git] / gcc / ChangeLog
index c021524..b7e853d 100644 (file)
@@ -1,3 +1,718 @@
+2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/68432
+       * coretypes.h (optimization_type): New enum.
+       * doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook.
+       * doc/tm.texi: Regenerate.
+       * target.def (optab_supported_p): New hook.
+       * targhooks.h (default_optab_supported_p): Declare.
+       * targhooks.c (default_optab_supported_p): New function.
+       * predict.h (function_optimization_type): Declare.
+       (bb_optimization_type): Likewise.
+       * predict.c (function_optimization_type): New function.
+       (bb_optimization_type): Likewise.
+       * optabs-query.h (convert_optab_handler): Define an overload
+       that takes an optimization type.
+       (direct_optab_handler): Likewise.
+       * optabs-query.c (convert_optab_handler): Likewise.
+       (direct_optab_handler): Likewise.
+       * internal-fn.h (direct_internal_fn_supported_p): Take an
+       optimization_type argument.
+       * internal-fn.c (direct_optab_supported_p): Likewise.
+       (multi_vector_optab_supported_p): Likewise.
+       (direct_internal_fn_supported_p): Likewise.
+       * builtins.c (replacement_internal_fn): Update call to
+       direct_internal_fn_supported_p.
+       * gimple-match-head.c (build_call_internal): Likewise.
+       * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
+       * tree-vect-stmts.c (vectorizable_internal_function): Likewise.
+       * tree.c (maybe_build_call_expr_loc): Likewise.
+       * config/i386/i386.c (ix86_optab_supported_p): New function.
+       (TARGET_OPTAB_SUPPORTED_P): Define.
+       * config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check.
+       (asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2)
+       (expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2)
+       (exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3)
+       (scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2)
+       (<rounding_insn>xf2, <rounding_insn><mode>2): Likewise.
+
+2015-12-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * Makefile.in (GENSUPPORT_H): New macro.
+       (build/gensupport.o, build/read-rtl.o, build/genattr.o)
+       (build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
+       (build/gencodes.o, build/genconditions.o, build/genconfig.o)
+       (build/genconstants.o, build/genextract.o, build/genflags.o)
+       (build/gentarget-def.o): Use it.
+       (build/genemit.o): Likewise.  Depend on internal-fn.def.
+       * genopinit.c: Move block comment to optabs.def.
+       (optab_tag, optab_def): Move to gensupport.h
+       (pattern): Likewise, renaming to optab_pattern.
+       (match_pattern): Move to gensupport.c
+       (gen_insn): Use find_optab.
+       (patterns, pattern_cmp): Replace pattern with optab_pattern.
+       (main): Likewise.  Use num_optabs.
+       * optabs.def: Add comment that was previously in genopinit.c.
+       * gensupport.h (optab_tag): Moved from genopinit.c
+       (optab_def): Likewise, expanding commentary.
+       (optab_pattern): Likewise, after renaming from pattern.
+       (optabs, num_optabs, find_optab): Declare.
+       * gensupport.c (optabs): Moved from genopinit.c.
+       (num_optabs): New variable.
+       (match_pattern): Moved from genopinit.c.
+       (find_optab): New function, extracted from genopinit.c:gen_insn.
+       * genemit.c (nofail_optabs): New variable.
+       (emit_c_code): New function.
+       (gen_expand): Check whether the instruction is an optab that isn't
+       allowed to fail.  Call emit_c_code.
+       (gen_split): Call emit_c_code here too.
+       (main): Initialize nofail_optabs.  Don't emit FAIL and DONE here.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/predicates.md (const_mask_operand): New predicate.
+       * config/s390/s390-builtins.def: Set a smaller bitmask for a few builtins.
+       * config/s390/vector.md: Change predicate from immediate_operand
+       to either const_int_operand or const_mask_operand.  Add special
+       insn conditions on patterns which have to exclude certain values.
+       * config/s390/vx-builtins.md: Likewise.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/vector.md ("*vec_set<mode>"): Change shift count
+       mode from DI to SI.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390-builtin-types.def: New builtin types added.
+       * config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
+       * config/s390/s390.c (s390_expand_builtin): Always truncate
+       constants to the mode in the pattern.
+       * config/s390/vecintrin.h: Let the vec_splat_* macros point to the
+       respective builtin __builtin_s390_vec_splat_*.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390-builtin-types.def: Sort builtin types.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390-c.c (s390_get_vstring_flags): Invert the
+       condition for the RT flag.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/constraints.md ("jKK"): New constraint.
+       * config/s390/s390.c (tm-constrs.h): Include for
+       satisfies_constraint_*.
+       (s390_legitimate_constant_p): Allow jKK constants.  Use
+       satisfies_constraint_* also for the others.
+       (legitimate_reload_vector_constant_p): Likewise.
+       (print_operand): Allow h output modifier on vectors.
+       * config/s390/vector.md ("mov<mode>"): Add vrepi.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
+       latter I->K.
+
+2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md ("bswap<mode>2"): Add support for strv and
+       strvg.
+       ("bswaphi2"): New pattern.
+       New splitter for HI reg-reg bswap.
+
+2015-11-27  Jiri Engelthaler  <engycz@gmail.com>
+
+       PR driver/68029
+       * opts-common.c (prune_options): Don't ignore -fdiagnostics-color 
+       if it is the first parameter.
+
+2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/68577
+       * tree-vect-stmts.c (simple_integer_narrowing): New function.
+       (vectorizable_call): Restrict internal function handling
+       to NONE and NARROW cases, using simple_integer_narrowing
+       to test for the latter.  Add cost of narrowing operation
+       and insert it where necessary.
+
+2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>
+
+       * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
+       (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
+       rs6000_current_abi to ABI_AIX or ABI_ELFv2.
+
+2015-12-01  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
+       * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
+       ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
+       * config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
+       (write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
+       (init_output_initializer): Call write_var_marker.
+       (nvptx_output_aligned_decl): New.
+       (nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.
+
+2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
+
+       * c-common.c (parse_optimize_options): Do not silently ignore
+       -fstrict-aliasing changes.
+
+2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
+
+       * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
+       * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
+       stream TYPE_ALIAS_SET.
+       * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
+       stream TYPE_ALIAS_SET.
+
+2015-12-01  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
+       consider mode.
+
+2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
+       indirection for large and small code models.
+       (adjust_vperm): Likewise.
+
+2015-12-01  Julian Brown  <julian@codesourcery.com>
+           Cesar Philippidis  <cesar@codesourcery.com>
+           James Norris  <James_Norris@mentor.com>
+
+       * gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
+       support.
+       * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
+       (is_gimple_omp_oacc): Add support for above.
+       * gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
+       (omp_notice_variable): Diagnose undefined implicit uses of
+       use_device variables in offloaded regions.
+       (gimplify_scan_omp_clauses): Add host_data, use_device
+       support. Diagnose undefined mapping of use_device variables in
+       OpenACC clauses.
+       (gimplify_omp_workshare): Add host_data support.
+       (gimplify_expr): Likewise.
+       * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
+       * omp-low.c (lookup_decl_in_outer_ctx)
+       (maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
+       host_data regions.
+       (scan_sharing_clauses): Support use_device.
+       (check_omp_nesting_restrictions): Support host_data.
+       (expand_omp_target): Support host_data.
+       (lower_omp_target): Skip over outer host_data regions when looking
+       up decls. Support use_device.
+       (make_gimple_omp_edges): Support host_data.
+       * tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
+       clause.
+
+2015-12-01  Marek Polacek  <polacek@redhat.com>
+
+       PR middle-end/68582
+       * cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
+       for VAR_DECLs.
+
+2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/68474
+       * tree-call-cdce.c (use_internal_fn): Protect call to
+       gen_shrink_wrap_conditions.
+
+2015-12-01  Christian Bruel  <christian.bruel@st.com>
+
+       PR target/68617
+       * config/arm/arm.opt (unaligned_access): Save.
+       * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
+       * config/arm/arm.c (arm_option_override): Move unaligned_access setting
+       (arm_option_override_internal): ... here.
+       * config/arm/arm.h (TARGET_32BIT_P): New macro.
+
+2015-12-01  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/68379
+       * tree-vect-stmts.c (vectorizable_load): For BB vectorization
+       always base loads on the first used DR of a group.
+       * tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
+       Compute alignment of the first scalar element unconditionally.
+
+2015-12-01  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/68590
+       * genmatch.c (struct capture_info): Add match_use_count.
+       (capture_info::walk_match): Increment match_use_count.
+       (dt_simplify::gen_1): For GENERIC, only wrap multi-use
+       replacements in a save_expr if they occur more often than
+       in the original expression.
+
+2015-12-01  Richard Biener  <rguenther@suse.de>
+
+       PR ipa/68470
+       * ipa-split.c (split_function): Handle main part not returning.
+
+2015-12-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       PR middle-end/68595
+       * tree-vect-stmts.c (vect_init_vector): Cast boolean
+       scalars to a proper value before building a vector.
+
+2015-12-01  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * genattrtab.c (check_attr_test): Take an attr_desc instead of
+       an is_const flag.  Put the file_location argument first.
+       Update recursive calls.  Improve error messages.
+       (check_attr_value): Take a file location and use it instead
+       of attr->loc.  Improve error messages.  Update calls to
+       check_attr_test.
+       (check_defs): Update call to check_attr_value.
+       (make_canonical): Likewise.
+       (gen_attr): Likewise.
+       (main): Likewise.
+       (gen_insn_reserv): Update call to check_attr_test.
+
+2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.
+
+2015-12-01  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/68590
+       * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.
+
+2015-12-01  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
+       odr_type_p): Move to ...
+       * ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
+       odr_type_p): here; miscro-optimize.
+
+2015-12-01  Bin Cheng  <bin.cheng@arm.com>
+
+       PR tree-optimization/68529
+       * tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
+       Compute no-overflow information for control iv.
+       (number_of_iterations_lt, number_of_iterations_le): Add new param.
+       (number_of_iterations_cond): Pass new argument to above functions.
+
+2015-11-30  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
+       inlining -fno-strict-aliasing into -fstrict-aliasing body.
+
+2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
+           Sebastian Pop  <s.pop@samsung.com>
+
+       PR tree-optimization/68565
+       * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
+       codegen_error.  Fail when rhs of division operations is integer_zerop.
+       (ternary_op_to_tree): Early return on codegen_error.
+       (unary_op_to_tree): Same.
+       (nary_op_to_tree): Same.
+       (gcc_expression_from_isl_expr_op): Same.
+       (gcc_expression_from_isl_expression): Same.
+       (graphite_create_new_loop): On codegen_error continue generating
+       wrong code.
+       (graphite_create_new_loop_guard): Same.
+       (build_iv_mapping): Same.
+       (graphite_create_new_guard): Same.
+
+2015-11-30  Aditya Kumar  <aditya.k7@samsung.com>
+           Sebastian Pop  <s.pop@samsung.com>
+
+       * graphite-isl-ast-to-gimple.c: Fix dump messages.
+       * graphite-scop-detection.c: Same.
+       * graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name.
+
+2015-11-30  Cesar Philippidis  <cesar@codesourcery.com>
+
+       * tree-nested.c (convert_nonlocal_omp_clauses): Add support for
+       OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
+       (convert_local_omp_clauses): Likewise.
+
+2015-11-30  Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/46032
+       * tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
+       factored out of ...
+       (find_func_aliases_for_call): ... here.
+       (find_func_aliases_for_builtin_call, find_func_clobbers): Handle
+       BUILT_IN_GOMP_PARALLEL.
+       (ipa_pta_execute): Same.  Handle node->parallelized_function as a local
+       function.
+
+2015-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/68501
+       * target.def (builtin_reciprocal): Replace the 3 arguments with
+       a gcall * one, adjust description.
+       * targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
+       with a gcall * one.
+       * targhooks.c (default_builtin_reciprocal): Likewise.
+       * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
+       targetm.builtin_reciprocal even on internal functions, adjust
+       the arguments and allow replacing an internal function with normal
+       built-in.
+       * config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
+       with a gcall * one.  Handle internal fns too.
+       * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
+       * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
+       * doc/tm.texi (builtin_reciprocal): Document.
+
+2015-11-30  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/68592
+       * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
+       on the pattern def sequence.
+
+2015-11-30  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
+       (write_one_arg): Reorder parms, add 'sep' param.
+       (nvptx_write_function_decl): Rename to ...
+       (write_fn_proto): ... here.  Do name replacement. Emit linaer
+       comment marker. Deal with both decls and defns. Simplify argument
+       formatting.
+       (write_function_decl_and_comment): Delete.
+       (write_func_decl_from_insn): Rename to ...
+       (write_fn_proto_from_insn): ... here.  Don't do name replacement.
+       (nvptx_record_fndecl): Call write_fn_proto.
+       (nvptx_record_libfunc): Call write_fn_proto_from_insn.
+       (nvptx_declare_function_name): Adjust for write_fn_proto changes.
+       (nvotx_output_call_insn): Call write_fn_prot_from_insn.
+
+2015-11-30  Kirill Yukhin  <kirill.yukhin@intel.com>
+
+       * config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
+       (define_insn "*k<logic><mode>"): Use new iterator.
+
+2015-11-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/28115
+       * config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
+       (sparc_adjust_cost): Add missing space.
+
+2015-11-30  Richard Biener  <rguenther@suse.de>
+
+       PR c/68162
+       * dwarf2out.c (gen_type_die_with_usage): Keep variant types
+       of arrays.
+
+2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
+
+       * tree-if-conv.c (struct ifc_dr): Add new tree
+       base_predicate field.
+       (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
+       base ref, DR pairs and store base_predicate for write type DRs.
+       (ifcvt_memrefs_wont_trap): Guard checks with
+       -ftree-loop-if-convert-stores flag.
+
+2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cgraph.c (cgraph_node::make_local): No name is unique during
+       incremental linking.
+       * cgraph.h (can_be_discarded_p): Update comment; also common and
+       WEAK in named sections can be discarded; when doing incremental
+       link do not rely on resolution being the final one.
+       * varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
+       When symbol can be discarded, do not rely on resolution info.
+       * symtab.c (symtab_node::nonzero_address): Take into account that
+       symbol can be discarded.
+       * ipa-visibility.c (update_visibility_by_resolution_info): Handle
+       definition correctly.
+       (function_and_variable_visibility): Do not set unique_name when
+       incrementally linking.
+
+2015-11-29  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
+       const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
+       (ctrap<mode>): Use const0_operand.
+
+2015-11-29  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
+       dump
+
+2015-11-29  David Edelsohn  <dje.gcc@gmail.com>
+
+       PR target/28115
+       * config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
+       recog_memoized test for insn and check recog_memoized for dep_insn.
+
+2015-11-28  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
+       (FRAME_POINTER_CFA_OFFSET): Define.
+       (struct nvptx_args): Use 'tree' type.
+       (INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
+
+2015-11-28  Tom de Vries  <tom@codesourcery.com>
+
+       * lto-wrapper.c (run_gcc): Handle -flinker-output argument.
+
+2015-11-27  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/invoke.texi (Option Summary): Use negative form of
+       -Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
+       sort alphabetically and re-justify.
+
+2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/68536
+       * lra.c (lra_emit_add): Add code for null base.
+       * lra-constraints.c (curr_insn_transform): Skip operators for
+       subreg reloads.
+
+2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       Revert
+       2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
+       multiple_sets.
+       (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
+       are not modified by the final modified insns in the basic blocks.
+
+2015-11-27  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
+       Don't declare.
+       * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
+       (nvptx_maybe_convert_symbolic_operand): Simplify.
+       (nvptx_addr_space_from_address): Delete.
+       (nvptx_print_operand): Adjust 'A' case.
+
+2015-11-27  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/68559
+       * tree-vect-data-refs.c (vect_analyze_group_access_1): Move
+       peeling for gap checks ...
+       * tree-vect-stmts.c (vectorizable_load): ... here and relax
+       for SLP.
+       * tree-vect-loop.c (vect_analyze_loop_2): Re-set
+       LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.
+
+2015-11-27  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
+       declare.
+       * config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
+       (nvptx_record_fndecl): Don't return value, remove force
+       argument. Require fndecl.
+       (nvptx_record_libfunc): New.
+       (nvptx_record_needed_decl): Deteermine how to record decl here.
+       (nvptx_maybe_record_fnsym): New.
+       (nvptx_expand_call): Don't record libfuncs here,
+       (nvptx_maybe_convert_symbolic_operand): Use
+       nvptx_maye_record_fnsym.
+       (nvptx_assemble_integer): Reimplement with single switch.
+       (nvptx_output_call_insn): Register libfuncs here.
+       (nvptx_file_end): Adjust  nvptx_record_fndecl call.
+       * config/nvptx/nvptx.md (expand_movdi): Don't call
+       nvptx_record_needed_decl.
+
+2015-11-27  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/68553
+       * tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
+       generation for 1:1 permutations.
+       (vect_transform_slp_perm_load): Detect 1:1 permutations.
+
+2015-11-27  Bernd Schmidt  <bschmidt@redhat.com>
+
+       * gimple.h (nonbarrier_call_p): Declare.
+       * gimple.c (nonbarrier_call_p): New function.
+       * tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
+       Also increment call phase for ASMs with vdef and potential barrier
+       calls.
+
+2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
+       multiple_sets.
+       (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
+       are not modified by the final modified insns in the basic blocks.
+
+2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR rtl-optimization/68506
+       * ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
+       first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
+       blocks.
+
+2015-11-27  Martin Liska  <mliska@suse.cz>
+
+       PR c++/68312
+       * vec.h (release_vec_vec): New function.
+
+2015-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/68552
+       * optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
+       (expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
+       or whether v0 == v1.
+
+2015-11-27  Martin Liska  <mliska@suse.cz>
+
+       * tree-ssa-uninit.c: Fix whitespaces in the source file.
+       The change is just automatical.
+
+2015-11-27  Martin Liska  <mliska@suse.cz>
+
+       * tree-chkp.c (chkp_make_static_bounds): Release buffer
+       used for string.
+
+2015-11-27  Martin Liska  <mliska@suse.cz>
+
+       * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
+       Do not release memory for comp_alias_ddrs.
+       * tree-vect-loop.c (destroy_loop_vec_info): Release
+       the memory for all loop_vec_info.
+
+2015-11-27  Martin Liska  <mliska@suse.cz>
+
+       * ipa-devirt.c (ipa_devirt): Use auto_vec instead
+       of a local-scope vec.
+       (struct final_warning_record): Use auto_vec instead
+       of vec.
+
+2015-11-27  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/68553
+       * tree-vect-slp.c (vect_get_mask_element): Remove.
+       (vect_transform_slp_perm_load): Implement in a simpler way.
+
+2015-11-26  Alexandre Oliva <aoliva@redhat.com>
+
+       PR rtl-optimization/67753
+       PR rtl-optimization/64164
+       * function.c (assign_parm_setup_block): Right-shift
+       upward-padded big-endian args when bypassing the stack slot.
+
+2015-11-26  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
+       `-mcompact-branches='.
+       (MIPS Options): Likewise.
+
+2015-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
+
+2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
+
+       * doc/install.texi (Prerequisites): Increase ISL requirement to
+       0.14 or 0.15.
+
+2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/arm_neon.h
+       (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
+       (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
+       (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
+       (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
+       (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
+       (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
+       (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
+       (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
+       (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
+       (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
+       (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
+       (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
+
+2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
+       (vqrdmlahq_s16, vqrdmlahq_s32): New.
+       (vqrdmlsh_s16, vqrdmlsh_s32): New.
+       (vqrdmlshq_s16, vqrdmlshq_s32): New.
+
+2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
+       ARM_FEATURE_QRDMX.
+
+2015-11-26  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       PR debug/53927
+       * tree-nested.c (finalize_nesting_tree_1): Append a field to
+       hold the frame base address.
+       * dwarf2out.c (gen_subprogram_die): Generate for
+       DW_AT_static_link a location description that computes the value
+       of this field.
+
+2015-11-26  Tom de Vries  <tom@codesourcery.com>
+
+       revert:
+       2015-11-25  Tom de Vries  <tom@codesourcery.com>
+
+       * cfgloop.c (find_single_latch): New function, factored out of ...
+       (flow_loops_find): ... here.
+       (verify_loop_structure): Improve verification of loop->latch.
+       * cfgloop.h (find_single_latch): Declare.
+       * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
+
+2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/aarch64-simd-builtins.def:
+       Add missing changes from r230962.
+
+2015-11-26  Nathan Sidwell  <nathan@acm.org>
+
+       * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
+       arg with name.  Don't deal with split regs.  Tweak formatting.
+       (nvptx_expand_call): Adjust write_func_decl_from_insn call.
+       (nvptx_output_call_insn): Don't deal with split regs here.
+
+2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/aarch64-simd-builtins.def
+       (sqrdmlah, sqrdmlsh): New.
+       (sqrdmlah_lane, sqrdmlsh_lane): New.
+       (sqrdmlah_laneq, sqrdmlsh_laneq): New.
+
+2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/aarch64-simd.md
+       (aarch64_sqmovun<mode>): Fix some white-space.
+       (aarch64_<sur>qmovun<mode>): Likewise.
+       (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
+       (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
+       (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
+       * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
+       (UNSPEC_SQRDMLSH): New.
+       (SQRDMLH_AS): New.
+       (rdma_as): New.
+
+2015-11-26  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/66721
+       * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
+       iteration cost earlier.  Re-do analysis without SLP when
+       vectorization using SLP fails and without has a chance to succeed.
+
+2015-11-26  Richard Biener  <rguenther@suse.de>
+
+       * genmatch.c (dt_simplify::gen_1): For generic wrap all
+       multi-result-use captures in a SAVE_EXPR.
+
+2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
+       (TARGET_SIMD_RDMA): New.
+
+2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * combine.c (subst): Do not return clobber of zero in widening mult
+       case.  Just return x unchanged if it is a no-op substitution.
+
+2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/68416
+       * config/i386/i386.h (enum reg_class): Add
+       bounds registers to ALL_REGS.
+
 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/68128
 
 2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>
 
-       * gcc/config/aarch64/aarch64.md (add<mode>3):
+       * config/aarch64/aarch64.md (add<mode>3):
        Block early expansion into 2 add instructions.
        (add<mode>3_pluslong): New pattern to combine complex
        immediates into 2 additions.
        PR tree-optimization/68327
        * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
        compute vectype for non-relevant mask producers.
-       * gcc/tree-vect-stmts.c (vectorizable_comparison): Check stmt
+       * tree-vect-stmts.c (vectorizable_comparison): Check stmt
        relevance earlier.
 
 2015-11-23  Tom de Vries  <tom@codesourcery.com>
 
 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
 
-       * gcc/omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
+       * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
        (oacc_loop_fixed_partitions): Correct return type to bool.
        (oacc_loop_auto_partitions): New.
        (oacc_loop_partition): Take mask argument, call
 
 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
 
-       * gcc/cprop.c (is_too_expensive): Remove.
+       * cprop.c (is_too_expensive): Remove.
        (gcse.h): Include.
        (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
        is_too_expensive.
-       * gcc/gcse.h (gcse_or_cprop_is_too_expensive): Declare.
-       * gcc/gcse.c (is_too_expensive): Rename to ...
+       * gcse.h (gcse_or_cprop_is_too_expensive): Declare.
+       * gcse.c (is_too_expensive): Rename to ...
        (gcse_or_cprop_is_too_expensive): ... this.
        Expand warning to add required size of max-gcse-memory.
        (one_pre_gcse_pass): Use it.
        (one_code_hoisting_pass): Use it.
-       * gcc/params.def (max-gcse-memory): Increase from 50MB to 128MB.
+       * params.def (max-gcse-memory): Increase from 50MB to 128MB.
 
 2015-11-12  James Norris  <jnorris@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>