diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-01-14 03:35:35 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-01-14 03:35:35 +0000 |
commit | cab5546950f138fc48bbbb468af82f0842321568 (patch) | |
tree | e860f6b335f1534025cc69de344ff6c2a804bea8 /gcc/ira-lives.c | |
parent | 1a869415308a9372bc950c0b67f3fea43f08ebdf (diff) | |
download | gcc-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.c | 8 |
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); + } } } |