Skip to content
  1. Feb 03, 2018
  2. Feb 02, 2018
  3. Feb 01, 2018
    • Sanjay Patel's avatar
      [InstCombine] allow multi-use values in canEvaluate* if all uses are in 1 inst · 3343fcef
      Sanjay Patel authored
      This is the enhancement suggested in D42536 to fix a shortcoming in 
      regular InstCombine's canEvaluate* functionality.
      When we have multiple uses of a value, but they're all in one instruction, we can 
      allow that expression to be narrowed or widened for the same cost as a single-use 
      value.
      
      AFAICT, this can only matter for multiply: sub/and/or/xor/select would be simplified 
      away if the operands are the same value; add becomes shl; shifts with a variable shift 
      amount aren't handled.
      
      Differential Revision: https://reviews.llvm.org/D42739
      
      llvm-svn: 324014
      3343fcef
    • David Green's avatar
      Revert commit rL323951 · 184df0c3
      David Green authored
      Looks like it's causing timeouts out on at least ppc64le
      buildbots.
      
      llvm-svn: 323959
      184df0c3
    • David Green's avatar
      [InstCombine] Allow common type conversions to i8/i16/i32 · e11f0545
      David Green authored
      This, in instcombine, allows conversions to i8/i16/i32 (very
      common cases) even if the resulting type is not legal according
      to the data layout. This can often open up extra combine
      opportunities.
      
      Differential Revision: https://reviews.llvm.org/D42424
      
      llvm-svn: 323951
      e11f0545
    • Mikael Holmen's avatar
      [LSR] Don't force bases of foldable formulae to the final type. · 6d06976e
      Mikael Holmen authored
      Summary:
      Before emitting code for scaled registers, we prevent
      SCEVExpander from hoisting any scaled addressing mode
      by emitting all the bases first. However, these bases
      are being forced to the final type, resulting in some
      odd code.
      
      For example, if the type of the base is an integer and
      the final type is a pointer, we will emit an inttoptr
      for the base, a ptrtoint for the scale, and then a
      'reverse' GEP where the GEP pointer is actually the base
      integer and the index is the pointer. It's more intuitive
      to use the pointer as a pointer and the integer as index.
      
      Patch by: Bevin Hansson
      
      Reviewers: atrick, qcolombet, sanjoy
      
      Reviewed By: qcolombet
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D42103
      
      llvm-svn: 323946
      6d06976e
  4. Jan 31, 2018
  5. Jan 30, 2018
  6. Jan 29, 2018
  7. Jan 28, 2018
  8. Jan 27, 2018
  9. Jan 26, 2018
  10. Jan 25, 2018
    • Vedant Kumar's avatar
      [Debug] Add dbg.value intrinsics for PHIs created during LCSSA. · 60f54084
      Vedant Kumar authored
      This patch is an enhancement to propagate dbg.value information when
      Phis are created on behalf of LCSSA.  I noticed a case where a value
      carried across a loop was reported as <optimized out>.
      
      Specifically this case:
      
        int bar(int x, int y) {
          return x + y;
        }
      
        int foo(int size) {
          int val = 0;
          for (int i = 0; i < size; ++i) {
            val = bar(val, i);  // Both val and i are correct
          }
          return val; // <optimized out>
        }
      
      In the above case, after all of the interesting computation completes
      our value is reported as "optimized out." This change will add a
      dbg.value to correct this.
      
      This patch also moves the dbg.value insertion routine from
      LoopRotation.cpp into Local.cpp, so that we can share it in both places
      (LoopRotation and LCSSA).
      
      Patch by Matt Davis!
      
      Differential Revision: https://reviews.llvm.org/D42551
      
      llvm-svn: 323472
      60f54084
    • Alexey Bataev's avatar
      Revert "[SLP] Fix for PR32086: Count InsertElementInstr of the same elements as shuffle." · 102d4b59
      Alexey Bataev authored
      This reverts commit r323441 to fix buildbots.
      
      llvm-svn: 323447
      102d4b59
Loading