Skip to content
  1. Nov 13, 2019
    • Hiroshi Yamauchi's avatar
      [PGO][PGSO] Temporarily disable the large working set size behavior. · 3f0969da
      Hiroshi Yamauchi authored
      Summary:
      This temporarily disables the large working set size behavior in profile guided
      size optimization due to internal benchmark regressions.
      
      Reviewers: davidxl
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D70207
      3f0969da
    • Sanjay Patel's avatar
      [SLP] fix miscompile on min/max reductions with extra uses (PR43948) · a3e61946
      Sanjay Patel authored
      The bug manifests as replacing a reduction operand with an undef
      value.
      
      The problem appears to be limited to cases where a min/max reduction
      has extra uses of the compare operand to the select.
      
      In the general case, we are tracking "ExternallyUsedValues" and
      an "IgnoreList" of the reduction operations, but those may not apply
      to the final compare+select in a min/max reduction.
      
      For that, we use replaceAllUsesWith (RAUW) to ensure that the new
      vectorized reduction values are transferred to all subsequent users.
      
      Differential Revision: https://reviews.llvm.org/D70148
      a3e61946
    • Sanjay Patel's avatar
    • Sanjay Patel's avatar
      [InstCombine] propagate fast-math-flags (FMF) to select when inverting fcmp+select · 3d6b5398
      Sanjay Patel authored
      As noted by the FIXME comment, this is not correct based on our current FMF semantics.
      We should be propagating FMF from the final value in a sequence (in this case the
      'select'). So the behavior even without this patch is wrong, but we did not allow FMF
      on 'select' until recently.
      
      But if we do the correct thing right now in this patch, we'll inevitably introduce
      regressions because we have not wired up FMF propagation for 'phi' and 'select' in
      other passes (like SimplifyCFG) or other places in InstCombine. I'm not seeing a
      better incremental way to make progress.
      
      That said, the potential extra damage over the existing wrong behavior from this
      patch is very limited. AFAIK, the only way to have different FMF on IR in the same
      function is if we have LTO inlined IR from 2 modules that were compiled using
      different fast-math settings.
      
      As seen in the tests, we may actually see some improvements with this patch because
      adding the FMF to the 'select' allows matching to min/max intrinsics that were
      previously missed (in the common case, the 'fcmp' and 'select' should have identical
      FMF to begin with).
      
      Next steps in the transition:
      
          Make similar changes in instcombine as needed.
          Enable phi-to-select FMF propagation in SimplifyCFG.
          Remove dependencies on fcmp with FMF.
          Deprecate FMF on fcmp.
      
      Differential Revision: https://reviews.llvm.org/D69720
      3d6b5398
    • Simon Pilgrim's avatar
      SLPVectorizer - make comparison operators + isInSchedulingRegion const · d1bd5e47
      Simon Pilgrim authored
      Fixes cppcheck warnings.
      d1bd5e47
    • Florian Hahn's avatar
      [InstCombine] Avoid moving ops that do restrict undef across shuffles. · f7499011
      Florian Hahn authored
      I think we have to be a bit more careful when it comes to moving
      ops across shuffles, if the op does restrict undef. For example, without
      this patch, we would move 'and %v, <0, 0, -1, -1>' over a
      'shufflevector %a, undef, <undef, undef, 1, 2>'. As a result, the first
      2 lanes of the result are undef after the combine, but they really
      should be 0, unless I am missing something.
      
      For ops that do fold to undef on undef operands, the current behavior
      should be fine. I've add conservative check OpDoesRestrictUndef, maybe
      there's a better existing utility?
      
      Reviewers: spatel, RKSimon, lebedev.ri
      
      Reviewed By: spatel
      
      Differential Revision: https://reviews.llvm.org/D70093
      f7499011
    • Daniil Suchkov's avatar
      Temporarily revert "[InstCombine] Fold PHIs with equal incoming pointers" · cba4a277
      Daniil Suchkov authored
      Revert due to sanitizer-windows buildbot failure.
      
      This reverts commit bbb29738.
      cba4a277
    • Daniil Suchkov's avatar
      [InstCombine] Fold PHIs with equal incoming pointers · bbb29738
      Daniil Suchkov authored
      In case when all incoming values of a PHI are equal pointers, this
      transformation inserts a definition of such a pointer right after
      definition of the base pointer and replaces with this value both PHI and
      all it's incoming pointers. Primary goal of this transformation is
      canonicalization of this pattern in order to enable optimizations that
      can't handle PHIs. Non-inbounds pointers aren't currently supported.
      
      Reviewers: spatel, RKSimon, lebedev.ri, apilipenko
      
      Reviewed By: apilipenko
      
      Tags: #llvm
      
      Subscribers: hiraditya, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D68128
      bbb29738
  2. Nov 12, 2019
  3. Nov 11, 2019
  4. Nov 10, 2019
  5. Nov 09, 2019
  6. Nov 08, 2019
Loading