i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to decide whether...
authorJan Hubicka <jh@suse.cz>
Wed, 12 Jun 2002 14:51:09 +0000 (16:51 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 12 Jun 2002 14:51:09 +0000 (14:51 +0000)
* i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
decide whether emit the short opcode.
* i386.h (x86_shift1): Declare.
(TARGET_SHIFT1): New macro.
* i386.c (x86_shift1): New global variable.

* toplev.c (rest_of_compilation): Call find_basic_block pre-loop unconditionally;
make loop to rebuild CFG; kill unnecesary find_basic_block calls;
kill compute_bb_for_insn call.
* cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
* haifa-sched.c (sched_init): Likewise.
* ssa-ccp.c (ssa_const_prop): Likewise.
* ssa-dce.c (ssa_eliminate_dead_code): Likewise.

From-SVN: r54552

gcc/ChangeLog
gcc/cfgbuild.c
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/haifa-sched.c
gcc/ssa-ccp.c
gcc/ssa-dce.c
gcc/toplev.c

index 4776742..1680440 100644 (file)
@@ -1,3 +1,19 @@
+Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
+       decide whether emit the short opcode.
+       * i386.h (x86_shift1): Declare.
+       (TARGET_SHIFT1): New macro.
+       * i386.c (x86_shift1): New global variable.
+
+       * toplev.c (rest_of_compilation): Call find_basic_block pre-loop unconditionally;
+       make loop to rebuild CFG; kill unnecesary find_basic_block calls;
+       kill compute_bb_for_insn call.
+       * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
+       * haifa-sched.c (sched_init): Likewise.
+       * ssa-ccp.c (ssa_const_prop): Likewise.
+       * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
+
 2002-06-11  David S. Miller  <davem@redhat.com>
 
        * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
index 6b7a9ad..8b7b705 100644 (file)
@@ -647,13 +647,6 @@ find_basic_blocks (f, nregs, file)
 
   find_basic_blocks_1 (f);
 
-  /* Record the block to which an insn belongs.  */
-  /* ??? This should be done another way, by which (perhaps) a label is
-     tagged directly with the basic block that it starts.  It is used for
-     more than that currently, but IMO that is the only valid use.  */
-
-  compute_bb_for_insn ();
-
   /* Discover the edges of our cfg.  */
   make_edges (label_value_list, ENTRY_BLOCK_PTR->next_bb, EXIT_BLOCK_PTR->prev_bb, 0);
 
index 93e1a65..b207abe 100644 (file)
@@ -394,6 +394,7 @@ const int x86_accumulate_outgoing_args = m_ATHLON | m_PENT4 | m_PPRO;
 const int x86_prologue_using_move = m_ATHLON | m_PENT4 | m_PPRO;
 const int x86_epilogue_using_move = m_ATHLON | m_PENT4 | m_PPRO;
 const int x86_decompose_lea = m_PENT4;
+const int x86_shift1 = ~m_486;
 const int x86_arch_always_fancy_math_387 = m_PENT | m_PPRO | m_ATHLON | m_PENT4;
 
 /* In case the avreage insn count for single function invocation is
@@ -1834,6 +1835,10 @@ classify_argument (mode, type, classes, bit_offset)
       return 1;
     case V4SFmode:
     case V4SImode:
+    case V16QImode:
+    case V8HImode:
+    case V2DFmode:
+    case V2DImode:
       classes[0] = X86_64_SSE_CLASS;
       classes[1] = X86_64_SSEUP_CLASS;
       return 2;
index 11b663c..87b574b 100644 (file)
@@ -208,7 +208,7 @@ extern const int x86_add_esp_4, x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8;
 extern const int x86_partial_reg_dependency, x86_memory_mismatch_stall;
 extern const int x86_accumulate_outgoing_args, x86_prologue_using_move;
 extern const int x86_epilogue_using_move, x86_decompose_lea;
-extern const int x86_arch_always_fancy_math_387;
+extern const int x86_arch_always_fancy_math_387, x86_shift1;
 extern int x86_prefetch_sse;
 
 #define TARGET_USE_LEAVE (x86_use_leave & CPUMASK)
@@ -250,6 +250,7 @@ extern int x86_prefetch_sse;
 #define TARGET_EPILOGUE_USING_MOVE (x86_epilogue_using_move & CPUMASK)
 #define TARGET_DECOMPOSE_LEA (x86_decompose_lea & CPUMASK)
 #define TARGET_PREFETCH_SSE (x86_prefetch_sse)
+#define TARGET_SHIFT1 (x86_shift1 & CPUMASK)
 
 #define TARGET_STACK_PROBE (target_flags & MASK_STACK_PROBE)
 
index df0f117..094f441 100644 (file)
        return "sal{q}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{q}\t%0";
       else
        return "sal{q}\t{%2, %0|%0, %2}";
        return "sal{q}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{q}\t%0";
       else
        return "sal{q}\t{%2, %0|%0, %2}";
        return "sal{l}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{l}\t%0";
       else
        return "sal{l}\t{%2, %0|%0, %2}";
        return "sal{l}\t{%b2, %k0|%k0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{l}\t%k0";
       else
        return "sal{l}\t{%2, %k0|%k0, %2}";
        return "sal{l}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{l}\t%0";
       else
        return "sal{l}\t{%2, %0|%0, %2}";
        return "sal{l}\t{%b2, %k0|%k0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{l}\t%k0";
       else
        return "sal{l}\t{%2, %k0|%k0, %2}";
        return "sal{w}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{w}\t%0";
       else
        return "sal{w}\t{%2, %0|%0, %2}";
        return "sal{w}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{w}\t%0";
       else
        return "sal{w}\t{%2, %0|%0, %2}";
        return "sal{w}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{w}\t%0";
       else
        return "sal{w}\t{%2, %0|%0, %2}";
        }
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        {
          if (get_attr_mode (insn) == MODE_SI)
            return "sal{l}\t%0";
        }
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        {
          if (get_attr_mode (insn) == MODE_SI)
            return "sal{l}\t%0";
        return "sal{b}\t{%b2, %0|%0, %b2}";
       else if (GET_CODE (operands[2]) == CONST_INT
               && INTVAL (operands[2]) == 1
-              && (TARGET_PENTIUM || TARGET_PENTIUMPRO))
+              && (TARGET_SHIFT1 || optimize_size))
        return "sal{b}\t%0";
       else
        return "sal{b}\t{%2, %0|%0, %2}";
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "sar{q}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (set (match_operand:DI 0 "nonimmediate_operand" "=rm")
        (ashiftrt:DI (match_dup 1) (match_dup 2)))]
   "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)"
   "sar{q}\t%0"
   [(set_attr "type" "ishift")
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "sar{l}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
                                     (match_operand:QI 2 "const_int_1_operand" ""))))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "sar{l}\t%k0"
   [(set_attr "type" "ishift")
    (set_attr "length" "2")])
    (set (match_operand:SI 0 "nonimmediate_operand" "=rm")
        (ashiftrt:SI (match_dup 1) (match_dup 2)))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)"
   "sar{l}\t%0"
   [(set_attr "type" "ishift")
    (set (match_operand:DI 0 "register_operand" "=r")
        (zero_extend:DI (ashiftrt:SI (match_dup 1) (match_dup 2))))]
   "TARGET_64BIT && ix86_match_ccmode (insn, CCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)"
   "sar{l}\t%k0"
   [(set_attr "type" "ishift")
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ASHIFTRT, HImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "sar{w}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (set (match_operand:HI 0 "nonimmediate_operand" "=rm")
        (ashiftrt:HI (match_dup 1) (match_dup 2)))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (ASHIFTRT, HImode, operands)"
   "sar{w}\t%0"
   [(set_attr "type" "ishift")
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ASHIFTRT, QImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "sar{b}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ASHIFTRT, QImode, operands)
    && (! TARGET_PARTIAL_REG_STALL || optimize_size)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "sar{b}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (set (match_operand:QI 0 "nonimmediate_operand" "=qm")
        (ashiftrt:QI (match_dup 1) (match_dup 2)))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)"
   "sar{b}\t%0"
   [(set_attr "type" "ishift")
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "shr{q}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (set (match_operand:DI 0 "nonimmediate_operand" "=rm")
        (lshiftrt:DI (match_dup 1) (match_dup 2)))]
   "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)"
   "shr{q}\t%0"
   [(set_attr "type" "ishift")
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (LSHIFTRT, HImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "shr{l}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "shr{l}\t%k0"
   [(set_attr "type" "ishift")
    (set_attr "length" "2")])
    (set (match_operand:SI 0 "nonimmediate_operand" "=rm")
        (lshiftrt:SI (match_dup 1) (match_dup 2)))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)"
   "shr{l}\t%0"
   [(set_attr "type" "ishift")
    (set (match_operand:DI 0 "register_operand" "=r")
        (lshiftrt:DI (zero_extend:DI (match_dup 1)) (match_dup 2)))]
   "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)"
   "shr{l}\t%k0"
   [(set_attr "type" "ishift")
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (LSHIFTRT, HImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "shr{w}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (set (match_operand:HI 0 "nonimmediate_operand" "=rm")
        (lshiftrt:HI (match_dup 1) (match_dup 2)))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)"
   "shr{w}\t%0"
   [(set_attr "type" "ishift")
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (LSHIFTRT, QImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "shr{b}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (clobber (reg:CC 17))]
   "(! TARGET_PARTIAL_REG_STALL || optimize_size)
    && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "shr{b}\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
    (set (match_operand:QI 0 "nonimmediate_operand" "=qm")
        (lshiftrt:QI (match_dup 1) (match_dup 2)))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
+   && (TARGET_SHIFT1 || optimize_size)
    && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)"
   "shr{b}\t%0"
   [(set_attr "type" "ishift")
                   (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (ROTATE, DImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "rol{q}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                   (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ROTATE, SImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "rol{l}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                     (match_operand:QI 2 "const_int_1_operand" ""))))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "rol{l}\t%k0"
   [(set_attr "type" "rotate")
    (set_attr "length" "2")])
                   (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ROTATE, HImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "rol{w}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
    (clobber (reg:CC 17))]
   "(! TARGET_PARTIAL_REG_STALL || optimize_size)
    && ix86_binary_operator_ok (ROTATE, QImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "rol{b}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                   (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ROTATE, QImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "rol{b}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, DImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "ror{q}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ROTATERT, SImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "ror{l}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                       (match_operand:QI 2 "const_int_1_operand" ""))))
    (clobber (reg:CC 17))]
   "TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "ror{l}\t%k0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ROTATERT, HImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "ror{w}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
                     (match_operand:QI 2 "const_int_1_operand" "")))
    (clobber (reg:CC 17))]
   "ix86_binary_operator_ok (ROTATERT, QImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "ror{b}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
    (clobber (reg:CC 17))]
   "(! TARGET_PARTIAL_REG_STALL || optimize_size)
    && ix86_binary_operator_ok (ROTATERT, QImode, operands)
-   && (TARGET_PENTIUM || TARGET_PENTIUMPRO)"
+   && (TARGET_SHIFT1 || optimize_size)"
   "ror{b}\t%0"
   [(set_attr "type" "rotate")
    (set (attr "length") 
index c39b050..7eb079b 100644 (file)
@@ -2368,8 +2368,6 @@ sched_init (dump_file)
 
   init_dependency_caches (luid);
 
-  compute_bb_for_insn ();
-
   init_alias_analysis ();
 
   if (write_symbols != NO_DEBUG)
index af4c593..e02ff8a 100644 (file)
@@ -991,9 +991,6 @@ ssa_const_prop ()
   df_analyse (df_analyzer, 0,
              DF_RD_CHAIN | DF_RU_CHAIN | DF_REG_INFO | DF_HARD_REGS);
 
-  /* We need mappings from insn to its containing block.  */
-  compute_bb_for_insn ();
-
   /* Perform a quick and dirty dead code elimination pass.  This is not
      as aggressive as it could be, but it's good enough to clean up a
      lot of unwanted junk and it is fast.  */
index db13b9a..ffee1c9 100644 (file)
@@ -508,8 +508,6 @@ ssa_eliminate_dead_code ()
 
   /* Prepare for use of BLOCK_NUM ().  */
   connect_infinite_loops_to_exit ();
-   /* Be careful not to clear the added edges.  */
-  compute_bb_for_insn ();
 
   /* Compute control dependence.  */
   pdom = (int *) xmalloc (last_basic_block * sizeof (int));
index 4f13543..5105ec8 100644 (file)
@@ -2642,6 +2642,7 @@ rest_of_compilation (decl)
   free_bb_for_insn ();
   copy_loop_headers (insns);
   purge_line_number_notes (insns);
+  find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
 
   timevar_pop (TV_JUMP);
   close_dump_file (DFI_jump, print_rtl, insns);
@@ -2662,7 +2663,6 @@ rest_of_compilation (decl)
       timevar_push (TV_TO_SSA);
       open_dump_file (DFI_ssa, decl);
 
-      find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
       cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
       convert_to_ssa ();
 
@@ -2717,8 +2717,6 @@ rest_of_compilation (decl)
       timevar_pop (TV_FROM_SSA);
 
       ggc_collect ();
-      /* CFG is no longer maintained up-to-date.  */
-      free_bb_for_insn ();
     }
 
   timevar_push (TV_JUMP);
