2014-01-09 Richard Biener PR tree-optimization/59715 * tree-cfg.h (split_critical_edges): Declare. * tree-cfg.c (split_critical_edges): Export. * tree-ssa-sink.c (execute_sink_code): Split critical edges. 2014-01-09 Max Ostapenko * cfgexpand.c (expand_stack_vars): Optionally disable asan stack protection. (expand_used_vars): Likewise. (partition_stack_vars): Likewise. * asan.c (asan_emit_stack_protection): Optionally disable after return stack usage. (instrument_derefs): Optionally disable memory access instrumentation. (instrument_builtin_call): Likewise. (instrument_strlen_call): Likewise. (asan_protect_global): Optionally disable global variables protection. * doc/invoke.texi: Added doc for new options. * params.def: Added new options. * params.h: Likewise. 2014-01-09 Jakub Jelinek PR rtl-optimization/59724 * ifcvt.c (cond_exec_process_if_block): Don't call flow_find_head_matching_sequence with 0 longest_match. * cfgcleanup.c (flow_find_head_matching_sequence): Count even non-active insns if !stop_after. (try_head_merge_bb): Revert 2014-01-07 changes. 2014-01-08 Jeff Law * ree.c (get_sub_rtx): New function, extracted from... (merge_def_and_ext): Here. (combine_reaching_defs): Use get_sub_rtx. 2014-01-08 Eric Botcazou * cgraph.h (varpool_variable_node): Do not choke on null node. 2014-01-08 Catherine Moore * config/mips/mips.md (simple_return): Attempt to use JRC for microMIPS. * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS. 2014-01-08 Richard Sandiford PR rtl-optimization/59137 * reorg.c (steal_delay_list_from_target): Call update_block for elided insns. (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise. 2014-01-08 Bill Schmidt * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove two duplicate entries. 2014-01-08 Richard Sandiford Revert: 2012-10-07 Richard Sandiford * config/mips/mips.c (mips_truncated_op_cost): New function. (mips_rtx_costs): Adjust test for BADDU. * config/mips/mips.md (*baddu_di): Push truncates to operands. 2012-10-02 Richard Sandiford * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into... (*baddu_si): ...this new pattern. 2014-01-08 Jakub Jelinek PR ipa/59722 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts. 2014-01-08 Bernd Edlinger PR middle-end/57748 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter inner_reference_p. (expand_expr, expand_normal): Adjust. * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter inner_reference_p. Use inner_reference_p to expand inner references. (store_expr): Adjust. * cfgexpand.c (expand_call_stmt): Adjust. 2014-01-08 Rong Xu * gcov-io.c (gcov_var): Move from gcov-io.h. (gcov_position): Ditto. (gcov_is_error): Ditto. (gcov_rewrite): Ditto. * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov only part to libgcc/libgcov.h. 2014-01-08 Marek Polacek PR middle-end/59669 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL. 2014-01-08 Marek Polacek PR sanitizer/59667 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2. 2014-01-08 Jakub Jelinek PR rtl-optimization/59649 * stor-layout.c (get_mode_bounds): For BImode return 0 and STORE_FLAG_VALUE. 2014-01-08 Richard Biener PR middle-end/59630 * gimple.h (is_gimple_builtin_call): Remove. (gimple_builtin_call_types_compatible_p): New. (gimple_call_builtin_p): New overload. * gimple.c (is_gimple_builtin_call): Remove. (validate_call): Rename to ... (gimple_builtin_call_types_compatible_p): ... this and export. Also check return types. (validate_type): New static function. (gimple_call_builtin_p): New overload and adjust. * gimple-fold.c (gimple_fold_builtin): Fold the return value. (gimple_fold_call): Likewise. Use gimple_call_builtin_p. (gimple_fold_stmt_to_constant_1): Likewise. * tsan.c (instrument_gimple): Use gimple_call_builtin_p. 2014-01-08 Richard Biener PR middle-end/59471 * gimplify.c (gimplify_expr): Gimplify register-register type VIEW_CONVERT_EXPRs to separate stmts. 2014-01-07 Jeff Law PR middle-end/53623 * ree.c (combine_set_extension): Handle case where source and destination registers in an extension insn are different. (combine_reaching_defs): Allow source and destination registers in extension to be different under limited circumstances. (add_removable_extension): Remove restriction that the source and destination registers in the extension are the same. (find_and_remove_re): Emit a copy from the extension's destination to its source after the defining insn if the source and destination registers are different. PR middle-end/59285 * ifcvt.c (merge_if_block): If we are merging a block with more than one successor with a block with no successors, remove any BARRIER after the second block. 2014-01-07 Dan Xio Qiang * hw-doloop.c (reorg_loops): Release the bitmap obstack. 2014-01-07 John David Anglin PR target/59652 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload for 14-bit register offsets when INT14_OK_STRICT is false. 2014-01-07 Roland Stigge Michael Meissner PR 57386/target * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): Only check TFmode for SPE constants. Don't check TImode or TDmode. 2014-01-07 James Greenhalgh * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for -mcpu. 2014-01-07 Yufeng Zhang * config/arm/arm.c (arm_expand_neon_args): Call expand_expr with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned rtx is const0_rtx or not. 2014-01-07 Richard Sandiford PR target/58115 * target-globals.c (save_target_globals): Remove this_fn_optab handling. * toplev.c: Include optabs.h. (target_reinit): Temporarily restore the global options if another set of options are in force. 2014-01-07 Jakub Jelinek PR rtl-optimization/58668 * cfgcleanup.c (flow_find_cross_jump): Don't count any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p to determine what is counted. (flow_find_head_matching_sequence): Use active_insn_p to determine what is counted. (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence counting change. * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to determine what is counted. PR tree-optimization/59643 * tree-predcom.c (split_data_refs_to_components): If one dr is read and one write, determine_offset fails and the write isn't in the bad component, just put the read into the bad component. 2014-01-07 Mike Stump Jakub Jelinek PR pch/59436 * tree-core.h (struct tree_optimization_option): Change optabs type from unsigned char * to void *. * optabs.c (init_tree_optimization_optabs): Adjust TREE_OPTIMIZATION_OPTABS initialization. 2014-01-06 Jakub Jelinek PR target/59644 * config/i386/i386.h (struct machine_function): Add no_drap_save_restore field. * config/i386/i386.c (ix86_save_reg): Use !cfun->machine->no_drap_save_restore instead of crtl->stack_realign_needed. (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless this function clears frame_pointer_needed. Set cfun->machine->no_drap_save_restore if clearing frame_pointer_needed and DRAP reg is needed. 2014-01-06 Marek Polacek PR c/57773 * doc/implement-c.texi: Mention that other integer types are permitted as bit-field types in strictly conforming mode. 2014-01-06 Felix Yang * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it is newly allocated. 2014-01-06 Richard Earnshaw * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD. 2014-01-06 Martin Jambor PR ipa/59008 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type to int. * ipa-prop.c (ipa_print_node_params): Fix indentation. 2014-01-06 Eric Botcazou PR debug/59350 PR debug/59510 * var-tracking.c (add_stores): Preserve the value of the source even if we don't record the store. 2014-01-06 Terry Guo * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def. 2014-01-05 Iain Sandoe PR bootstrap/59541 * config/darwin.c (darwin_function_section): Adjust return values to correspond to optimisation changes made in r206070. 2014-01-05 Uros Bizjak * config/i386/i386.c (ix86_data_alignment): Calculate max_align from prefetch_block tune setting. (nocona_cost): Correct size of prefetch block to 64. 2014-01-04 Eric Botcazou * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines. (arm_expand_epilogue_apcs_frame): Take into account the number of bytes used to save the static chain register in the computation of the offset from which the FP registers need to be restored. 2014-01-04 Jakub Jelinek PR tree-optimization/59519 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't ICE if get_current_def (current_new_name) is already non-NULL, as long as it is a phi result of some other phi in *new_exit_bb that has the same argument. * config/i386/sse.md (avx512f_load_mask): Emit vmovup{s,d} or vmovdqu* for misaligned_operand. (_loadu, _loaddqu): Handle . * config/i386/i386.c (ix86_expand_special_args_builtin): Set aligned_mem for AVX512F masked aligned load and store builtins and for non-temporal moves. 2014-01-03 Bingfeng Mei PR tree-optimization/59651 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Address range for negative step should be added by TYPE_SIZE_UNIT. 2014-01-03 Andreas Schwab * config/m68k/m68k.c (handle_move_double): Handle pushes with overlapping registers also for registers other than the stack pointer. 2014-01-03 Marek Polacek PR other/59661 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and __builtin_FILE. 2014-01-03 Jakub Jelinek PR target/59625 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider asm goto as jump. * config/i386/i386.md (MODE_SIZE): New mode attribute. (push splitter): Use instead of GET_MODE_SIZE (mode). (lea splitter): Use instead of GET_MODE_SIZE (mode). (mov -1, reg peephole2): Likewise. * config/i386/sse.md (*mov_internal, _storeu, _storedqu, _andnot3, *3, *andnot3, 3): Likewise. * config/i386/subst.md (mask_mode512bit_condition, sd_mask_mode512bit_condition): Likewise. 2014-01-02 Xinliang David Li PR tree-optimization/59303 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup. (dump_predicates): Better output format. (pred_equal_p): New function. (is_neq_relop_p): Ditto. (is_neq_zero_form_p): Ditto. (pred_expr_equal_p): Ditto. (pred_neg_p): Ditto. (simplify_pred): Ditto. (simplify_preds_2): Ditto. (simplify_preds_3): Ditto. (simplify_preds_4): Ditto. (simplify_preds): Ditto. (push_pred): Ditto. (push_to_worklist): Ditto. (get_pred_info_from_cmp): Ditto. (is_degenerated_phi): Ditto. (normalize_one_pred_1): Ditto. (normalize_one_pred): Ditto. (normalize_one_pred_chain): Ditto. (normalize_preds): Ditto. (normalize_cond_1): Remove function. (normalize_cond): Ditto. (is_gcond_subset_of): Ditto. (is_subset_of_any): Ditto. (is_or_set_subset_of): Ditto. (is_and_set_subset_of): Ditto. (is_norm_cond_subset_of): Ditto. (pred_chain_length_cmp): Ditto. (convert_control_dep_chain_into_preds): Type change. (find_predicates): Ditto. (find_def_preds): Ditto. (destroy_predicates_vecs): Ditto. (find_matching_predicates_in_rest_chains): Ditto. (use_pred_not_overlap_with_undef_path_pred): Ditto. (is_pred_expr_subset): Ditto. (is_pred_chain_subset_of): Ditto. (is_included_in): Ditto. (is_superset_of): Ditto. 2014-01-02 Richard Sandiford Update copyright years. 2014-01-02 Richard Sandiford * common/config/arc/arc-common.c, config/arc/arc-modes.def, config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, config/arc/arc.md, config/arc/arc.opt, config/arm/arm_neon_builtins.def, config/arm/crypto.def, config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h, config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h, config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md, config/linux-protos.h, config/linux.c, config/winnt-c.c, diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c, vtable-verify.c, vtable-verify.h: Use the standard form for the copyright notice. 2014-01-02 Tobias Burnus * gcc.c (process_command): Update copyright notice dates. * gcov-dump.c: Ditto. * gcov.c: Ditto. * doc/cpp.texi: Bump @copying's copyright year. * doc/cppinternals.texi: Ditto. * doc/gcc.texi: Ditto. * doc/gccint.texi: Ditto. * doc/gcov.texi: Ditto. * doc/install.texi: Ditto. * doc/invoke.texi: Ditto. 2014-01-01 Jan-Benedict Glaw * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it. 2014-01-01 Jakub Jelinek * config/i386/sse.md (*mov_internal): Guard EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P. PR rtl-optimization/59647 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode new_rtx into UNSIGNED_FLOAT rtxes. Copyright (C) 2014 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.