Skip to content
  1. Aug 23, 2010
  2. Aug 20, 2010
  3. Aug 19, 2010
  4. Aug 17, 2010
  5. Aug 16, 2010
  6. Aug 15, 2010
  7. Aug 13, 2010
  8. Aug 12, 2010
  9. Aug 11, 2010
  10. Aug 08, 2010
  11. Aug 06, 2010
  12. Jul 31, 2010
  13. Jul 30, 2010
    • Jim Grosbach's avatar
      Many Thumb2 instructions can reference the full ARM register set (i.e., · d343166a
      Jim Grosbach authored
      have 4 bits per register in the operand encoding), but have undefined
      behavior when the operand value is 13 or 15 (SP and PC, respectively).
      The trivial coalescer in linear scan sometimes will merge a copy from
      SP into a subsequent instruction which uses the copy, and if that
      instruction cannot legally reference SP, we get bad code such as:
        mls r0,r9,r0,sp
      instead of:
        mov r2, sp
        mls r0, r9, r0, r2
      
      This patch adds a new register class for use by Thumb2 that excludes
      the problematic registers (SP and PC) and is used instead of GPR
      for those operands which cannot legally reference PC or SP. The
      trivial coalescer explicitly requires that the register class
      of the destination for the COPY instruction contain the source
      register for the COPY to be considered for coalescing. This prevents
      errant instructions like that above.
      
      PR7499
      
      llvm-svn: 109842
      d343166a
  14. Jul 28, 2010
  15. Jul 27, 2010
  16. Jul 26, 2010
  17. Jul 23, 2010
  18. Jul 22, 2010
  19. Jul 20, 2010
  20. Jul 19, 2010
Loading