OSDN Git Service

* common/config/c6x/c6x-common.c (c6x_option_optimization_table):
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 75303db..485e839 100644 (file)
@@ -1,3 +1,121 @@
+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