arm.opt (masm-syntax-unified): New option.
[platform/upstream/gcc.git] / gcc / ChangeLog
index 2d6824d..2aa7278 100644 (file)
+2014-11-07  Terry Guo  <terry.guo@arm.com>
+
+       * config/arm/arm.opt (masm-syntax-unified): New option.
+       * doc/invoke.texi (-masm-syntax-unified): Document new option.
+       * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
+       (ASM_APP_ON): Redefined.
+       * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
+       code always use UAL syntax.
+       (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
+       * config/arm/thumb1.md: Likewise.
+
+2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
+
+       * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
+       Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
+       or in_call_delay.
+       
+2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
+
+       * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
+       Set default_mips_arch and default_mips_abi instead of tm_defines.
+       (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
+       of tm_defines.
+       (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
+       * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
+       based on MIPS_ABI_DEFAULT.
+       (STANDARD_STARTFILE_PREFIX_2): Ditto.
+
+2014-11-06  Joseph Myers  <joseph@codesourcery.com>
+
+       * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
+       cases of extended identifiers.
+
+2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
+
+2014-11-06  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
+       conditional.
+       (movhicc_<code>_<mode>): Likewise.
+       * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
+       subregs.
+       (m32c_eh_return_data_regno): Change to using memregs to avoid
+       tying up all the compute regs.
+       (m32c_legitimate_address_p) Subregs are not valid addresses.
+
+2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * target.def (call_args, end_call_args): New hooks.
+       * hooks.c (hook_void_rtx_tree): New empty function.
+       * hooks.h (hook_void_rtx_tree): Declare.
+       * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
+       * doc/tm.texi: Regenerate.
+       * calls.c (expand_call): Slightly rearrange the code.  Use the two new
+       hooks.
+       (expand_library_call_value_1): Use the two new hooks.
+
+       * expr.c (use_reg_mode): Just return for pseudo registers.
+
+       * combine.c (try_combine): Don't allow a call as one of the source
+       insns.
+
+       * target.def (decl_end): New hook.
+       * varasm.c (assemble_variable_contents, assemble_constant_contents):
+       Use it.
+       * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
+       * doc/tm.texi: Regenerate.
+
+2014-11-06  Renlin Li  <renlin.li@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_architecture_version): New.
+       (processor): New architecture_version field.
+       (aarch64_override_options): Initialize aarch64_architecture_version.
+       * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
+       __ARM_ARCH_PROFILE, aarch64_arch_name macro.
+
+2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * params.def (sra-max-scalarization-size-Ospeed): New.
+       (sra-max-scalarization-size-Osize): Likewise.
+       * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
+       (sra-max-scalarization-size-Osize): Likewise.
+       * toplev.c (process_options): Set default values for new
+       parameters.
+       * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
+       * targhooks.c (get_move_ratio): Remove static designator.
+       * target.h (get_move_ratio): Declare.
+
+2014-11-06  Marek Polacek  <polacek@redhat.com>
+
+       * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
+       Remove vector limit.
+
+2014-11-06  Richard Biener  <rguenther@suse.de>
+
+       * match.pd: Implement bitwise binary and unary simplifications
+       from tree-ssa-forwprop.c.
+       * fold-const.c (fold_unary_loc): Remove them here.
+       (fold_binary_loc): Likewise.
+       * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
+       (truth_valued_ssa_name): Likewise.
+       (lookup_logical_inverted_value): Likewise.
+       (simplify_bitwise_binary_1): Likewise.
+       (hoist_conversion_for_bitop_p): Likewise.
+       (simplify_bitwise_binary_boolean): Likewise.
+       (simplify_bitwise_binary): Likewise.
+       (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
+       and simplify_bitwise_binary.
+       * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
+       (decision_tree::insert): Also insert non-expressions.
+
+2014-11-06  Hale Wang  <hale.wang@arm.com>
+
+       * config/arm/arm-cores.def: Add support for
+       -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
+       cortex-m1.small-multiply.
+       * config/arm/arm-tables.opt: Regenerate.
+       * config/arm/arm-tune.md: Regenerate.
+       * config/arm/arm.c: Update the rtx-costs for MUL.
+       * config/arm/bpabi.h: Handle
+       -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
+       cortex-m1.small-multiply.
+       * doc/invoke.texi: Document
+       -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
+       cortex-m1.small-multiply.
+
+2014-11-06  Hale Wang  <hale.wang@arm.com>
+
+       * config/arm/arm.c: Add cortex-m7 tune.
+       * config/arm/arm-cores.def: Use cortex-m7 tune.
+
+2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/63538
+       * config/i386/i386.c (in_large_data_p): Reject automatic variables.
+       (ix86_encode_section_info): Do not check for non-automatic varibles
+       when setting SYMBOL_FLAG_FAR_ADDR flag.
+       (x86_64_elf_select_section): Do not check ix86_cmodel here.
+       (x86_64_elf_unique_section): Ditto.
+       (x86_elf_aligned_common): Emit tab before .largecomm.
+
+2014-11-05  Joseph Myers  <joseph@codesourcery.com>
+
+       PR preprocessor/9449
+       * doc/cpp.texi (Character sets, Tokenization)
+       (Implementation-defined behavior): Don't refer to UCNs in
+       identifiers requiring -fextended-identifiers.
+       * doc/cppopts.texi (-fextended-identifiers): Document as enabled
+       by default for C99 and later and C++.
+       * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
+       identifiers needing -fextended-identifiers.
+
+2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
+
+       * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
+       for 512-bit wide modes.
+       (expand_vec_perm_1): Use correct versions of patterns.
+       * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
+       (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
+
+2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
+
+       * ipa-chkp.c: New.
+       * ipa-chkp.h: New.
+       * tree-chkp.c: New.
+       * tree-chkp.h: New.
+       * tree-chkp-opt.c: New.
+       * rtl-chkp.c: New.
+       * rtl-chkp.h: New.
+       * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
+       tree-chkp-opt.o.
+       (GTFILES): Add tree-chkp.c.
+       * mode-classes.def (MODE_POINTER_BOUNDS): New.
+       * tree.def (POINTER_BOUNDS_TYPE): New.
+       * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
+       (POINTER_BOUNDS_MODE): New.
+       (make_pointer_bounds_mode): New.
+       * machmode.h (POINTER_BOUNDS_MODE_P): New.
+       * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
+       (layout_type): Support POINTER_BOUNDS_TYPE.
+       * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
+       * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
+       * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
+       (type_contains_placeholder_1): Likewise.
+       (build_common_tree_nodes): Initialize
+       pointer_bounds_type_node.
+       * tree.h (POINTER_BOUNDS_TYPE_P): New.
+       (pointer_bounds_type_node): New.
+       (POINTER_BOUNDS_P): New.
+       (BOUNDED_TYPE_P): New.
+       (BOUNDED_P): New.
+       (CALL_WITH_BOUNDS_P): New.
+       * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
+       (gimple_call_with_bounds_p): New.
+       (gimple_call_set_with_bounds): New.
+       (gimple_return_retbnd): New.
+       (gimple_return_set_retbnd): New
+       * gimple.c (gimple_build_return): Increase number of ops
+       for return statement.
+       (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
+       flag.
+       * gimple-pretty-print.c (dump_gimple_return): Print second op.
+       * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
+       * gimplify.c (gimplify_init_constructor): Avoid infinite
+       loop during gimplification of bounds initializer.
+       * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
+       (special_function_p): Use original decl name when analyzing
+       instrumentation clone.
+       (arg_data): Add fields special_slot, pointer_arg and
+       pointer_offset.
+       (store_bounds): New.
+       (emit_call_1): Propagate instrumentation flag for CALL.
+       (initialize_argument_information): Compute pointer_arg,
+       pointer_offset and special_slot for pointer bounds arguments.
+       (finalize_must_preallocate): Preallocate when storing bounds
+       in bounds table.
+       (compute_argument_addresses): Skip pointer bounds.
+       (expand_call): Store bounds into tables separately.  Return
+       result joined with resulting bounds.
+       * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
+       (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
+       (expand_return): Add returned bounds arg.  Handle returned bounds.
+       (expand_gimple_stmt_1): Adjust to new expand_return signature.
+       (gimple_expand_cfg): Reset rtx bounds map.
+       * expr.c: Include tree-chkp.h, rtl-chkp.h.
+       (expand_assignment): Handle returned bounds.
+       (store_expr_with_bounds): New.  Replaces store_expr with new bounds
+       target argument.  Handle bounds returned by calls.
+       (store_expr): Now wraps store_expr_with_bounds.
+       * expr.h (store_expr_with_bounds): New.
+       * function.c: Include tree-chkp.h, rtl-chkp.h.
+       (bounds_parm_data): New.
+       (use_register_for_decl): Do not registerize decls used for bounds
+       stores and loads.
+       (assign_parms_augmented_arg_list): Add bounds of the result
+       structure pointer as the second argument.
+       (assign_parm_find_entry_rtl): Mark bounds are never passed on
+       the stack.
+       (assign_parm_is_stack_parm): Likewise.
+       (assign_parm_load_bounds): New.
+       (assign_bounds): New.
+       (assign_parms): Load bounds and determine a location for
+       returned bounds.
+       (diddle_return_value_1): New.
+       (diddle_return_value): Handle returned bounds.
+       * function.h (rtl_data): Add field for returned bounds.
+       * varasm.c: Include tree-chkp.h.
+       (output_constant): Support POINTER_BOUNDS_TYPE.
+       (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
+       (ultimate_transparent_alias_target): Move up.
+       (make_decl_rtl): For instrumented function use
+       name of the original decl.
+       (assemble_start_function): Mark function as global
+       in case it is instrumentation clone of the global
+       function.
+       (do_assemble_alias): Follow transparent alias chain
+       for identifier.  Check if original alias is public.
+       (maybe_assemble_visibility): Use visibility of the
+       original function for instrumented version.
+       (default_unique_section): Likewise.
+       * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
+       (init_emit_once): Build pointer bounds zero constants.
+       * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
+       * target.def (builtin_chkp_function): New.
+       (chkp_bound_type): New.
+       (chkp_bound_mode): New.
+       (chkp_make_bounds_constant): New.
+       (chkp_initialize_bounds): New.
+       (load_bounds_for_arg): New.
+       (store_bounds_for_arg): New.
+       (load_returned_bounds): New.
+       (store_returned_bounds): New.
+       (chkp_function_value_bounds): New.
+       (setup_incoming_vararg_bounds): New.
+       (function_arg): Update hook description with new possible return
+       value CONST_INT.
+       * targhooks.h (default_load_bounds_for_arg): New.
+       (default_store_bounds_for_arg): New.
+       (default_load_returned_bounds): New.
+       (default_store_returned_bounds): New.
+       (default_chkp_bound_type): New.
+       (default_chkp_bound_mode): New.
+       (default_builtin_chkp_function): New.
+       (default_chkp_function_value_bounds): New.
+       (default_chkp_make_bounds_constant): New.
+       (default_chkp_initialize_bounds): New.
+       (default_setup_incoming_vararg_bounds): New.
+       * targhooks.c (default_load_bounds_for_arg): New.
+       (default_store_bounds_for_arg): New.
+       (default_load_returned_bounds): New.
+       (default_store_returned_bounds): New.
+       (default_chkp_bound_type): New.
+       (default_chkp_bound_mode); New.
+       (default_builtin_chkp_function): New.
+       (default_chkp_function_value_bounds): New.
+       (default_chkp_make_bounds_constant): New.
+       (default_chkp_initialize_bounds): New.
+       (default_setup_incoming_vararg_bounds): New.
+       * builtin-types.def (BT_BND): New.
+       (BT_FN_PTR_CONST_PTR): New.
+       (BT_FN_CONST_PTR_CONST_PTR): New.
+       (BT_FN_BND_CONST_PTR): New.
+       (BT_FN_CONST_PTR_BND): New.
+       (BT_FN_PTR_CONST_PTR_SIZE): New.
+       (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
+       (BT_FN_VOID_PTRPTR_CONST_PTR): New.
+       (BT_FN_VOID_CONST_PTR_SIZE): New.
+       (BT_FN_VOID_PTR_BND): New.
+       (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
+       (BT_FN_BND_CONST_PTR_SIZE): New.
+       (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
+       (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
+       * chkp-builtins.def: New.
+       * builtins.def: include chkp-builtins.def.
+       (DEF_CHKP_BUILTIN): New.
+       * builtins.c: Include tree-chkp.h and rtl-chkp.h.
+       (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
+       BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
+       BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
+       BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
+       BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
+       BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
+       BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
+       BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
+       BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
+       BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
+       (std_expand_builtin_va_start): Init bounds for va_list.
+       * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
+       __CHKP__ macro when Pointer Bounds Checker is on.
+       * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
+       * passes.def (pass_ipa_chkp_versioning): New.
+       (pass_early_local_passes): Renamed to pass_build_ssa_passes.
+       (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
+       (pass_chkp_instrumentation_passes): New.
+       (pass_ipa_chkp_produce_thunks): New.
+       (pass_local_optimization_passes): New.
+       (pass_chkp_opt): New.
+       * tree-pass.h (make_pass_ipa_chkp_versioning): New.
+       (make_pass_ipa_chkp_produce_thunks): New.
+       (make_pass_chkp): New.
+       (make_pass_chkp_opt): New.
+       (make_pass_early_local_passes): Renamed to ...
+       (make_pass_build_ssa_passes): This.
+       (make_pass_chkp_instrumentation_passes): New.
+       (make_pass_local_optimization_passes): New.
+       * passes.c (pass_manager::execute_early_local_passes): Execute
+       early passes in three steps.
+       (execute_all_early_local_passes): Renamed to ...
+       (execute_build_ssa_passes): This.
+       (pass_data_early_local_passes): Renamed to ...
+       (pass_data_build_ssa_passes): This.
+       (pass_early_local_passes): Renamed to ...
+       (pass_build_ssa_passes): This.
+       (pass_data_chkp_instrumentation_passes): New.
+       (pass_chkp_instrumentation_passes): New.
+       (pass_data_local_optimization_passes): New.
+       (pass_local_optimization_passes): New.
+       (make_pass_early_local_passes): Renamed to ...
+       (make_pass_build_ssa_passes): This.
+       (make_pass_chkp_instrumentation_passes): New.
+       (make_pass_local_optimization_passes): New.
+       * c-family/c.opt (fcheck-pointer-bounds): New.
+       (fchkp-check-incomplete-type): New.
+       (fchkp-zero-input-bounds-for-main): New.
+       (fchkp-first-field-has-own-bounds): New.
+       (fchkp-narrow-bounds): New.
+       (fchkp-narrow-to-innermost-array): New.
+       (fchkp-optimize): New.
+       (fchkp-use-fast-string-functions): New.
+       (fchkp-use-nochk-string-functions): New.
+       (fchkp-use-static-bounds): New.
+       (fchkp-use-static-const-bounds): New.
+       (fchkp-treat-zero-dynamic-size-as-infinite): New.
+       (fchkp-check-read): New.
+       (fchkp-check-write): New.
+       (fchkp-store-bounds): New.
+       (fchkp-instrument-calls): New.
+       (fchkp-instrument-marked-only): New.
+       (Wchkp): New.
+       * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
+       (handle_bnd_legacy): New.
+       (handle_bnd_instrument): New.
+       (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
+       and bnd_instrument.  Fix documentation.
+       (c_common_format_attribute_table): Likewsie.
+       * toplev.c: include tree-chkp.h.
+       (process_options): Check Pointer Bounds Checker is supported.
+       (compile_file): Add chkp_finish_file call.
+       * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
+       to handle instrumentation clones properly.
+       (propagate_constants_accross_call): Do not propagate
+       through instrumentation thunks.
+       * ipa-pure-const.c (propagate_pure_const): Support
+       IPA_REF_CHKP.
+       * ipa-inline.c (early_inliner): Check edge has summary allocated.
+       * ipa-split.c: Include tree-chkp.h.
+       (find_retbnd): New.
+       (split_part_set_ssa_name_p): New.
+       (consider_split): Do not split retbnd and retval
+       producers.
+       (insert_bndret_call_after): new.
+       (split_function): Propagate Pointer Bounds Checker
+       instrumentation marks and handle returned bounds.
+       * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
+       into bit field and add with_bounds field.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
+       with_bounds field for instrumented calls.
+       * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
+       CALL_WITH_BOUNDS_P flag for calls.
+       * tree-ssa-ccp.c: Include tree-chkp.h.
+       (insert_clobber_before_stack_restore): Handle
+       BUILT_IN_CHKP_BNDRET calls.
+       * tree-ssa-dce.c: Include tree-chkp.h.
+       (propagate_necessity): For free call fed by alloc check
+       bounds are also provided by the same alloc.
+       (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
+       used by free calls.
+       * tree-inline.c: Include tree-chkp.h.
+       (declare_return_variable): Add arg holding
+       returned bounds slot.  Create and initialize returned bounds var.
+       (remap_gimple_stmt): Handle returned bounds.
+       Return sequence of statements instead of a single statement.
+       (insert_init_stmt): Add declaration.
+       (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
+       (copy_bb): Adjust to changed return type of remap_gimple_stmt.
+       Properly handle bounds in va_arg_pack and va_arg_pack_len.
+       (expand_call_inline): Handle returned bounds.  Add bounds copy
+       for generated mem to mem assignments.
+       * tree-inline.h (copy_body_data): Add fields retbnd and
+       assign_stmts.
+       * value-prof.c: Include tree-chkp.h.
+       (gimple_ic): Support returned bounds.
+       * ipa.c (cgraph_build_static_cdtor_1): Support contructors
+       with "chkp ctor" and "bnd_legacy" attributes.
+       (symtab_remove_unreachable_nodes): Keep initial values for
+       pointer bounds to be used for checks eliminations.
+       (process_references): Handle IPA_REF_CHKP.
+       (walk_polymorphic_call_targets): Likewise.
+       * ipa-visibility.c (cgraph_externally_visible_p): Mark
+       instrumented 'main' as externally visible.
+       (function_and_variable_visibility): Filter instrumentation
+       thunks.
+       * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
+       field.
+       (cgraph_node): Add instrumented_version, orig_decl and
+       instrumentation_clone fields.
+       (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
+       (varpool_node): Add need_bounds_init field.
+       (cgraph_local_p): New.
+       * cgraph.c: Include tree-chkp.h.
+       (cgraph_node::remove): Fix instrumented_version
+       of the referenced node if any.
+       (cgraph_node::dump): Dump instrumentation_clone and
+       instrumented_version fields.
+       (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
+       references and instrumentation thunks.
+       (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
+       all not instrumented instrumentation clones alive.
+       (cgraph_redirect_edge_call_stmt_to_callee): Support
+       returned bounds.
+       * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
+       reference.
+       (cgraph_rebuild_references): Likewise.
+       * cgraphunit.c: Include tree-chkp.h.
+       (assemble_thunks_and_aliases): Skip thunks calling instrumneted
+       function version.
+       (varpool_finalize_decl): Register statically initialized decls
+       in Pointer Bounds Checker.
+       (walk_polymorphic_call_targets): Do not mark generated call to
+       __builtin_unreachable as with_bounds.
+       (output_weakrefs): If there are both instrumented and original
+       versions, output only one of them.
+       (cgraph_node::expand_thunk): Set with_bounds flag
+       for created call statement.
+       * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
+       (ipa_ref): increase size of use field.
+       * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
+       * varpool.c (dump_varpool_node): Dump need_bounds_init field.
+       (ctor_for_folding): Do not fold constant bounds vars.
+       * lto-streamer.h (LTO_minor_version): Change minor version from
+       0 to 1.
+       * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
+       pointer bounds.
+       (lto_output_node): Output instrumentation_clone,
+       thunk.add_pointer_bounds_args and orig_decl field.
+       (lto_output_ref): Adjust to new ipa_ref::use field size.
+       (input_overwrite_node): Read instrumentation_clone field.
+       (input_node): Read thunk.add_pointer_bounds_args and orig_decl
+       fields.
+       (input_ref): Adjust to new ipa_ref::use field size.
+       (input_cgraph_1): Compute instrumented_version fields and restore
+       IDENTIFIER_TRANSPARENT_ALIAS chains.
+       (lto_output_varpool_node): Output
+       need_bounds_init value.
+       (input_varpool_node): Read need_bounds_init value.
+       * lto-partition.c (add_symbol_to_partition_1): Keep original
+       and instrumented versions together.
+       (privatize_symbol_name): Restore transparent alias chain if required.
+       (add_references_to_partition): Add references to pointer bounds vars.
+       * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
+       * dwarf2out.c (gen_subprogram_die): Ignore bound args.
+       (gen_type_die_with_usage): Skip pointer bounds.
+       (dwarf2out_global_decl): Likewise.
+       (is_base_type): Support POINTER_BOUNDS_TYPE.
+       (gen_formal_types_die): Skip pointer bounds.
+       (gen_decl_die): Likewise.
+       * var-tracking.c (vt_add_function_parameters): Skip
+       bounds parameters.
+       * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
+       thunk still exists.
+       (sem_variable::merge): Reset need_bounds_init flag.
+       * doc/extend.texi: Document Pointer Bounds Checker built-in functions
+       and attributes.
+       * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
+       (TARGET_STORE_BOUNDS_FOR_ARG): New.
+       (TARGET_LOAD_RETURNED_BOUNDS): New.
+       (TARGET_STORE_RETURNED_BOUNDS): New.
+       (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
+       (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
+       (TARGET_BUILTIN_CHKP_FUNCTION): New.
+       (TARGET_CHKP_BOUND_TYPE): New.
+       (TARGET_CHKP_BOUND_MODE): New.
+       (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
+       (TARGET_CHKP_INITIALIZE_BOUNDS): New.
+       * doc/tm.texi: Regenerated.
+       * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
+       (BND32mode): New.
+       (BND64mode): New.
+       * doc/invoke.texi (-mmpx): New.
+       (-mno-mpx): New.
+       (chkp-max-ctor-size): New.
+       * config/i386/constraints.md (w): New.
+       (Ti): New.
+       (Tb): New.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
+       * config/i386/i386-modes.def (BND32): New.
+       (BND64): New.
+       * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
+       * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
+       (regclass_map): Add bound registers.
+       (dbx_register_map): Likewise.
+       (dbx64_register_map): Likewise.
+       (svr4_dbx_register_map): Likewise.
+       (isa_opts): Add -mmpx.
+       (PTA_MPX): New.
+       (ix86_option_override_internal): Support MPX ISA.
+       (ix86_conditional_register_usage): Support bound registers.
+       (ix86_code_end): Add MPX bnd prefix.
+       (output_set_got): Likewise.
+       (print_reg): Avoid prefixes for bound registers.
+       (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
+       (ix86_print_operand_punct_valid_p): Likewise.
+       (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
+       UNSPEC_BNDLDX_ADDR.
+       (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
+       (ix86_class_likely_spilled_p): Add bound regs support.
+       (ix86_hard_regno_mode_ok): Likewise.
+       (x86_order_regs_for_local_alloc): Likewise.
+       (ix86_bnd_prefixed_insn_p): New.
+       (ix86_builtins): Add
+       IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
+       IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
+       IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
+       IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
+       IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
+       IX86_BUILTIN_BNDUPPER.
+       (builtin_isa): Add leaf_p and nothrow_p fields.
+       (def_builtin): Initialize leaf_p and nothrow_p.
+       (ix86_add_new_builtins): Handle leaf_p and nothrow_p
+       flags.
+       (bdesc_mpx): New.
+       (bdesc_mpx_const): New.
+       (ix86_init_mpx_builtins): New.
+       (ix86_init_builtins): Call ix86_init_mpx_builtins.
+       (ix86_emit_cmove): New.
+       (ix86_emit_move_max): New.
+       (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
+       IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
+       IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
+       IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
+       IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
+       IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
+       (ix86_function_value_bounds): New.
+       (ix86_builtin_mpx_function): New.
+       (ix86_get_arg_address_for_bt): New.
+       (ix86_load_bounds): New.
+       (ix86_store_bounds): New.
+       (ix86_load_returned_bounds): New.
+       (ix86_store_returned_bounds): New.
+       (ix86_mpx_bound_mode): New.
+       (ix86_make_bounds_constant): New.
+       (ix86_initialize_bounds):
+       (TARGET_LOAD_BOUNDS_FOR_ARG): New.
+       (TARGET_STORE_BOUNDS_FOR_ARG): New.
+       (TARGET_LOAD_RETURNED_BOUNDS): New.
+       (TARGET_STORE_RETURNED_BOUNDS): New.
+       (TARGET_CHKP_BOUND_MODE): New.
+       (TARGET_BUILTIN_CHKP_FUNCTION): New.
+       (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
+       (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
+       (TARGET_CHKP_INITIALIZE_BOUNDS): New.
+       (ix86_option_override_internal): Do not
+       support x32 with MPX.
+       (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
+       and force_bnd_pass.
+       (function_arg_advance_32): Return number of used integer
+       registers.
+       (function_arg_advance_64): Likewise.
+       (function_arg_advance_ms_64): Likewise.
+       (ix86_function_arg_advance): Handle pointer bounds.
+       (ix86_function_arg): Likewise.
+       (ix86_function_value_regno_p): Mark fisrt bounds registers as
+       possible function value.
+       (ix86_function_value_1): Handle pointer bounds type/mode
+       (ix86_return_in_memory): Likewise.
+       (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
+       (ix86_expand_call): Generate returned bounds.
+       (ix86_setup_incoming_vararg_bounds): New.
+       (ix86_va_start): Initialize bounds for pointers in va_list.
+       (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
+       * config/i386/i386.h (TARGET_MPX): New.
+       (TARGET_MPX_P): New.
+       (FIRST_PSEUDO_REGISTER): Fix to new value.
+       (FIXED_REGISTERS): Add bound registers.
+       (CALL_USED_REGISTERS): Likewise.
+       (REG_ALLOC_ORDER): Likewise.
+       (HARD_REGNO_NREGS): Likewise.
+       (VALID_BND_REG_MODE): New.
+       (FIRST_BND_REG): New.
+       (LAST_BND_REG): New.
+       (reg_class): Add BND_REGS.
+       (REG_CLASS_NAMES): Likewise.
+       (REG_CLASS_CONTENTS): Likewise.
+       (BND_REGNO_P): New.
+       (ANY_BND_REG_P): New.
+       (BNDmode): New.
+       (HI_REGISTER_NAMES): Add bound registers.
+       (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
+       stdarg fields.
+       * config/i386/i386.md (UNSPEC_BNDMK): New.
+       (UNSPEC_BNDMK_ADDR): New.
+       (UNSPEC_BNDSTX): New.
+       (UNSPEC_BNDLDX): New.
+       (UNSPEC_BNDLDX_ADDR): New.
+       (UNSPEC_BNDCL): New.
+       (UNSPEC_BNDCU): New.
+       (UNSPEC_BNDCN): New.
+       (UNSPEC_MPX_FENCE): New.
+       (UNSPEC_SIZEOF): New.
+       (BND0_REG): New.
+       (BND1_REG): New.
+       (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
+       (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
+       (prefix_rep): Check for bnd prefix.
+       (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
+       (length_nobnd): New.
+       (length): Use length_nobnd when specified.
+       (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
+       (BND): New.
+       (bnd_ptr): New.
+       (BNDCHECK): New.
+       (bndcheck): New.
+       (*jcc_1): Add MPX bnd prefix.
+       (*jcc_2): Likewise.
+       (jump): Likewise.
+       (*indirect_jump): Likewise.
+       (*tablejump_1): Likewise.
+       (simple_return_internal): Likewise.
+       (simple_return_internal_long): Likewise.
+       (simple_return_pop_internal): Likewise.
+       (simple_return_indirect_internal): Likewise.
+       (<mode>_mk): New.
+       (*<mode>_mk): New.
+       (mov<mode>): New.
+       (*mov<mode>_internal_mpx): New.
+       (<mode>_<bndcheck>): New.
+       (*<mode>_<bndcheck>): New.
+       (<mode>_ldx): New.
+       (*<mode>_ldx): New.
+       (<mode>_stx): New.
+       (*<mode>_stx): New.
+       move_size_reloc_<mode>): New.
+       * config/i386/predicates.md (address_mpx_no_base_operand): New.
+       (address_mpx_no_index_operand): New.
+       (bnd_mem_operator): New.
+       (symbol_operand): New.
+       (x86_64_immediate_size_operand): New.
+       * config/i386/i386.opt (mmpx): New.
+       * config/i386/i386-builtin-types.def (BND): New.
+       (ULONG): New.
+       (BND_FTYPE_PCVOID_ULONG): New.
+       (VOID_FTYPE_BND_PCVOID): New.
+       (VOID_FTYPE_PCVOID_PCVOID_BND): New.
+       (BND_FTYPE_PCVOID_PCVOID): New.
+       (BND_FTYPE_PCVOID): New.
+       (BND_FTYPE_BND_BND): New.
+       (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
+       (PVOID_FTYPE_PCVOID_BND_ULONG): New.
+       (ULONG_FTYPE_VOID): New.
+       (PVOID_FTYPE_BND): New.
+
+2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
+       pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
+       pass_cleanup_barriers, pass_delay_slots,
+       pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
+       pass_shorten_branches, pass_est_nothrow_function_flags,
+       pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
+       into pass_late_compilation.
+       (pass_late_compilation): Add.
+       * passes.c (pass_data_late_compilation, pass_late_compilation,
+       make_pass_late_compilation): New.
+       * timevar.def (TV_LATE_COMPILATION): New.
+
+       * target.def (omit_struct_return_reg): New data hook.
+       * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
+       * doc/tm.texi: Regenerate.
+       * function.c (expand_function_end): Use it.
+
+       * target.def (no_register_allocation): New data hook.
+       * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
+       * doc/tm.texi: Regenerate.
+       * ira.c (gate_ira): New function.
+       (pass_data_ira): Set has_gate.
+       (pass_ira): Add a gate function.
+       (pass_data_reload): Likewise.
+       (pass_reload): Add a gate function.
+       (pass_ira): Use it.
+       * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
+       no register allocation happens on the target and return.
+       * final.c (alter_subreg): Ensure register is not a pseudo before
+       calling simplify_subreg.
+       (output_operand): Assert that x isn't a pseudo only if doing
+       register allocation.
+
+       * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
+       global vars.
+
+       * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
+       sorry if necessary.
+
+2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
+
+       * simplify-rtx.c (simplify_binary_operation_1): Div check added.
+       * rtl.h (SUBREG_P): New macro added.
+
+2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
+
+       * config/aarch64/aarch64-builtins.c
+       (aarch64_build_scalar_type): Remove.
+       (aarch64_scalar_builtin_types, aarch64_simd_type,
+       aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
+       aarch64_mangle_builtin_vector_type,
+       aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
+       aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
+       aarch64_init_simd_builtin_types,
+       aarch64_init_simd_builtin_scalar_types): New.
+       (aarch64_init_simd_builtins): Refactor.
+       (aarch64_init_crc32_builtins): Fixup with qualifier.
+       * config/aarch64/aarch64-protos.h
+       (aarch64_mangle_builtin_type): Export.
+       * config/aarch64/aarch64-simd-builtin-types.def: New.
+       * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
+       (aarch64_mangle_type): Refactor.
+       * config/aarch64/arm_neon.h: Declare vector types based on
+       internal types.
+       * config/aarch64/t-aarch64: Update dependency.
+
+2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
+       atomic_update_decl): Guard declaration with #ifdef.
+
+2014-11-04  Marek Polacek  <polacek@redhat.com>
+
+       * sanopt.c (sanopt_optimize_walker): Remove unused variables.
+
+2014-11-04  Marek Polacek  <polacek@redhat.com>
+
+       * Makefile.in (OBJS): Add sanopt.o.
+       (GTFILES): Add sanopt.c.
+       * asan.h (asan_expand_check_ifn): Declare.
+       * asan.c (asan_expand_check_ifn): No longer static.
+       (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
+       * sanopt.c: ...here.  New file.
+
+2014-11-04  Jiong Wang  <jiong.wang@arm.com>
+2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+       PR target/63293
+       * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
+       stack adjustment.
+
+2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
+       also verify that mode is equal to the mode of op0.
+
+       * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
+       emit into a sequence instead.
+
+2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
+
+2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
+
+       config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
+       (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
+       (reduc_smax_<mode> *2): Rename to...
+       (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
+       (reduc_umin_<mode> *2): Rename to...
+       (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
+       (reduc_umax_<mode> *2): Rename to...
+       (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
+
+2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
+
+       config/arm/neon.md (reduc_plus_*): Rename to...
+       (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
+
+2014-11-04  Michael Collison <michael.collison@linaro.org>
+
+       * config/aarch64/iterators.md (lconst_atomic): New mode attribute
+       to support constraints for CONST_INT in atomic operations.
+       * config/aarch64/atomics.md
+       (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
+       (atomic_nand<mode>): Likewise.
+       (atomic_fetch_<atomic_optab><mode>): Likewise.
+       (atomic_fetch_nand<mode>): Likewise.
+       (atomic_<atomic_optab>_fetch<mode>): Likewise.
+       (atomic_nand_fetch<mode>): Likewise.
+
+2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
+       of __ARM_FEATURE_IDIV.
+
+2014-11-04  Marek Polacek  <polacek@redhat.com>
+
+       * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
+
+2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
+
+2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
+
+       Revert:
+       2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
+       * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
+       Allow CC mode if HAVE_cbranchcc4.
+
+2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
+
+       * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
+       with -fdump-go-spec.  Anonymous substructures are now flattened and
+       replaced by their fields (record) or the first named, non-bitfield
+       field (union).
+
+2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * input.c (expand_location_to_spelling_point): Fix typo.
+       (expansion_point_location_if_in_system_header): Fix comment.
+
+2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
+
+       * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
+
+2014-11-03  Richard Biener  <rguenther@suse.de>
+
+       * tree-eh.c (operation_could_trap_helper_p): Handle conversions
+       like ordinary operations.
+       * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
+       as NOP_EXPR.
+
+2014-11-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
+       macros.
+       * configure, config.h.in: Regenerate.
+       * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
+       (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
+       (RS6000_GLIBC_ATOMIC_FENV): New macro.
+       * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
+       (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
+       (RS6000_GLIBC_ATOMIC_FENV): New macro.
+       * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
+       (atomic_update_decl): New static variables.
+       (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
+       Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
+       and __atomic_feupdateenv for soft-float and no-FPRs.
+
+2014-11-03  Richard Biener  <rguenther@suse.de>
+
+       * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
+       Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
+       * fold-const.c (fold_unary_loc): Remove them here.
+       (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
+       * gimple-fold.c (fold_gimple_assign): Remove now obsolete
+       GIMPLE_UNARY_RHS case.
+       (gimple_fold_stmt_to_constant_1): Likewise.
+       (replace_stmt_with_simplification): Fix inverted comparison.
+
+2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
+
+       PR tree-optimization/60770
+       * tree-into-ssa.c (rewrite_update_stmt): Return whether the
+       statement should be removed.
+       (maybe_register_def): Likewise. Replace clobbers with default
+       definitions.
+       (rewrite_dom_walker::before_dom_children): Remove statement if
+       rewrite_update_stmt says so.
+       * tree-ssa-live.c: Include tree-ssa.h.
+       (set_var_live_on_entry): Do not mark undefined variables as live.
+       (verify_live_on_entry): Do not check undefined variables.
+       * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
+       of partially undefined variables.
+       * tree-ssa.c (ssa_undefined_value_p): Likewise.
+       (execute_update_addresses_taken): Do not drop clobbers.
+
+2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
+
+       PR tree-optimization/63666
+       * fold-const.c: Include "optabs.h".
+       (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
+       can_vec_perm_p permutation to one that is not.
+
+2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
+
+       * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
+
+2014-11-03  Andrew Pinski  <apinski@cavium.com>
+
+       * config/mips/mips-cpus.def (octeon3): New cpu.
+       * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
+       (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
+       of the comparison no longer matches mode of the operands.
+       (mips_issue_rate): Handle PROCESSOR_OCTEON3.
+       * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
+       (TARGET_OCTEON2): Likewise.
+       (TUNE_OCTEON): Add Octeon3.
+       * config/mips/mips.md (processor): Add octeon3.
+       * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
+       (octeon_arith): Add octeon3.
+       (octeon_condmove): Remove.
+       (octeon_condmove_o1): New reservation.
+       (octeon_condmove_o2): New reservation.
+       (octeon_condmove_o3_int_on_cc): New reservation.
+       (octeon_load_o2): Add octeon3.
+       (octeon_cop_o2): Likewise.
+       (octeon_store): Likewise.
+       (octeon_brj_o2): Likewise.
+       (octeon_imul3_o2): Likewise.
+       (octeon_imul_o2): Likewise.
+       (octeon_mfhilo_o2): Likewise.
+       (octeon_imadd_o2): Likewise.
+       (octeon_idiv_o2_si): Likewise.
+       (octeon_idiv_o2_di): Likewise.
+       (octeon_fpu): Add to the automaton.
+       (octeon_fpu): New cpu unit.
+       (octeon_condmove_o2): Check for non floating point modes.
+       (octeon_load_o2): Add prefetchx.
+       (octeon_cop_o2): Don't check for octeon3.
+       (octeon3_faddsubcvt): New reservation.
+       (octeon3_fmul): Likewise.
+       (octeon3_fmadd): Likewise.
+       (octeon3_div_sf): Likewise.
+       (octeon3_div_df): Likewise.
+       (octeon3_sqrt_sf): Likewise.
+       (octeon3_sqrt_df): Likewise.
+       (octeon3_rsqrt_sf): Likewise.
+       (octeon3_rsqrt_df): Likewise.
+       (octeon3_fabsnegmov): Likewise.
+       (octeon_fcond): Likewise.
+       (octeon_fcondmov): Likewise.
+       (octeon_fpmtc1): Likewise.
+       (octeon_fpmfc1): Likewise.
+       (octeon_fpload): Likewise.
+       (octeon_fpstore): Likewise.
+       * config/mips/mips-tables.opt: Regenerate.
+       * doc/invoke.texi (-march=@var{arch}): Add octeon3.
+
+2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
+
+       * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
+       Allow CC mode if HAVE_cbranchcc4.
+
+2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/arc/arc.c (write_ext_corereg_1): Delete.
+       (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
+
+2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
+       (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
+
+2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
+       (small_data_pattern_1): Delete.
+       (small_data_pattern): Use FOR_EACH_SUBRTX.
+
+2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/arc/arc.c: Include rtl-iter.h.
+       (arc_rewrite_small_data_1): Delete.
+       (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
+
+2014-11-02  Michael Collison  <michael.collison@linaro.org>
+
+       * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
+       to support vector modes.
+       (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
+
+2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
+
+       * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
+       and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
+       * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
+       * optabs.c: (gen_move_insn): Move to expr.c.
+       * expr.h: Move protypes and enums to optabs.h.
+       * expr.c: (gen_move_insn): Relocate from optabs.c.
+       * genemit.c (main): Include insn-codes.h.
+       * gengtype.c (open_base_files): Include insn-codes.h.
+       * asan.c: Include insn-codes.h.
+       * bb-reorder.c: Ditto.
+       * builtins.c: Ditto.
+       * calls.c: Ditto.
+       * cfgexpand.c: Ditto.
+       * cilk-common.c: Ditto.
+       * combine.c: Ditto.
+       * dojump.c: Ditto.
+       * dse.c: Ditto.
+       * except.c: Ditto.
+       * explow.c: Ditto.
+       * expmed.c: Ditto.
+       * function.c: Ditto.
+       * ifcvt.c: Ditto.
+       * internal-fn.c: Ditto.
+       * loop-unroll.c: Ditto.
+       * lra.c: Ditto.
+       * modulo-sched.c: Ditto.
+       * omp-low.c: Ditto.
+       * postreload.c: Ditto.
+       * ree.c: Ditto.
+       * reload.c: Ditto.
+       * reload1.c: Ditto.
+       * shrink-wrap.c: Ditto.
+       * simplify-rtx.c: Ditto.
+       * stmt.c: Ditto.
+       * target-globals.c: Ditto.
+       * targhooks.c: Ditto.
+       * toplev.c: Ditto.
+       * tree-if-conv.c: Ditto.
+       * tree-ssa-forwprop.c: Ditto.
+       * tree-ssa-loop-prefetch.c: Ditto.
+       * tree-ssa-math-opts.c: Ditto.
+       * tree-ssa-phiopt.c: Ditto.
+       * tree-ssa-reassoc.c: Ditto.
+       * tree-switch-conversion.c: Ditto.
+       * tree-vect-data-refs.c: Ditto.
+       * tree-vect-generic.c: Ditto.
+       * tree-vect-loop.c: Ditto.
+       * tree-vect-patterns.c: Ditto.
+       * tree-vect-slp.c: Ditto.
+       * tree-vect-stmts.c: Ditto.
+       * tree-vrp.c: Ditto.
+       * value-prof.c: Ditto.
+       * config/aarch64/aarch64-builtins.c: Ditto.
+       * config/alpha/alpha.c: Ditto.
+       * config/arm/arm.c: Ditto.
+       * config/cris/cris.c: Ditto.
+       * config/epiphany/epiphany.c: Ditto.
+       * config/frv/frv.c: Ditto.
+       * config/h8300/h8300.c: Ditto.
+       * config/ia64/ia64.c: Ditto.
+       * config/iq2000/iq2000.c: Ditto.
+       * config/m32c/m32c.c: Ditto.
+       * config/mep/mep.c: Ditto.
+       * config/microblaze/microblaze.c: Ditto.
+       * config/mips/mips.c: Ditto.
+       * config/mn10300/mn10300.c: Ditto.
+       * config/moxie/moxie.c: Ditto.
+       * config/msp430/msp430.c: Ditto.
+       * config/nios2/nios2.c: Ditto.
+       * config/pa/pa.c: Ditto.
+       * config/rl78/rl78.c: Ditto.
+       * config/rs6000/rs6000.c: Ditto.
+       * config/rx/rx.c: Ditto.
+       * config/s390/s390.c: Ditto.
+       * config/sh/sh.c: Ditto.
+       * config/sh/sh_treg_combine.cc: Ditto.
+       * config/spu/spu.c: Ditto.
+       * config/stormy16/stormy16.c: Ditto.
+       * config/tilegx/mul-tables.c: Ditto.
+       * config/tilegx/tilegx.c: Ditto.
+       * config/tilepro/mul-tables.c: Ditto.
+       * config/tilepro/tilepro.c: Ditto.
+       * config/vax/vax.c: Ditto.
+
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
+       (CLEAR_BY_PIECES_P): Likewise.
+       (SET_BY_PIECES_P): Likewise.
+       (STORE_BY_PIECES_P): Likewise.
+       * doc/tm.texi: Regenerate.
+       * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
+       SET_BY_PIECES_P, STORE_BY_PIECES_P.
+       * expr.c (MOVE_BY_PIECES_P): Remove.
+       (CLEAR_BY_PIECES_P): Likewise.
+       (SET_BY_PIECES_P): Likewise.
+       (STORE_BY_PIECES_P): Likewise.
+       (can_move_by_pieces): Rewrite in terms of
+       targetm.use_by_pieces_infrastructure_p.
+       (emit_block_move_hints): Likewise.
+       (can_store_by_pieces): Likewise.
+       (store_by_pieces): Likewise.
+       (clear_storage_hints): Likewise.
+       (emit_push_insn): Likewise.
+       (expand_constructor): Likewise.
+
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/aarch64/aarch64.c
+       (aarch64_use_by_pieces_infrastructre_p): New.
+       (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
+       * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
+
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
+       (STORE_BY_PIECES_P): Likewise.
+       * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
+       (mips_move_by_pieces_p): Rename to...
+       (mips_use_by_pieces_infrastructure_p): ...this, use new hook
+       parameters, use the default hook implementation as a
+       fall-back.
+
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
+       (sh_use_by_pieces_infrastructure_p): Likewise.
+       * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
+       (STORE_BY_PIECES_P): Likewise.
+       (SET_BY_PIECES_P): Likewise.
+
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
+       (arc_use_by_pieces_infrastructure_p): Likewise.
+       * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
+       (CAN_MOVE_BY_PIECES): Likewise.
+
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
+       (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
+       * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
+       (CLEAR_BY_PIECES): Likewise.
+       (SET_BY_PIECES): Likewise.
+       (STORE_BY_PIECES): Likewise.
+
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * target.def (use_by_pieces_infrastructure_p): New.
+       * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
+       is deprecated.
+       (STORE_BY_PIECES_P): Likewise.
+       (CLEAR_BY_PIECES_P): Likewise.
+       (SET_BY_PIECES_P): Likewise.
+       (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
+       * doc/tm.texi: Regenerate.
+       * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
+       TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
+       (STORE_BY_PIECES_P): Likewise.
+       (CLEAR_BY_PIECES_P): Likewise.
+       (SET_BY_PIECES_P): Likewise.
+       (STORE_MAX_PIECES): Move to...
+       * defaults.h (STORE_MAX_PIECES): ...here.
+       * targhooks.c (get_move_ratio): New.
+       (default_use_by_pieces_infrastructure_p): Likewise.
+       * targhooks.h (default_use_by_pieces_infrastructure_p): New.
+       * target.h (by_pieces_operation): New.
+
+2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/63702
+       * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
+       assignment to 'nargs' variable.
+
+2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/63620
+       * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
+       * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
+       * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
+       be reloaded through memory.
+       (*pushxf): Ditto.
+       (*pushdf): Ditto.
+
+2014-10-31  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/63659
+       * ree.c (update_reg_equal_equiv_notes): New function.
+       (combine_set_extension, transform_ifelse): Use it.
+
+2014-10-31  Jeff Law  <law@redhat.com>
+
+       * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
+       and Jonny Grant (collect2).
+
 2014-10-31  Richard Biener  <rguenther@suse.de>
 
        * builtins.c (fold_builtin_atomic_always_lock_free): Use