@@ -2726,7 +2724,6 @@ rest_of_compilation (decl)
   if (flag_delete_null_pointer_checks || flag_if_conversion)
     {
       open_dump_file (DFI_null, decl);
-      find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
       if (rtl_dump_file)
        dump_flow_info (rtl_dump_file);
       cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
@@ -2745,8 +2742,6 @@ rest_of_compilation (decl)
      maximum instruction UID, so if we can reduce the maximum UID
      we'll save big on memory.  */
   renumber_insns (rtl_dump_file);
-  if (optimize)
-    compute_bb_for_insn ();
   timevar_pop (TV_JUMP);
 
   close_dump_file (DFI_jump, print_rtl_with_bb, insns);
@@ -2794,7 +2789,6 @@ rest_of_compilation (decl)
       /* The second pass of jump optimization is likely to have
          removed a bunch more instructions.  */
       renumber_insns (rtl_dump_file);
-      compute_bb_for_insn ();
 
       timevar_pop (TV_CSE);
       close_dump_file (DFI_cse, print_rtl_with_bb, insns);
@@ -2912,6 +2906,7 @@ rest_of_compilation (decl)
       delete_trivially_dead_insns (insns, max_reg_num ());
       close_dump_file (DFI_loop, print_rtl, insns);
       timevar_pop (TV_LOOP);
+      find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
 
       ggc_collect ();
     }
@@ -2921,8 +2916,6 @@ rest_of_compilation (decl)
 
   timevar_push (TV_FLOW);
   open_dump_file (DFI_cfg, decl);
-
-  find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
   if (rtl_dump_file)
     dump_flow_info (rtl_dump_file);
   cleanup_cfg ((optimize ? CLEANUP_EXPENSIVE : 0)