This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/24232] [4.1 Regression] ICE: segmentation fault in sched-ebb.c:220 add_missing_bbs
- From: "wilson at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Oct 2005 03:07:17 -0000
- Subject: [Bug target/24232] [4.1 Regression] ICE: segmentation fault in sched-ebb.c:220 add_missing_bbs
- References: <bug-24232-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #12 from wilson at gcc dot gnu dot org 2005-10-12 03:07 -------
Created an attachment (id=9975)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9975&action=view)
Untested patch to fix problems with dependency serialization.
This adds an UNCOND argument to add_dependence_list, so that all structural
dependencies can be made unconditionally. Examples of structural dependencies
are serialization dependencies on last_pending_memory_flush, dependencies added
to preserve REG_N_CALLS_CROSSED==0, and dependencies for clobbers. All other
dependencies are still created only if the two instructions are not mutex.
This also eliminates some redundant JUMP_INSN dependency handling, as both
sched_analyze and sched_analyze_insn were creating dependencies for JUMP_INSNs.
I deleted the former one.
This also stops trying to treat last_pending_memory_flush as a list. It can
not function both as a list and as a serialization point.
This patch effectively makes pending_flush_length obsolete, but I can't delete
it because sched-rgn.c is using it in a strange way I don't understand.
This patch probably makes more dependencies than is necessary or desirable, but
some development work will be needed to fix that. I believe that we can keep a
list of pending branch insns by keeping a list parallel to the pending read and
pending write lists. This would help reduce the number of dependencies, and
help with cross block scheduling. This will be a bit of work though, and may
not be reasonable to attempt at this late point.
--
wilson at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #9960 is|0 |1
obsolete| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24232