diff options
author | Joern Rennecke <amylaar@gcc.gnu.org> | 2013-09-06 18:37:50 +0100 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2013-09-06 18:37:50 +0100 |
commit | 3a001aff33dee19c0e93dddd4a31b67b044db267 (patch) | |
tree | 203b948fdf9aeb277ad7db4a330532f3c0fce32f /gcc/resource.c | |
parent | c42091c1b505de009cea3420537a5453d81d0165 (diff) | |
download | gcc-3a001aff33dee19c0e93dddd4a31b67b044db267.zip gcc-3a001aff33dee19c0e93dddd4a31b67b044db267.tar.gz gcc-3a001aff33dee19c0e93dddd4a31b67b044db267.tar.bz2 |
resource.c (mark_referenced_resources): Handle COND_EXEC.
gcc:
* resource.c (mark_referenced_resources): Handle COND_EXEC.
gcc/testsuite:
* gcc.target/arc/cond-set-use.c: New test.
From-SVN: r202344
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 919cffb..3671812 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)) |