This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/55192] bfin generates invalid assembly
- From: "joel at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 04 Nov 2012 03:55:28 +0000
- Subject: [Bug target/55192] bfin generates invalid assembly
- Auto-submitted: auto-generated
- References: <bug-55192-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55192
--- Comment #1 from Joel Sherrill <joel at gcc dot gnu.org> 2012-11-04 03:55:28 UTC ---
Output of git bisect
[joel@baltimore gcc]$ git bisect good
Bisecting: 3 revisions left to test after this (roughly 2 steps)
[5169661db3501031dfeb1971582809a702d6cebe] Integrate lexical block into
source_location.
[joel@baltimore gcc]$ git bisect bad
Bisecting: 0 revisions left to test after this (roughly 1 step)
[d452a16984ecc2f20644649f33c8ee38b246cbf0] * dbgcnt.def (sched_breakdep):
New counter. * haifa-sched.c (update_insn_after_change): New static
function, broken out of haifa_change_pattern. (haifa_change_pattern):
Call it. (dep_t heap vecs): Declare. (INSN_COST): Define earlier.
(next_cycle_replace_deps, next_cycle_apply): New static variables.
(apply_replacement): New static function. (recompute_todo_spec): New
argument FOR_BACKTRACK. All callers changed. Handle DEP_REPLACE deps.
(contributes_to_priority_p): False for replaceable deps.
(must_restore_pattern_p, restore_pattern): New static functions.
(schedule_insn): Use them. Apply replacements for broken deps. (struct
haifa_saved_data): Add new fields to keep track of replacements.
(save_backtrack_point): Initialize them. (undo_replacements_for_backtrack):
New static function. (restore_last_backtrack_point,
free_topmost_backtrack_point): Use it and keep track of replacements.
(perform_replacements_new_cycle, undo_all_replacements): New static
functions. (schedule_block): Call these two as necessary. Call
find_modifiable_mems. (try_ready): Tweak the assert. Check for
DEP_POSTPONED. * sched-deps.c: Include "emit-rtl.h". (init_dep_1):
Initialize DEP_NONREG, DEP_MULTIPLE and DEP_REPLACE. (dep_spec_p): True for
DEP_REPLACE deps. (mark_as_hard): New static variable. (update_dep):
Update DEP_NONREG and DEP_MULTIPLE. (add_dependence_list): New argument
hard. All callers changed. Set and clear mark_as_hard around function
body. (add_dependence_list_and_free): Likewise. (haifa_note_mem_dep):
Set DEP_NONREG. (haifa_note_dep): Likewise if mark_as_hard is true.
(sched_analyze_insn): Switch loop with if statement testing for
sel_sched_p. (struct mem_inc_info): New. (attempt_change,
parse_add_or_inc, find_inc, find_mem): New static functions.
(find_modifiable_mems): New function. * sched-int.h (struct
dep_replacement): New. (struct _dep): Add replace, nonreg and multiple
fields. Make type and cost bitfields. (UNKNOWN_DEP_COST): Change to
match the bitfield. (DEP_NONREG, DEP_MULTIPLE, DEP_REPLACE): New macros.
(DEP_POSTPONED): New macro. (DEP_CANCELLED): Renumber.
(find_modifiable_mems): Declare. (enum SCHED_FLAGS): Add
DONT_BREAK_DEPENDENCIES. * sched-rgn.c (init_ready_list): Set TODO_SPEC
here. (new_ready): Don't set HARD_DEP, use DEP_POSTPONED.
(debug_dependencies): Dump DEP_NONREG and DEP_MULTIPLE. * Makefile.in
(sched-deps.o): Update dependencies. * config/c6x/c6x.c (in_hwloop): New
static variable. (c6x_set_sched_flags): If it is true, add
DONT_BREAK_DEPENDENCIES. (hwloop_optimize): Set and clear it around
preliminary scheduling pass.
[joel@baltimore gcc]$
***** I think this might be too far since this appears to be powerpc specific.
[joel@baltimore gcc]$ git bisect bad
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[77ff7cbfe77156dc41943effa80948572fe383fa] 2012-09-19 Tulio Magno Quites
Machado Filho <tuliom@linux.vnet.ibm.com>
[joel@baltimore gcc]$