This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RFA: patch to solve PR 38811
- From: Vladimir Makarov <vmakarov at redhat dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Cc: Kenneth Zadeck <Kenneth dot Zadeck at NaturalBridge dot com>, Jeff Law <jeffreyalaw at gmail dot com>
- Date: Tue, 13 Jan 2009 17:17:31 -0500
- Subject: RFA: patch to solve PR 38811
Here is the patch solving PR38811.
The patch was successfully bootrstrapped on x86, x86_64, and itanium:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38811
Ok to commit?
2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
PR target/38811
* Makefile.in (ira-lives.o): Add except.h.
* ira-lives.c: Include except.h.
(process_bb_node_lives): Process can_throw_internal.
Index: ira-lives.c
===================================================================
--- ira-lives.c (revision 143306)
+++ ira-lives.c (working copy)
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3.
#include "tm_p.h"
#include "target.h"
#include "flags.h"
+#include "except.h"
#include "hard-reg-set.h"
#include "basic-block.h"
#include "insn-config.h"
@@ -985,6 +986,13 @@ process_bb_node_lives (ira_loop_tree_nod
SET_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a));
SET_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a));
}
+ if (can_throw_internal (insn))
+ {
+ IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a),
+ call_used_reg_set);
+ IOR_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a),
+ call_used_reg_set);
+ }
}
}
Index: Makefile.in
===================================================================
--- Makefile.in (revision 143306)
+++ Makefile.in (working copy)
@@ -2936,7 +2936,7 @@ ira-emit.o: ira-emit.c $(CONFIG_H) $(SYS
$(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
$(IRA_INT_H)
ira-lives.o: ira-lives.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
- $(TARGET_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) \
+ $(TARGET_H) $(RTL_H) $(REGS_H) except.h hard-reg-set.h $(FLAGS_H) \
insn-config.h $(RECOG_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
$(DF_H) sparseset.h $(IRA_INT_H)
ira.o: ira.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \