This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/39139] [4.4 Regression] ICE with stringop and register var
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Feb 2009 10:29:06 -0000
- Subject: [Bug target/39139] [4.4 Regression] ICE with stringop and register var
- References: <bug-39139-87@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #25 from jakub at gcc dot gnu dot org 2009-02-10 10:29 -------
Created an attachment (id=17275)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17275&action=view)
gcc44-pr39139.patch
Quick patch to avoid sinking of block copies or clearings if current function
has local explicit register vars. If there are other passes that move around
calls or potential calls to places where they haven't been originally, they
could do similar thing. If needed, we could track which basic blocks have such
vars live etc., but I don't think it is worth it.
The alternative would be to make DECL_HARD_REGISTER initializations (and uses?)
act like loads/stores of pointers that can point to any memory, but that seems
to me even bigger overkill, there is nothing wrong with moving a normal memory
load or store, it is just the potential libcalls and inline stringops that are
a problem.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39139