diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1998-05-14 00:44:02 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1998-05-14 01:44:02 +0100 |
commit | 029b38ff0437ff2ea5fc84c8e026d6f055727194 (patch) | |
tree | 051fe061feaa27120cdc1d7f7ca4ce4be1c132a8 /gcc/reload.c | |
parent | f824910ea1f3cb4ec56581a1f752c0c777720d49 (diff) | |
download | gcc-029b38ff0437ff2ea5fc84c8e026d6f055727194.zip gcc-029b38ff0437ff2ea5fc84c8e026d6f055727194.tar.gz gcc-029b38ff0437ff2ea5fc84c8e026d6f055727194.tar.bz2 |
reload.c (remove_replacements): New function.
* reload.c (remove_replacements): New function.
* reload.h (remove_replacements): Declare.
* reload1.c (choose_reload_regs): Disable some reloads that
belong to inherited reloads.
From-SVN: r19735
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 7d7350e2..ef62ef9 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -1506,6 +1506,21 @@ transfer_replacements (to, from) replacements[i].what = to; } +/* Remove all replacements in reload FROM. */ +void +remove_replacements (from) + int from; +{ + int i, j; + + for (i = 0, j = 0; i < n_replacements; i++) + { + if (replacements[i].what == from) + continue; + replacements[j++] = replacements[i]; + } +} + /* If there is only one output reload, and it is not for an earlyclobber operand, try to combine it with a (logically unrelated) input reload to reduce the number of reload registers needed. |