summaryrefslogtreecommitdiff
path: root/gcc/ira-lives.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-14 03:35:35 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-14 03:35:35 +0000
commitcab5546950f138fc48bbbb468af82f0842321568 (patch)
treee860f6b335f1534025cc69de344ff6c2a804bea8 /gcc/ira-lives.c
parent1a869415308a9372bc950c0b67f3fea43f08ebdf (diff)
downloadgcc-cab5546950f138fc48bbbb468af82f0842321568.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143362 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-lives.c')
-rw-r--r--gcc/ira-lives.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c
index c7868f39a54..0d1e402d82b 100644
--- a/gcc/ira-lives.c
+++ b/gcc/ira-lives.c
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
#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_node_t loop_tree_node)
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);
+ }
}
}