johannes    02/09/05 14:01:22

  Modified:    gcc      gcse.c
  Log:
  Restore missing optimization needed by ellipticrypt (was lost in merge)
  
  Revision  Changes    Path
  1.19      +5 -38     gcc3/gcc/gcse.c
  
  Index: gcse.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/gcse.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- gcse.c    2002/08/26 05:39:37     1.18
  +++ gcse.c    2002/09/05 21:01:21     1.19
  @@ -4222,39 +4222,7 @@
                  print_rtl (gcse_file, src);
                  fprintf (gcse_file, "\n");
                }
  -#if 0 /* APPLE MERGE what to do with disappeared local code below? */
  -
  -           /* The original insn setting reg_used may or may not now be
  -              deletable.  We leave the deletion to flow.  */
            }
  -
  -       /* Try to propagate a CONST_INT into a conditional jump.
  -          We're pretty specific about what we will handle in this
  -          code, we can extend this as necessary over time.
  -
  -          Right now the insn in question must look like
  -          (set (pc) (if_then_else ...))  */
  -       else if (alter_jumps
  -                && GET_CODE (insn) == JUMP_INSN
  -                && condjump_p (insn)
  -                && ! simplejump_p (insn))
  -         changed |= cprop_jump (bb, insn, reg_used->reg_rtx, src);
  -
  -#ifdef HAVE_cc0
  -       /* Similar code for machines that use a pair of CC0 setter and
  -          conditional jump insn.  */
  -       else if (alter_jumps
  -                && GET_CODE (PATTERN (insn)) == SET
  -                && SET_DEST (PATTERN (insn)) == cc0_rtx
  -                && GET_CODE (NEXT_INSN (insn)) == JUMP_INSN
  -                && condjump_p (NEXT_INSN (insn))
  -                && ! simplejump_p (NEXT_INSN (insn))
  -                && cprop_cc0_jump (bb, insn, reg_used, src))
  -         {
  -           changed = 1;
  -           break;
  -         }
  -#endif
          /* APPLE LOCAL */
          /* Look for int div by constant and expand if found. */
          if ( GET_CODE (insn) == INSN
  @@ -4274,13 +4242,13 @@
                    GET_CODE (XEXP (PATTERN (insn), 1))==DIV ? 0 : 1);
              if ( result != target )
                emit_move_insn (target, result);
  -           seq = gen_sequence ();
  +           seq = get_insns ();
              end_sequence ();
              emit_insn_after (seq, insn);
              PUT_CODE (insn, NOTE);
              NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
              NOTE_SOURCE_FILE (insn) = 0;
  -           update_bb_for_insn (bb);
  +           update_bb_for_insn (BLOCK_FOR_INSN (insn));
              changed = 1;
              break;
            }
  @@ -4302,19 +4270,18 @@
                    GET_CODE (XEXP (note, 0))==DIV ? 0 : 1);
              if ( result != target )
                emit_move_insn (target, result);
  -           seq = gen_sequence ();
  +           seq = get_insns ();
              end_sequence ();
              emit_insn_after (seq, insn);
              PUT_CODE (insn, NOTE);
              NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
              NOTE_SOURCE_FILE (insn) = 0;
  -           update_bb_for_insn (bb);
  +           update_bb_for_insn (BLOCK_FOR_INSN (insn));
              changed = 1;
              break;
  -#endif
            }
  +       /* APPLE LOCAL end */
        }
  -      /* APPLE LOCAL end */
         else if (GET_CODE (src) == REG
               && REGNO (src) >= FIRST_PSEUDO_REGISTER
               && REGNO (src) != regno)
  
  
  


Reply via email to