Skip to content
  1. Sep 27, 2011
  2. Sep 24, 2011
    • Andrew Trick's avatar
      LSR minor bug fix in RateRegister. · 8b2fe2f7
      Andrew Trick authored
      No test case. Noticed by inspection and I doubt it ever affects the
      outcome of the overall heuristic, let alone final codegen.
      
      llvm-svn: 140431
      8b2fe2f7
  3. Sep 22, 2011
  4. Sep 21, 2011
  5. Sep 20, 2011
  6. Sep 19, 2011
  7. Sep 15, 2011
  8. Sep 14, 2011
  9. Sep 13, 2011
  10. Sep 12, 2011
  11. Sep 10, 2011
    • Andrew Trick's avatar
      [disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations · c7868bf0
      Andrew Trick authored
      better.
      
      Don't immediately give up when an add operation can't be trivially
      sign/zero-extended within a loop. If it has NSW/NUW flags, generate a
      new expression with sign extended (non-recurrent) operand. As before,
      if SCEV says that all sign extends are loop invariant, then we can
      widen the operation.
      
      llvm-svn: 139453
      c7868bf0
  12. Sep 09, 2011
  13. Sep 06, 2011
    • Andrew Trick's avatar
      1eee7f12
    • Devang Patel's avatar
      Use IRBuilder. · c10e52a0
      Devang Patel authored
      llvm-svn: 139156
      c10e52a0
    • Owen Anderson's avatar
      Try again at r138809 (make DSE more aggressive in removing dead stores at the... · 58704ee4
      Owen Anderson authored
      Try again at r138809 (make DSE more aggressive in removing dead stores at the end of a function), now with less deleting stores before memcpy's.
      
      llvm-svn: 139150
      58704ee4
    • Duncan Sands's avatar
      Split the init.trampoline intrinsic, which currently combines GCC's · a098436b
      Duncan Sands authored
      init.trampoline and adjust.trampoline intrinsics, into two intrinsics
      like in GCC.  While having one combined intrinsic is tempting, it is
      not natural because typically the trampoline initialization needs to
      be done in one function, and the result of adjust trampoline is needed
      in a different (nested) function.  To get around this llvm-gcc hacks the
      nested function lowering code to insert an additional parent variable
      holding the adjust.trampoline result that can be accessed from the child
      function.  Dragonegg doesn't have the luxury of tweaking GCC code, so it
      stored the result of adjust.trampoline in the memory GCC set aside for
      the trampoline itself (this is always available in the child function),
      and set up some new memory (using an alloca) to hold the trampoline.
      Unfortunately this breaks Go which allocates trampoline memory on the
      heap and wants to use it even after the parent has exited (!).  Rather
      than doing even more hacks to get Go working, it seemed best to just use
      two intrinsics like in GCC.  Patch mostly by Sanjoy Das.
      
      llvm-svn: 139140
      a098436b
Loading