Skip to content
  1. Apr 28, 2010
  2. Apr 23, 2010
  3. Apr 22, 2010
  4. Apr 21, 2010
  5. Apr 20, 2010
  6. Apr 18, 2010
  7. Apr 17, 2010
  8. Apr 16, 2010
  9. Apr 15, 2010
    • Daniel Dunbar's avatar
      IRgen: (Reapply 101222, with fixes) Move EmitStoreThroughBitfieldLValue to use... · 67aba79b
      Daniel Dunbar authored
      IRgen: (Reapply 101222, with fixes) Move EmitStoreThroughBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself.
       - Sadly, this doesn't seem to give any .ll size win so far. It is possible to make this routine significantly smarter & avoid various shifting, masking, and zext/sext, but I'm not really convinced it is worth it. It is tricky, and this is really instcombine's job.
      
       - No intended functionality change; the test case is just to increase coverage & serves as a demo file, it worked before this commit.
      
      The new fixes from r101222 are:
      
       1. The shift to the target position needs to occur after the value is extended to the correct size. This broke Clang bootstrap, among other things no doubt.
      
       2. Swap the order of arguments to OR, to get a tad more constant folding.
      
      llvm-svn: 101339
      67aba79b
    • Eric Christopher's avatar
      Rewrite handling of 64-bit palignr intrinsics to be vector shuffles. · 1bbc7086
      Eric Christopher authored
      Stop multiplying constant by 8 accordingly in the header and change
      intrinsic definition for what types we expect.
      
      Add to existing palignr test to check that we're emitting the correct things.
      
      llvm-svn: 101332
      1bbc7086
  10. Apr 14, 2010
  11. Apr 13, 2010
    • Chris Lattner's avatar
      Rework the ConstStructBuilder code to emit missing initializer · ff0e2a36
      Chris Lattner authored
      elements with explicit zero values instead of with tail padding.
      On an example like this:
      
      struct foo { int a; int b; };
      
      struct foo fooarray[] = {
          {1, 2},
          {4},
      };
      
      We now lay this out as:
      
      @fooarray = global [2 x %struct.foo] [%struct.foo { i32 1, i32 2 }, %struct.foo { i32 4, i32 0 }]
      
      instead of as:
      
      @fooarray = global %0 <{ %struct.foo { i32 1, i32 2 }, %1 { i32 4, [4 x i8] zeroinitializer } }>
      
      Preserving both the struct type of the second element, but also the array type of the entire thing.
      
      llvm-svn: 101155
      ff0e2a36
  12. Apr 12, 2010
  13. Apr 11, 2010
  14. Apr 10, 2010
  15. Apr 07, 2010
  16. Apr 06, 2010
  17. Apr 05, 2010
  18. Apr 04, 2010
  19. Apr 03, 2010
  20. Apr 02, 2010
  21. Mar 31, 2010
Loading