Skip to content
  1. Nov 13, 2019
  2. Nov 12, 2019
  3. Nov 08, 2019
  4. Nov 07, 2019
    • Daniel Sanders's avatar
      [debugify] Move the Debugify pass from tools/opt to lib/Transform/Utils · 25ee8613
      Daniel Sanders authored
      Summary:
      I need to make use of this pass from a driver program that isn't opt.
      Therefore this patch moves this pass into the LLVM library so that it is
      available for use elsewhere.
      
      There was one function I kept in tools/opt which is exportDebugifyStats()
      this is because it's serializing the statistics into a human readable
      format and this seemed more in keeping with opt than a library function
      
      Reviewers: vsk, aprantl
      
      Subscribers: mgorny, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D69926
      25ee8613
    • Vedant Kumar's avatar
      Wrong debug info generated at -O2 (-O0 is correct) · a087b78b
      Vedant Kumar authored
      Instcombiner pass was erasing trivially dead instruction without updating dependent llvm.dbg.value.
      which was not showing programmer current state of variables while debugging.
      As a part of this fix I did following,
      Iterate throught all the users (llvm.dbg) of a instruction which is trivially dead and set each if them undef, Before deleting the instruction.
      Now user will see optimized out, when try to print those variables.
      This fixes
      https://bugs.llvm.org/show_bug.cgi?id=43893
      
      This is my first fix to llvm.
      
      Patch by kamlesh kumar!
      
      Differential Revision: https://reviews.llvm.org/D69809
      a087b78b
    • evgeny's avatar
      [ThinLTO] Import readonly vars with refs · dde58938
      evgeny authored
      Patch allows importing declarations of functions and variables, referenced
      by the initializer of some other readonly variable.
      Differential revision: https://reviews.llvm.org/D69561
      dde58938
    • Wenlei He's avatar
      Keep import function list for inlinee profile update · ba1dfae0
      Wenlei He authored
      Summary:
      When adjusting function entry counts after inlining, Funciton::setEntryCount is called without providing an import function list. The side effect of that is the previously set import function list will be dropped. The import function list is used by ThinLTO to help import hot cross module callee for LTO inlining, so dropping that during ThinLTO pre-link may adversely affect LTO inlining. The fix is to keep the list while updating entry counts for inlining.
      
      Reviewers: wmi, davidxl, tejohnson
      
      Subscribers: mehdi_amini, hiraditya, dexonsmith, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D69736
      ba1dfae0
  5. Nov 06, 2019
  6. Nov 05, 2019
  7. Nov 04, 2019
  8. Nov 03, 2019
  9. Nov 01, 2019
  10. Oct 31, 2019
  11. Oct 29, 2019
    • Florian Hahn's avatar
      [LCSSA] Forget values we create LCSSA phis for · 596e4ab9
      Florian Hahn authored
      Summary:
      Currently we only forget the loop we added LCSSA phis for. But SCEV
      expressions in other loops could also depend on the instruction we added
      a PHI for and currently we do not invalidate those expressions. This can
      happen when we use ScalarEvolution before converting a function to LCSSA
      form. The SCEV expressions will refer to the non-LCSSA value. If this
      SCEV expression is then used with the expander, we do not preserve LCSSA
      form.
      
      This patch properly forgets the values we created PHIs for. Those need
      to be recomputed again. This patch fixes PR43458.
      
      Currently SCEV::verify does not catch this mismatch and any test would
      need to run multiple passes to trigger the error (e.g. -loop-reduce
      -loop-unroll). I will also look into catching this kind of mismatch in
      the verifier. Also, we currently forget the whole loop in LCSSA and I'll
      check if we can be more surgical.
      
      Reviewers: efriedma, sanjoy.google, reames
      
      Reviewed By: efriedma
      
      Subscribers: zzheng, hiraditya, javed.absar, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68194
      596e4ab9
  12. Oct 28, 2019
    • Hiroshi Yamauchi's avatar
      [PGO][PGSO] SizeOpts changes. · 75f72f6b
      Hiroshi Yamauchi authored
      Summary:
      (Split of off D67120)
      
      SizeOpts/MachineSizeOpts changes for profile guided size optimization.
      
      (A second try after previously committed as r375254 and reverted as r375375.)
      
      Subscribers: mgorny, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D69409
      75f72f6b
    • Bjorn Pettersson's avatar
      [utils] InlineFunction: fix for debug info affecting optimizations · 80cb2cec
      Bjorn Pettersson authored
      Summary:
      Debug info affects output from "opt -inline", InlineFunction could
      not handle the llvm.dbg.value when it exist between alloca
      instructions.
      
      Problem was that the first alloca in a sequence of allocas was
      handled differently from the subsequence alloca instructions. Now
      all static alloca instructions are treated the same (being removed
      if the have no uses). So it does not matter if there are dbg
      instructions (or any other instructions) in between.
      
      Fix the issue: https://bugs.llvm.org/show_bug.cgi?id=43291k
      
      Patch by: yechunliang (Chris Ye)
      
      Reviewers: bjope, jmorse, vsk, probinson, jdoerfert, mtrofin, aprantl, fhahn
      
      Reviewed By: bjope
      
      Subscribers: uabelho, ormris, aprantl, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68633
      80cb2cec
  13. Oct 25, 2019
  14. Oct 21, 2019
  15. Oct 20, 2019
  16. Oct 18, 2019
  17. Oct 17, 2019
    • Alina Sbirlea's avatar
      [Utils] Cleanup similar cases to MergeBlockIntoPredecessor. · 4eb1a573
      Alina Sbirlea authored
      Summary:
      There are two cases where a block is merged into its predecessor and the
      MergeBlockIntoPredecessor API is not used. Update the API so it can be
      reused in the other cases, in order to avoid code duplication.
      
      Cleanup motivated by D68659.
      
      Reviewers: chandlerc, sanjoy.google, george.burgess.iv
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68670
      
      llvm-svn: 375050
      4eb1a573
  18. Oct 16, 2019
  19. Oct 15, 2019
  20. Oct 10, 2019
  21. Oct 09, 2019
    • Evandro Menezes's avatar
      [Support] Add mathematical constants · e60415a0
      Evandro Menezes authored
      Add own version of the mathematical constants from the upcoming C++20 `std::numbers`.
      
      Differential revision: https://reviews.llvm.org/D68257
      
      llvm-svn: 374207
      e60415a0
    • Alina Sbirlea's avatar
      [MemorySSA] Make the use of moveAllAfterMergeBlocks consistent. · 7faa14a9
      Alina Sbirlea authored
      Summary:
      The rule for the moveAllAfterMergeBlocks API si for all instructions
      from `From` to have been moved to `To`, while keeping the CFG edges (and
      block terminators) unchanged.
      Update all the callsites for moveAllAfterMergeBlocks to follow this.
      
      Pending follow-up: since the same behavior is needed everytime, merge
      all callsites into one. The common denominator may be the call to
      `MergeBlockIntoPredecessor`.
      
      Resolves PR43569.
      
      Reviewers: george.burgess.iv
      
      Subscribers: Prazek, sanjoy.google, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68659
      
      llvm-svn: 374177
      7faa14a9
  22. Oct 08, 2019
    • Vedant Kumar's avatar
      [CodeExtractor] Factor out and reuse shrinkwrap analysis · 9852699d
      Vedant Kumar authored
      Factor out CodeExtractor's analysis of allocas (for shrinkwrapping
      purposes), and allow the analysis to be reused.
      
      This resolves a quadratic compile-time bug observed when compiling
      AMDGPUDisassembler.cpp.o.
      
      Pre-patch (Release + LTO clang):
      
      ```
         ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
        176.5278 ( 57.8%)   0.4915 ( 18.5%)  177.0192 ( 57.4%)  177.4112 ( 57.3%)  Hot Cold Splitting
      ```
      
      Post-patch (ReleaseAsserts clang):
      
      ```
         ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
        1.4051 (  3.3%)   0.0079 (  0.3%)   1.4129 (  3.2%)   1.4129 (  3.2%)  Hot Cold Splitting
      ```
      
      Testing: check-llvm, and comparing the AMDGPUDisassembler.cpp.o binary
      pre- vs. post-patch.
      
      An alternate approach is to hide CodeExtractorAnalysisCache from clients
      of CodeExtractor, and to recompute the analysis from scratch inside of
      CodeExtractor::extractCodeRegion(). This eliminates some redundant work
      in the shrinkwrapping legality check. However, some clients continue to
      exhibit O(n^2) compile time behavior as computing the analysis is O(n).
      
      rdar://55912966
      
      Differential Revision: https://reviews.llvm.org/D68616
      
      llvm-svn: 374089
      9852699d
  23. Oct 07, 2019
    • Jordan Rose's avatar
      Second attempt to add iterator_range::empty() · fdaa7421
      Jordan Rose authored
      Doing this makes MSVC complain that `empty(someRange)` could refer to
      either C++17's std::empty or LLVM's llvm::empty, which previously we
      avoided via SFINAE because std::empty is defined in terms of an empty
      member rather than begin and end. So, switch callers over to the new
      method as it is added.
      
      https://reviews.llvm.org/D68439
      
      llvm-svn: 373935
      fdaa7421
  24. Oct 05, 2019
  25. Oct 03, 2019
  26. Oct 02, 2019
Loading