Skip to content
  1. Oct 13, 2010
  2. Oct 12, 2010
  3. Oct 11, 2010
  4. Oct 08, 2010
  5. Oct 07, 2010
  6. Oct 06, 2010
  7. Oct 02, 2010
  8. Sep 30, 2010
  9. Sep 29, 2010
  10. Sep 25, 2010
  11. Sep 24, 2010
  12. Sep 23, 2010
    • Jim Grosbach's avatar
      Clean up the 'trap' instruction printing a bit. Non-Darwin assemblers don't · 85030544
      Jim Grosbach authored
      (yet) recognize the 'trap' mnemonic, so we use .short/.long to emit the
      opcode directly. On Darwin, however, we do want the mnemonic for more
      readable assembly code and better disassembly.
      
      Adjust the .td file to use the 'trap' mnemonic and handle using the binutils
      workaround in the assembly printer. Also tweak the formatting of the opcode
      values to make them consistent between the MC printer and the old printer.
      
      llvm-svn: 114679
      85030544
  13. Sep 21, 2010
    • Chris Lattner's avatar
      fix a long standing wart: all the ComplexPattern's were being · 0e023ea0
      Chris Lattner authored
      passed the root of the match, even though only a few patterns
      actually needed this (one in X86, several in ARM [which should
      be refactored anyway], and some in CellSPU that I don't feel 
      like detangling).   Instead of requiring all ComplexPatterns to
      take the dead root, have targets opt into getting the root by
      putting SDNPWantRoot on the ComplexPattern.
      
      llvm-svn: 114471
      0e023ea0
  14. Sep 10, 2010
  15. Sep 09, 2010
  16. Sep 01, 2010
    • Chris Lattner's avatar
      temporarily revert r112664, it is causing a decoding conflict, and · 39eccb47
      Chris Lattner authored
      the testcases should be merged.
      
      llvm-svn: 112711
      39eccb47
    • Bill Wendling's avatar
      We have a chance for an optimization. Consider this code: · 6789f8b6
      Bill Wendling authored
      int x(int t) {
        if (t & 256)
          return -26;
        return 0;
      }
      
      We generate this:
      
           tst.w   r0, #256
           mvn     r0, #25
           it      eq
           moveq   r0, #0
      
      while gcc generates this:
      
           ands    r0, r0, #256
           it      ne
           mvnne   r0, #25
           bx      lr
      
      Scandalous really!
      
      During ISel time, we can look for this particular pattern. One where we have a
      "MOVCC" that uses the flag off of a CMPZ that itself is comparing an AND
      instruction to 0. Something like this (greatly simplified):
      
        %r0 = ISD::AND ...
        ARMISD::CMPZ %r0, 0         @ sets [CPSR]
        %r0 = ARMISD::MOVCC 0, -26  @ reads [CPSR]
      
      All we have to do is convert the "ISD::AND" into an "ARM::ANDS" that sets [CPSR]
      when it's zero. The zero value will all ready be in the %r0 register and we only
      need to change it if the AND wasn't zero. Easy!
      
      llvm-svn: 112664
      6789f8b6
    • Bill Wendling's avatar
      And ANDS pattern to match the t2ANDS pattern. · d657d825
      Bill Wendling authored
      llvm-svn: 112654
      d657d825
  17. Aug 30, 2010
  18. Aug 29, 2010
  19. Aug 26, 2010
  20. Aug 17, 2010
Loading