Skip to content
  1. Jun 02, 2012
  2. Jun 01, 2012
  3. May 31, 2012
    • Manman Ren's avatar
      X86: replace SUB with CMP if possible · 9bccb64e
      Manman Ren authored
      This patch will optimize the following
              movq    %rdi, %rax
              subq    %rsi, %rax
              cmovsq  %rsi, %rdi
              movq    %rdi, %rax
      to
              cmpq    %rsi, %rdi
              cmovsq  %rsi, %rdi
              movq    %rdi, %rax
      
      Perform this optimization if the actual result of SUB is not used.
      
      rdar: 11540023
      llvm-svn: 157755
      9bccb64e
  4. May 30, 2012
  5. May 29, 2012
  6. May 28, 2012
    • Peter Collingbourne's avatar
      Add llvm.fabs intrinsic. · 913869be
      Peter Collingbourne authored
      llvm-svn: 157594
      913869be
    • Stepan Dyatkovskiy's avatar
      PR1255: Case Ranges · e3e19cbb
      Stepan Dyatkovskiy authored
      Implemented IntItem - the wrapper around APInt. Why not to use APInt item directly right now?
      1. It will very difficult to implement case ranges as series of small patches. We got several large and heavy patches. Each patch will about 90-120 kb. If you replace ConstantInt with APInt in SwitchInst you will need to changes at the same time all Readers,Writers and absolutely all passes that uses SwitchInst.
      2. We can implement APInt pool inside and save memory space. E.g. we use several switches that works with 256 bit items (switch on signatures, or strings). We can avoid value duplicates in this case.
      3. IntItem can be easyly easily replaced with APInt.
      4. Currenly we can interpret IntItem both as ConstantInt and as APInt. It allows to provide SwitchInst methods that works with ConstantInt for non-updated passes.
      
      Why I need it right now? Currently I need to update SimplifyCFG pass (EqualityComparisons). I need to work with APInts directly a lot, so peaces of code
      ConstantInt *V = ...;
      if (V->getValue().ugt(AnotherV->getValue()) {
        ...
      }
      will look awful. Much more better this way:
      IntItem V = ConstantIntVal->getValue();
      if (AnotherV < V) {
      }
      
      Of course any reviews are welcome.
      
      P.S.: I'm also going to rename ConstantRangesSet to IntegersSubset, and CRSBuilder to IntegersSubsetMapping (allows to map individual subsets of integers to the BasicBlocks).
      Since in future these classes will founded on APInt, it will possible to use them in more generic ways.
      
      llvm-svn: 157576
      e3e19cbb
  7. May 27, 2012
  8. May 26, 2012
  9. May 25, 2012
Loading