+2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
+ (dump_fixup_graph): Use current_function_name.
+ (adjust_cfg_counts): Likewise.
+ * ira-conflicts.c: Do not include tree.h.
+ (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
+
+2012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/51244
+ * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
+
+2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * basic-block.h: Re-group most prototypes per file.
+ (struct edge_list): Remove num_blocks field.
+ (dump_bb_info): Adjust prototypes.
+ (dump_reg_info): Move prototype to regs.h.
+ * function.h: Do not include tree.h.
+ Include vec.h, vecir.h, input.h and machmode.h to compensate.
+ (function_name): New prototype.
+ * gimple.h: Include tree.h to compensate for basic-block.h change.
+ * langhooks.h: Note that tree.h is only necessary for enum tree_code.
+ * regs.h (dump_reg_info): Prototype here.
+ * regset.h: Adjust file reference in comment.
+ (debug_regset): Remove prototype.
+ * rtl.h: Include flags.h for flag_var_tracking_assignments.
+ (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
+ instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
+ (dump_reg_info, dump_flow_info): Remove prototypes.
+ * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
+ to here, the only user. Make static.
+ (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
+ * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
+ flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
+ tree-pass.h, cfgloop.h, and tree-flow.h.
+ Include basic-block.h, the first header I'd expect to be included.
+ (reg_obstack): Move to df-core.c.
+ (free_edge): Remove bogus ATTRIBUTE_UNUSED.
+ (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
+ (redirect_edge_succ_nodup): Move to cfghooks.c.
+ (dump_regset, debug_regset): Move to df-core.c.
+ (dump_bb_info): Move to cfgrtl.c.
+ (dump_reg_info): Move to regstat.c.
+ (dump_flow_info): Move to cfgrtl.c.
+ (debug_flow_info): Likewise.
+ (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
+ * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
+ insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
+ (flow_active_insn_p, forwarder_block_p, can_fallthru,
+ could_fall_through): Move to cfgrtl.c.
+ (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
+ (create_edge_list): Do not set edge_list's removed num_blocks.
+ (print_edge_list): Look at n_basic_blocks instead of num_blocks.
+ (flow_nodes_print): Remove.
+ (flow_edge_list_print): Remove.
+ (inverted_post_order_compute): Use FOR_ALL_BB.
+ *cfgrtl.c (dump_flow_info): Moved from cfg.c.
+ Do not call dump_reg_info.
+ (debug_flow_info): Moved from cfg.c
+ (dump_bb_info): Moved from cfg.c. Take 'verbose' argument
+ to avoid looking at TDF_* flags from tree-pass.h.
+ (flow_active_insn_p, forwarder_block_p, can_fallthru,
+ could_fall_through): Moved from cfganal.c.
+ (print_rtl_with_bb): Adjust dump_bb_info calls.
+ * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
+ (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
+ (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
+ * cselib.c: Include tree.h with a FIXME.
+ * df-core.c (reg_obstack): Moved from cfg.c.
+ (dump_regset): Likewise.
+ (debug_regset): Likewise. Make a DEBUG_FUNCTION.
+ * final.c (compute_alignments): Call dump_reg_info before
+ dump_flow_info.
+ * function.c (function_name): New function.
+ (current_function_name): Use it.
+ * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
+ dump_flow_info.
+ * ira-conflicts.c: Include tree.h with a note.
+ * regstat.c (dump_reg_info): Moved here from cfg.c.
+ * loop-init.c: Include regs.h instead of hard-reg-set.h.
+ (rtl_loop_init): Call dump_reg_info before dump_flow_info.
+ (rtl_loop_done): Likewise.
+ * mcf.c: Include tree.h before langhooks.h.
+ * predict.c (maybe_hot_count_p): Assert we have cfun.
+ (probably_never_executed_bb_p): Likewise.
+ * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
+ instead of dump_flow_info.
+ * sched-deps.c: Include tree.h with a FIXME.
+ (call_may_noreturn_p): Add FIXME note why this function has to
+ look at function decls instead of function decl flags.
+ * sched-vis.c: Include tree.h with a FIXME.
+ (print_rtl_slim): Adjust dump_bb_info uses.
+ * statistics.c (statistics_fini_pass_2): Use current_function_name
+ to avoid including tree.h.
+ (statistics_counter_event): Use function_name for the same reason.
+ (statistics_histogram_event): Likewise.
+ * tracer.c (tracer): Remove bogus gcc_assert. Use brief_dump_cfg
+ instead of dump_flow_info.
+ * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
+ before dump_flow_info.
+ * doc/cfg.texi: Update CFG documentation.
+ * Makefile.in (RTL_H): Depend on FLAGS_H.
+ (GIMPLE_H): Depend on TREE_H.
+ (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
+ but no longer on TREE_H.
+ (C_COMMON_H): Depend on TREE_H.
+ (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
+ sched-deps.o, sched-vis.o): Fixup dependencies.
+
+2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * alias.h: Do not include coretypes.h in header files.
+ * cppbuiltin.h: Likewise.
+ * double-int.h: Likewise.
+ * gimple-fold.h: Likewise.
+ * flags.h: Likewise.
+ * tree-ssa-alias.h: Likewise.
+ * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
+ OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
+ * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
+ (TREE_H): Likewise.
+ (ALIAS_H): Do not depend on coretypes.h.
+ (FLAGS_H): Likewise.
+ (realmpfr.o): Depend on coretypes.h.
+
+2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
+ gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
+
+2012-07-07 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
+ (TARGET_FPA): Delete definition.
+ (TARGET_MAVERICK): Likewise.
+ (TARGET_FPA_EMU2): Likewise.
+ (arm_fp_model): Remove FPA and Maverick models.
+ (arm_arch_cirrus): Delete declaration.
+ (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
+ (FIXED_REGISTERS): Remove FPA and Maverick support. Reorganize.
+ (CALL_USED_REGISTERS): Likewise.
+ (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
+ (FIRST_VFP_REGNUM): Renumbered.
+ (D7_VFP_REGNUM): Chain definition.
+ (LAST_LO_VFP_REGNUM): Likewise.
+ (FIRST_HI_VFP_REGNUM): Likewise.
+ (LAST_HI_VFP_REGNUM): Likewise.
+ (FIRST_IWMMXT_GR_REGNUM): Likewise.
+ (LAST_IWMMXT_GR_REGNUM): Likewise.
+ (FIRST_IWMMXT_REGNUM): Likewise.
+ (LAST_IWMMXT_REGNUM): Likewise.
+ (FRAME_POINTER_REGNUM): Renumbered.
+ (ARG_POINTER_REGNUM): Renumbered.
+ (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
+ (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
+ (HARD_REGNO_REGNUM): Remove FPA support.
+ (REG_ALLOC_ORDER): Remove FPA and Maverick registers. Reorganize.
+ (reg_class): Likewise.
+ (REG_CLASS_NAMES): Likewise.
+ (REG_CLASS_CONTENTS): Likewise.
+ (CANNOT_CHANGE_MODE_CLASS): Never true. Update comment.
+ (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
+ (CLASS_MAX_NREGS): Remove FPA and Maverick support.
+ * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
+ Reorganize. Use AAPCS preferred names.
+ (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick. Update
+ comments.
+ (OVERLAPPING_REGISTER_NAMES): Update register numbering.
+ * arm.c (FL_CIRRUS): Delete definition.
+ (arm_arch_cirrus): Delete variable.
+ (arm_float_words_big_endian): Delete function.
+ (cirrus_memory_offset): Delete function.
+ (output_mov_long_double_fpa_from_arm): Delete function.
+ (output_mov_long_double_arm_from_fpa): Delete function.
+ (output_mov_double_fpa_from_arm): Delete function.
+ (output_mov_double_arm_from_fpa): Delete function.
+ (emit_sfm): Delete function.
+ (maybe_get_arm_condition_code): Update comment.
+ (arm_file_start): Always use softvfp for softfloat systems.
+ (thumb_core_reg_alloc_order): Adjust for updated register allocation.
+ (arm_option_override): Remove FPA and Maverick support. Always
+ default to vfp as the fallback FPU format.
+ (use_return_insn): Remove FPA support.
+ (arm_get_frame_offsets): Likewise.
+ (arm_save_coproc_regs): Likewise.
+ (arm_canonicalize_comparison): Remove Maverick support.
+ (arm_select_cc_mode): Likewise.
+ (arm_gen_compare_reg): Likewise.
+ (arm_print_operand): Likewise.
+ (arm_libcall_value_1): Remove FPA and Maverick support.
+ (arm_function_value_regno_p): Likewise.
+ (arm_apply_result_size): Likewise.
+ (arm_legitimate_index_p): Likewise.
+ (thumb2_legitimate_index_p): Likewise.
+ (legitimize_reload_address): Likewise.
+ (arm_register_move_cost): Likewise.
+ (arm_hard_regno_mode_ok): Likewise.
+ (arm_regno_class): Likewise.
+ (arm_dbx_register_number): Likewise.
+ (arm_emit_unwind_sequence): Likewise.
+ (arm_conditional_register_usage): Likewise.
+ * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
+ (cirrus_memory_offset): Likewise.
+ (output_move_long_double_fpa_from_arm): Likewise.
+ (output_move_long_double_arm_from_fpa): Likewise.
+ (output_move_double_fpa_from_arm): Likewise.
+ (output_move_double_arm_from_fpa): Likewise.
+ (arm_float_words_big_endian): Likewise.
+ * arm.md (CC_REGNUM): Renumbered.
+ (VFPCC_REGNUM): Moved here. Renumbered.
+ (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
+ (attr fpu): Remove FPA and Maverick support.
+ * vfp.md (VFPCC_REGNUM): Delete. Moved to arm.md.
+ * arm-cores.def (ep9312): Remove Maverick support.
+ * arm-arches.def (ep9312): Delete architecture.
+ * arm-tables.opt: Regenerated.
+
+ * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
+
+2012-07-07 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR tree-optimization/53881
+ * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
+ comparing labels to establish uniqueness of a switch case target,
+ use the CFG instead.
+
+2012-07-07 Ulrich Weigand <ulrich.weigand@linaro.org>
+
+ * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
+ due to negative shift amount.
+