Skip to content
  1. Sep 30, 2010
  2. Sep 29, 2010
  3. Sep 25, 2010
  4. Sep 24, 2010
  5. 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
  6. 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
  7. Sep 10, 2010
  8. Sep 09, 2010
  9. 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
  10. Aug 30, 2010
  11. Aug 29, 2010
  12. Aug 26, 2010
  13. Aug 17, 2010
  14. Aug 16, 2010
  15. Aug 12, 2010
  16. Aug 11, 2010
  17. Aug 05, 2010
  18. Jul 31, 2010
Loading