Skip to content
  1. Apr 17, 2019
    • Eric Christopher's avatar
      Revert "Temporarily Revert "Add basic loop fusion pass."" · cee313d2
      Eric Christopher authored
      The reversion apparently deleted the test/Transforms directory.
      
      Will be re-reverting again.
      
      llvm-svn: 358552
      cee313d2
    • Eric Christopher's avatar
      Remove the run-slp-after-loop-vectorization option. · 0ebbf72a
      Eric Christopher authored
      It's been on by default for 4 years and cleans up the pass
      hierarchy.
      
      llvm-svn: 358548
      0ebbf72a
    • Eric Christopher's avatar
      Temporarily Revert "Add basic loop fusion pass." · a8634351
      Eric Christopher authored
      As it's causing some bot failures (and per request from kbarton).
      
      This reverts commit r358543/ab70da07.
      
      llvm-svn: 358546
      a8634351
    • Kit Barton's avatar
      Add basic loop fusion pass. · ab70da07
      Kit Barton authored
      This patch adds a basic loop fusion pass. It will fuse loops that conform to the
      following 4 conditions:
        1. Adjacent (no code between them)
        2. Control flow equivalent (if one loop executes, the other loop executes)
        3. Identical bounds (both loops iterate the same number of iterations)
        4. No negative distance dependencies between the loop bodies.
      
      The pass does not make any changes to the IR to create opportunities for fusion.
      Instead, it checks if the necessary conditions are met and if so it fuses two
      loops together.
      
      The pass has not been added to the pass pipeline yet, and thus is not enabled by
      default. It can be run stand alone using the -loop-fusion option.
      
      Phabricator: https://reviews.llvm.org/D55851
      llvm-svn: 358543
      ab70da07
    • Sam McCall's avatar
      [ADT] llvm::bsearch, binary search for mere mortals · 6b44291b
      Sam McCall authored
      Summary:
      Add to STLExtras a binary search function with a simple mental model:
      You provide a range and a predicate which is true above a certain point.
      bsearch() tells you that point.
      Overloads are provided for integers, iterators, and containers.
      
      This is more suitable than std:: alternatives in many cases:
       - std::binary_search only indicates presence/absence
       - upper_bound/lower_bound give you the opportunity to pick the wrong one
       - all of the options have confusing names and definitions when your predicate
         doesn't have simple "less than" semantics
       - all of the options require iterators
       - we plumb around a useless `value` parameter that should be a lambda capture
      
      The API is inspired by Go's standard library, but we add an extra parameter as
      well as some overloads and templates to show how clever C++ is.
      
      Reviewers: ilya-biryukov, gribozavr
      
      Subscribers: dexonsmith, kristina, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D60779
      
      llvm-svn: 358540
      6b44291b
    • Sanjay Patel's avatar
      [x86] adjust LEA tests for better coverage; NFC · d5bc5ca3
      Sanjay Patel authored
      The scale can 1, 2, or 3.
      
      llvm-svn: 358539
      d5bc5ca3
  2. Apr 16, 2019
Loading