+2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
+
+ * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
+ Enable -fmodulo-sched at -O2 and above.
+ * config/c6x/c6x.md (doloop_end): New expander.
+ (mvilc, sploop, spkernel, loop_end): New patterns.
+ (loop_end with memory destination splitter): New.
+ * config/c6x/c6x.c: Include "hw-doloop.h".
+ (enum unitreqs): New.
+ (unit_req_table): New typedef.
+ (unit_reqs): New static variable.
+ (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
+ res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
+ hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
+ hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
+ (struct c6x_sched_context): New member last_scheduled_iter0.
+ (init_sched_state): Initialize it.
+ (c6x_variable_issue): Update it.
+ (sploop_max_uid_iter0): New static variable.
+ (c6x_sched_reorder_1): Be careful about issuing sploop.
+ (c6x_reorg): Call c6x_hwlooops before the final schedule.
+
+2011-09-30 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/50566
+ * config/avr/avr-protos.h (avr_log_t): New field address_cost.
+ * config/avr/avr.c (avr_address_cost): Use it.
+ * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
+ (avr_log_vadump): Unknown %-codes finish printing.
+
+2011-09-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR inline-asm/50571
+ * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
+ input constraints allow mem and not reg, pass true instead of
+ false as second argument to maybe_fold_reference.
+
+ PR tree-optimization/46309
+ * fold-const.c (make_range, merge_ranges): Remove prototypes.
+ (make_range_step): New function.
+ (make_range): Use it.
+ * tree.h (make_range_step): New prototypes.
+ * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
+ * tree-ssa-reassoc.c: Include diagnostic-core.h.
+ (struct range_entry): New type.
+ (init_range_entry, range_entry_cmp, update_range_test,
+ optimize_range_tests): New functions.
+ (reassociate_bb): Call optimize_range_tests.
+
+2011-09-30 Jakub Jelinek <jakub@redhat.com>
+ Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
+ BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
+ * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix
+ handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
+ (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
+ BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
+
+2011-09-30 Jan Beulich <jbeulich@suse.com>
+
+ * lto-cgraph.c (output_cgraph): Remove processing of
+ 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
+ (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
+ lto_input_toplevel_asms() instead.
+ * lto-section-in.c (lto_section_name): Add "asm" entry.
+ * lto-streamer-in.c (lto_input_toplevel_asms): New.
+ * lto-streamer-out.c (lto_output_toplevel_asms): New.
+ * lto-streamer.h (LTO_minor_version): Bump.
+ (enum lto_section_type): Add LTO_section_asm.
+ (struct lto_asm_header): New.
+ (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
+ * tree-streamer.h (streamer_write_string_cst): Declare.
+ * tree-streamer-out.c (write_string_cst): Rename to
+ streamer_write_string_cst and make global. Handle incoming string
+ being NULL.
+ (streamer_write_tree_header): Adjust call to renamed function.
+
+2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
+
+ * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
+ modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
+ modulo_last_stage): New static variables.
+ (set_modulo_params, discard_delay_pairs_above): New functions.
+ (struct delay_pair): New member stages.
+ (htab_i2_traverse, htab_i1_traverse): New static functions.
+ (record_delay_slot_pair): New arg stages. All callers changed.
+ Record it.
+ (pair_delay): Take stages into account.
+ (add_delay_dependencies): Don't do so for stage pairs.
+ (struct sched_block_state): New member modulo_epilogue.
+ (save_backtrack_point): Don't set SHADOW_P for stage pairs.
+ (unschedule_insns_until): Decrease modulo_insns_scheduled.
+ Set HARD_DEP without using or.
+ (resolve_dependencies): New static function.
+ (prune_ready_list): New arg modulo_epilogue_p. All callers changed.
+ If it is true, allow only insns with INSN_EXACT_TICK set.
+ (schedule_block): Return bool, always true for normal scheduling,
+ true or false depending on modulo scheduling success otherwise.
+ Add bookkeeping for modulo scheduling, and call resolve_dependencies
+ on everything left over after a modulo schedule.
+ (haifa_sched_init): Remove check_cfg call. Clear modulo_ii.
+ * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
+ declarations.
+ (set_modulo_params, discard_delay_pairs_above): Declare.
+ * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
+ * doc/invoke.texi (--param): Document it.
+
+ * sched-ebb.c (schedule_ebb): No longer static. Remove declaration.
+ New arg modulo_scheduling. All callers changed. Move note handling
+ code here from schedule_ebbs.
+ (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
+ out of schedule_ebbs.
+ (schedule_ebbs): Call them. Remove note handling code moved to
+ schedule_ebb.
+ * sched-int.h (schedule_ebb, schedule_ebbs_init,
+ schedule_ebbs_finish): Declare.
+
2011-09-30 Richard Guenther <rguenther@suse.de>
PR middle-end/50574