This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

SMALL_REGISTER_CLASSES



Looking through the GCC code I get the impression that
SMALL_REGISTER_CLASSES has been used to infer that a target has only a
few registers, rather than its original meaning, where it signified
that registers explicity mentioned in the RTL had to be used as spill
registers.

With SMALL_REGISTER_CLASSES set, the combiner won't combine insn 4 with
insn 12.  Is there a good reason for this?


(insn 4 2 6 (set (reg/v:QI 36)
        (reg:QI 10 ar2)) 5 {movqi_noclobber} (nil)
    (expr_list:REG_DEAD (reg:QI 10 ar2)
        (nil)))

(insn 6 4 7 (set (reg/v:QI 37)
        (reg:QI 2 r2)) 5 {movqi_noclobber} (nil)
    (expr_list:REG_DEAD (reg:QI 2 r2)
        (nil)))

(insn 12 10 14 (set (reg:QI 39)
        (mem/s:QI (plus:QI (reg/v:QI 36)
                (const_int 5)))) 5 {movqi_noclobber} (insn_list 4 (nil))
    (expr_list:REG_DEAD (reg/v:QI 36)
        (nil)))

Michael.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]