Skip to content
  1. Jan 21, 2010
    • Dan Gohman's avatar
      Re-implement the main strength-reduction portion of LoopStrengthReduction. · 51ad99d2
      Dan Gohman authored
      This new version is much more aggressive about doing "full" reduction in
      cases where it reduces register pressure, and also more aggressive about
      rewriting induction variables to count down (or up) to zero when doing so
      reduces register pressure.
      
      It currently uses fairly simplistic algorithms for finding reuse
      opportunities, but it introduces a new framework allows it to combine
      multiple strategies at once to form hybrid solutions, instead of doing
      all full-reduction or all base+index.
      
      llvm-svn: 94061
      51ad99d2
    • Eric Christopher's avatar
      Add strcpy_chk -> strcpy support for "don't know" object size · fa863258
      Eric Christopher authored
      answers.  This will update as object size checking gets better information.
      
      llvm-svn: 94059
      fa863258
  2. Jan 19, 2010
    • Dan Gohman's avatar
      When doing address-mode sinking, expand the base register first, rather · ca19445d
      Dan Gohman authored
      than the scaled register. This makes it more likely that subsequent
      AddrModeMatcher queries will match the new address the same way as the
      old, instead of accidentally matching what had been the base register
      as the new scaled register, and then failing to match the scaled register.
      This fixes some problems with address-mode sinking multiple muls into a
      block, which will be a lot more common with some upcoming
      LoopStrengthReduction changes.
      
      llvm-svn: 93935
      ca19445d
    • Bob Wilson's avatar
      Fix a crash in scalarrepl for memcpy/memmove where the source and destination · 58d59fe3
      Bob Wilson authored
      are the same.  I had already fixed a similar problem where the source and
      destination were different bitcasts derived from the same alloca, but the
      previous fix still did not handle the case where both operands are exactly
      the same value.  Radar 7552893.
      
      llvm-svn: 93848
      58d59fe3
  3. Jan 17, 2010
  4. Jan 12, 2010
  5. Jan 09, 2010
  6. Jan 08, 2010
  7. Jan 07, 2010
  8. Jan 06, 2010
  9. Jan 05, 2010
  10. Jan 04, 2010
  11. Jan 03, 2010
    • Chris Lattner's avatar
      pull my debug hooks out, I'm done with this xform for now. · 48218e42
      Chris Lattner authored
      llvm-svn: 92446
      48218e42
    • Nick Lewycky's avatar
      Small cleanups, refactor some duplicated code into a single method. No · 475d3d12
      Nick Lewycky authored
      functionality change.
      
      llvm-svn: 92445
      475d3d12
    • Chris Lattner's avatar
      generalize the previous transformation to handle indexing into · fca0c8f9
      Chris Lattner authored
      arrays of structs and other arrays, so long as all the subsequent
      indexes are constants.  This triggers frequently for stuff like:
      
      @divisions = internal constant [29 x [2 x i32]] [[2 x i32] zeroinitializer, [2 x i32] [i32 0, i32 1], [2 x i32] [i32 0, i32 2], [2 x i32] [i32 0, i32 1], [2 x i32] zeroinitializer, [2 x i32] [i32 0, i32 1], [2 x i32] [i32 0, i32 1], [2 x i32] [i32 0, i32 2], [2 x i32] [i32 0, i32 2], [2 x i32] zeroinitializer, [2 x i32] zeroinitializer, [2 x i32] zeroinitializer, [2 x i32] [i32 0, i32 2], [2 x i32] [i32 0, i32 1], [2 x i32] zeroinitializer, [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 2]], align 32 ; <[29 x [2 x i32]]*> [#uses=50]
      
      	  %623 = getelementptr inbounds [29 x [2 x i32]]* @divisions, i64 0, i64 %619, i64 0 ; <i32*> [#uses=1]
      	   %684 = icmp eq i32 %683, 999 
      
      also for the "my_defs" table in 'gs', etc.
      
      llvm-svn: 92444
      fca0c8f9
Loading