Skip to content
  1. Jan 09, 2011
  2. Jan 08, 2011
  3. Jan 07, 2011
  4. Jan 06, 2011
  5. Jan 05, 2011
  6. Jan 04, 2011
  7. Jan 03, 2011
  8. Jan 02, 2011
    • Chris Lattner's avatar
      split dom frontier handling stuff out to its own DominanceFrontier header, · bf0aa927
      Chris Lattner authored
      so that Dominators.h is *just* domtree.  Also prune #includes a bit.
      
      llvm-svn: 122714
      bf0aa927
    • Benjamin Kramer's avatar
      Try to reuse the value when lowering memset. · 25e6e06e
      Benjamin Kramer authored
      This allows us to compile:
        void test(char *s, int a) {
          __builtin_memset(s, a, 15);
        }
      into 1 mul + 3 stores instead of 3 muls + 3 stores.
      
      llvm-svn: 122710
      25e6e06e
    • Benjamin Kramer's avatar
      Lower the i8 extension in memset to a multiply instead of a potentially long... · 2fdea4c8
      Benjamin Kramer authored
      Lower the i8 extension in memset to a multiply instead of a potentially long series of shifts and ors.
      
      We could implement a DAGCombine to turn x * 0x0101 back into logic operations
      on targets that doesn't support the multiply or it is slow (p4) if someone cares
      enough.
      
      Example code:
        void test(char *s, int a) {
            __builtin_memset(s, a, 4);
        }
      before:
        _test:                                  ## @test
          movzbl  8(%esp), %eax
          movl  %eax, %ecx
          shll  $8, %ecx
          orl %eax, %ecx
          movl  %ecx, %eax
          shll  $16, %eax
          orl %ecx, %eax
          movl  4(%esp), %ecx
          movl  %eax, 4(%ecx)
          movl  %eax, (%ecx)
          ret
      after:
        _test:                                  ## @test
          movzbl  8(%esp), %eax
          imull $16843009, %eax, %eax   ## imm = 0x1010101
          movl  4(%esp), %ecx
          movl  %eax, 4(%ecx)
          movl  %eax, (%ecx)
          ret
      
      llvm-svn: 122707
      2fdea4c8
  9. Dec 30, 2010
  10. Dec 29, 2010
Loading