diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-06 17:37:50 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-06 17:37:50 +0000 |
commit | 02b1a16c723f587755b25df5aa82ddee073ed13e (patch) | |
tree | 203b948fdf9aeb277ad7db4a330532f3c0fce32f /gcc/resource.c | |
parent | d8e17376c1b6ba379cc918f06843792e35c4e38e (diff) | |
download | gcc-02b1a16c723f587755b25df5aa82ddee073ed13e.tar.gz |
gcc:
* resource.c (mark_referenced_resources): Handle COND_EXEC.
gcc/testsuite:
* gcc.target/arc/cond-set-use.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202344 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/resource.c')
-rw-r--r-- | gcc/resource.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/resource.c b/gcc/resource.c index 919cffbd0a0..367181289df 100644 --- a/gcc/resource.c +++ b/gcc/resource.c @@ -374,6 +374,16 @@ mark_referenced_resources (rtx x, struct resources *res, case INSN: case JUMP_INSN: + if (GET_CODE (PATTERN (x)) == COND_EXEC) + /* In addition to the usual references, also consider all outputs + as referenced, to compensate for mark_set_resources treating + them as killed. This is similar to ZERO_EXTRACT / STRICT_LOW_PART + handling, execpt that we got a partial incidence instead of a partial + width. */ + mark_set_resources (x, res, 0, + include_delayed_effects + ? MARK_SRC_DEST_CALL : MARK_SRC_DEST); + #ifdef INSN_REFERENCES_ARE_DELAYED if (! include_delayed_effects && INSN_REFERENCES_ARE_DELAYED (x)) |