diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-22 22:30:12 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-22 22:30:12 +0000 |
commit | b447ca786ca15c48183b743fa0a61fca2f661d55 (patch) | |
tree | 4f4554809ba030c1b41d267109a8f8706fa58231 /gcc/rtl.c | |
parent | f57d8b490bef60249b6079e395efed6d92bef847 (diff) | |
download | gcc-b447ca786ca15c48183b743fa0a61fca2f661d55.tar.gz |
gcc/
* rtl.h (shallow_copy_rtvec): Declare.
* rtl.c (shallow_copy_rtvec): New function.
* cselib.c (cselib_subst_to_values): Use it. Only modify an
rtx field if the subrtx has changed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153475 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtl.c')
-rw-r--r-- | gcc/rtl.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/rtl.c b/gcc/rtl.c index 53a4992f482..aefbbf347d9 100644 --- a/gcc/rtl.c +++ b/gcc/rtl.c @@ -164,6 +164,20 @@ rtvec_alloc (int n) return rt; } +/* Create a bitwise copy of VEC. */ + +rtvec +shallow_copy_rtvec (rtvec vec) +{ + rtvec newvec; + int n; + + n = GET_NUM_ELEM (vec); + newvec = rtvec_alloc (n); + memcpy (&newvec->elem[0], &vec->elem[0], sizeof (rtx) * n); + return newvec; +} + /* Return the number of bytes occupied by rtx value X. */ unsigned int |