diff options
author | jfc <jfc@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-09-21 17:21:44 +0000 |
---|---|---|
committer | jfc <jfc@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-09-21 17:21:44 +0000 |
commit | 170051d6ce34e9cc45250afa55a9e52c7cc7ea4a (patch) | |
tree | cf017d9f7efd90e3dbdc5ee69ca91818c3e9ade4 /gcc/final.c | |
parent | 485d67d3e950cec82e1ce9ad933825ca31698948 (diff) | |
download | gcc-170051d6ce34e9cc45250afa55a9e52c7cc7ea4a.tar.gz |
* final.c (final_scan_insn): Disable tracking CC across branches.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22533 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/final.c b/gcc/final.c index 454ab6c71f5..cb779497a83 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1983,7 +1983,7 @@ final (first, file, optimize, prescan) #ifdef HAVE_cc0 /* If CC tracking across branches is enabled, record the insn which jumps to each branch only reached from one place. */ - if (GET_CODE (insn) == JUMP_INSN) + if (optimize && GET_CODE (insn) == JUMP_INSN) { rtx lab = JUMP_LABEL (insn); if (lab && LABEL_NUSES (lab) == 1) @@ -2299,7 +2299,10 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) CC_STATUS_INIT; /* If this label is reached from only one place, set the condition codes from the instruction just before the branch. */ - if (LABEL_NUSES (insn) == 1) + + /* Disabled because some insns set cc_status in the C output code + and NOTICE_UPDATE_CC alone can set incorrect status. */ + if (0 /* optimize && LABEL_NUSES (insn) == 1*/) { rtx jump = LABEL_REFS (insn); rtx barrier = prev_nonnote_insn (insn); |