diff options
author | John Carr <jfc@mit.edu> | 1998-09-21 17:21:44 +0000 |
---|---|---|
committer | John Carr <jfc@gcc.gnu.org> | 1998-09-21 17:21:44 +0000 |
commit | 7ad7f828fcb8108dc31350de6c8e09fbdcd33816 (patch) | |
tree | cf017d9f7efd90e3dbdc5ee69ca91818c3e9ade4 /gcc | |
parent | 43566944af69a4299260b1dcc46b5d5147a6bf8b (diff) | |
download | gcc-7ad7f828fcb8108dc31350de6c8e09fbdcd33816.zip gcc-7ad7f828fcb8108dc31350de6c8e09fbdcd33816.tar.gz gcc-7ad7f828fcb8108dc31350de6c8e09fbdcd33816.tar.bz2 |
* final.c (final_scan_insn): Disable tracking CC across branches.
From-SVN: r22533
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/final.c | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0ff2d7..cfad29c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Mon Sep 21 20:19:41 1998 John Carr <jfc@mit.edu> + + * final.c (final_scan_insn): Disable tracking CC across branches. + Mon Sep 21 17:15:26 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> * expr.h (eh_rtime_match_libfunc): New extern declaration. diff --git a/gcc/final.c b/gcc/final.c index 454ab6c..cb77949 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); |