Skip to content
  1. Jul 22, 2016
  2. Jul 20, 2016
  3. Jul 19, 2016
    • George Burgess IV's avatar
      [MemorySSA] Update to the new shiny walker. · 5f30897b
      George Burgess IV authored
      This patch updates MemorySSA's use-optimizing walker to be more
      accurate and, in some cases, faster.
      
      Essentially, this changed our core walking algorithm from a
      cache-as-you-go DFS to an iteratively expanded DFS, with all of the
      caching happening at the end. Said expansion happens when we hit a Phi,
      P; we'll try to do the smallest amount of work possible to see if
      optimizing above that Phi is legal in the first place. If so, we'll
      expand the search to see if we can optimize to the next phi, etc.
      
      An iteratively expanded DFS lets us potentially quit earlier (because we
      don't assume that we can optimize above all phis) than our old walker.
      Additionally, because we don't cache as we go, we can now optimize above
      loops.
      
      As an added bonus, this patch adds a ton of verification (if
      EXPENSIVE_CHECKS are enabled), so finding bugs is easier.
      
      Differential Revision: https://reviews.llvm.org/D21777
      
      llvm-svn: 275940
      5f30897b
  4. Jul 18, 2016
  5. Jul 15, 2016
    • Michael Zolotukhin's avatar
      Make processInstruction from LCSSA.cpp externally available. · a78937af
      Michael Zolotukhin authored
      Summary:
      When a pass tries to keep LCSSA form it's often convenient to be able to update
      LCSSA for a set of instructions rather than for the entire loop. This patch makes the
      processInstruction from LCSSA externally available under a name
      formLCSSAForInstruction.
      
      Reviewers: chandlerc, sanjoy, hfinkel
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D22378
      
      llvm-svn: 275613
      a78937af
    • David Majnemer's avatar
      [AliasAnalysis] Give back AA results for fence instructions · a940f360
      David Majnemer authored
      Calling getModRefInfo with a fence resulted in crashes because fences
      don't have a memory location.  Add a new predicate to Instruction
      called isFenceLike which indicates that the instruction mutates memory
      but not any single memory location in particular. In practice, it is a
      proxy for the set of instructions which "mayWriteToMemory" but cannot be
      used with MemoryLocation::get.
      
      This fixes PR28570.
      
      llvm-svn: 275581
      a940f360
  6. Jul 13, 2016
  7. Jul 09, 2016
  8. Jul 08, 2016
  9. Jul 07, 2016
  10. Jul 06, 2016
  11. Jul 01, 2016
  12. Jun 28, 2016
  13. Jun 27, 2016
  14. Jun 26, 2016
  15. Jun 25, 2016
  16. Jun 24, 2016
    • George Burgess IV's avatar
      [MemorySSA] Move code around a bit. NFC. · fd1f2f85
      George Burgess IV authored
      This patch moves MSSA's caching walker into MemorySSA, and moves the
      actual definition of MSSA's caching walker out of MemorySSA.h. This is
      done in preparation for the new walker, which should be out for review
      soonish.
      
      Also, this patch removes a field from UpwardsMemoryQuery and has a few
      lines of diff from clang-format'ing MemorySSA.cpp.
      
      llvm-svn: 273723
      fd1f2f85
    • David Majnemer's avatar
      SimplifyInstruction does not imply DCE · 3b3e954e
      David Majnemer authored
      We cannot remove an instruction with no uses just because
      SimplifyInstruction succeeds.  It may have side effects.
      
      llvm-svn: 273711
      3b3e954e
    • David Majnemer's avatar
      Switch more loops to be range-based · d7708773
      David Majnemer authored
      This makes the code a little more concise, no functional change is
      intended.
      
      llvm-svn: 273644
      d7708773
Loading