Skip to content
  1. Jun 24, 2011
  2. Jun 23, 2011
  3. Jun 22, 2011
  4. Jun 21, 2011
    • Evan Cheng's avatar
      Teach dag combine to match halfword byteswap patterns. · 4c0bd962
      Evan Cheng authored
      1. (((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8)
         => (bswap x) >> 16
      2. ((x&0xff)<<8)|((x&0xff00)>>8)|((x&0xff000000)>>8)|((x&0x00ff0000)<<8))
         => (rotl (bswap x) 16)
      
      This allows us to eliminate most of the def : Pat patterns for ARM rev16
      revsh instructions. It catches many more cases for ARM and x86.
      
      rdar://9609108
      
      llvm-svn: 133503
      4c0bd962
  5. Jun 20, 2011
  6. Jun 19, 2011
  7. Jun 18, 2011
  8. Jun 17, 2011
    • Bill Wendling's avatar
      b74b9de1
    • Eric Christopher's avatar
      Lower multiply with overflow checking to __mulo<mode> · 5bbb2bdb
      Eric Christopher authored
      calls if we haven't been able to lower them any
      other way.
      
      Fixes rdar://9090077 and rdar://9210061
      
      llvm-svn: 133288
      5bbb2bdb
    • Bill Wendling's avatar
      Add an option that allows one to "decode" the LSDA. · e303114b
      Bill Wendling authored
      The LSDA is a bit difficult for the non-initiated to read. Even with comments,
      it's not always clear what's going on. This wraps the ASM streamer in a class
      that retains the LSDA and then emits a human-readable description of what's
      going on in it.
      
      So instead of having to make sense of:
      
      Lexception1:
              .byte   255
              .byte   155
              .byte   168
              .space  1
              .byte   3
              .byte   26
      Lset0 = Ltmp7-Leh_func_begin1
            .long     Lset0
      Lset1 = Ltmp812-Ltmp7
            .long     Lset1
      Lset2 = Ltmp913-Leh_func_begin1
            .long     Lset2
            .byte     3
      Lset3 = Ltmp812-Leh_func_begin1
            .long     Lset3
      Lset4 = Leh_func_end1-Ltmp812
            .long     Lset4
            .long     0
            .byte     0
            .byte     1
            .byte     0
            .byte     2
            .byte     125
            .long     __ZTIi@GOTPCREL+4
            .long     __ZTIPKc@GOTPCREL+4
      
      you can read this instead:
      
      ## Exception Handling Table: Lexception1
      ##  @LPStart Encoding: omit
      ##    @TType Encoding: indirect pcrel sdata4
      ##        @TType Base: 40 bytes
      ## @CallSite Encoding: udata4
      ## @Action Table Size: 26 bytes
      
      ## Action 1:
      ##   A throw between Ltmp7 and Ltmp812 jumps to Ltmp913 on an exception.
      ##     For type(s):  __ZTIi@GOTPCREL+4 __ZTIPKc@GOTPCREL+4
      ## Action 2:
      ##   A throw between Ltmp812 and Leh_func_end1 does not have a landing pad.
      
      llvm-svn: 133286
      e303114b
Loading