diff options
author | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-12-18 07:40:17 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-12-18 07:40:17 +0000 |
commit | eef75f5ec020e74ff2c9a90ffed32427abfba837 (patch) | |
tree | 5322d5e68639e47b06f7c6531dcdf93b7aa38e00 /gcc/resource.c | |
parent | b6541c1068441d06393f9c93829138bc1340f4da (diff) | |
download | gcc-eef75f5ec020e74ff2c9a90ffed32427abfba837.zip gcc-eef75f5ec020e74ff2c9a90ffed32427abfba837.tar.gz gcc-eef75f5ec020e74ff2c9a90ffed32427abfba837.tar.bz2 |
200x-xx-xx Kaz Kylheku <kaz@zeugmasystems.com>
gcc/
200x-xx-xx Kaz Kylheku <kaz@zeugmasystems.com>
PR rtl-optimization/34456
* resource.c (mark_set_resources): Use regs_invalidated_by_call
rather than call_used_regs and global_regs.
gcc/testsuite/
PR rtl-optimization/34456
* gcc.c-torture/execute/pr34456.c: New test.
From-SVN: r131033
Diffstat (limited to 'gcc/resource.c')
-rw-r--r-- | gcc/resource.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/resource.c b/gcc/resource.c index 2ffde4f..d7e3339 100644 --- a/gcc/resource.c +++ b/gcc/resource.c @@ -663,9 +663,8 @@ mark_set_resources (rtx x, struct resources *res, int in_dest, rtx link; res->cc = res->memory = 1; - for (r = 0; r < FIRST_PSEUDO_REGISTER; r++) - if (call_used_regs[r] || global_regs[r]) - SET_HARD_REG_BIT (res->regs, r); + + IOR_HARD_REG_SET (res->regs, regs_invalidated_by_call); for (link = CALL_INSN_FUNCTION_USAGE (x); link; link = XEXP (link, 1)) |