diff options
author | DJ Delorie <dj@redhat.com> | 2015-01-26 23:07:54 -0500 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2015-01-26 23:07:54 -0500 |
commit | 1230f784cfacdc877d711e335fdded154263b5fb (patch) | |
tree | 54b45df4ce9ddaa17cf5f096b0ad49dd51412d80 /gcc | |
parent | 82a0fe9a1d3ab3ed7ce7ed6eb2f7504f1833296b (diff) | |
download | gcc-1230f784cfacdc877d711e335fdded154263b5fb.zip gcc-1230f784cfacdc877d711e335fdded154263b5fb.tar.gz gcc-1230f784cfacdc877d711e335fdded154263b5fb.tar.bz2 |
rl78.c (move_elim_pass): Don't optimize away volatile memory references.
* config/rl78/rl78.c (move_elim_pass): Don't optimize away
volatile memory references.
From-SVN: r220151
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rl78/rl78.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e44eb73..5add607 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-01-26 DJ Delorie <dj@redhat.com> + + * config/rl78/rl78.c (move_elim_pass): Don't optimize away + volatile memory references. + 2015-01-26 Oleg Endo <olegendo@gcc.gnu.org> PR target/49263 diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c index ebb25dd..a6d97cd 100644 --- a/gcc/config/rl78/rl78.c +++ b/gcc/config/rl78/rl78.c @@ -222,7 +222,12 @@ move_elim_pass (void) can eliminate the second SET. */ if (prev && rtx_equal_p (SET_DEST (prev), SET_SRC (set)) - && rtx_equal_p (SET_DEST (set), SET_SRC (prev))) + && rtx_equal_p (SET_DEST (set), SET_SRC (prev)) + /* ... and none of the operands are volatile. */ + && ! volatile_refs_p (SET_SRC (prev)) + && ! volatile_refs_p (SET_DEST (prev)) + && ! volatile_refs_p (SET_SRC (set)) + && ! volatile_refs_p (SET_DEST (set))) { if (dump_file) fprintf (dump_file, " Delete insn %d because it is redundant\n", |