Skip to content
  1. Jun 18, 2013
  2. May 22, 2013
    • Nadav Rotem's avatar
      SLPVectorizer: Change the order in which new instructions are added to the function. · 9e00eb38
      Nadav Rotem authored
      We are not working on a DAG and I ran into a number of problems when I enabled the vectorizations of 'diamond-trees' (trees that share leafs).
      * Imroved the numbering API.
      * Changed the placement of new instructions to the last root.
      * Fixed a bug with external tree users with non-zero lane.
      * Fixed a bug in the placement of in-tree users.
      
      llvm-svn: 182508
      9e00eb38
  3. May 13, 2013
  4. May 11, 2013
  5. Apr 21, 2013
  6. Apr 20, 2013
  7. Apr 16, 2013
  8. Apr 14, 2013
  9. Apr 12, 2013
  10. Apr 10, 2013
  11. Apr 09, 2013
    • Nadav Rotem's avatar
      Add support for bottom-up SLP vectorization infrastructure. · 2d9dec32
      Nadav Rotem authored
      This commit adds the infrastructure for performing bottom-up SLP vectorization (and other optimizations) on parallel computations.
      The infrastructure has three potential users:
      
        1. The loop vectorizer needs to be able to vectorize AOS data structures such as (sum += A[i] + A[i+1]).
      
        2. The BB-vectorizer needs this infrastructure for bottom-up SLP vectorization, because bottom-up vectorization is faster to compute.
      
        3. A loop-roller needs to be able to analyze consecutive chains and roll them into a loop, in order to reduce code size. A loop roller does not need to create vector instructions, and this infrastructure separates the chain analysis from the vectorization.
      
      This patch also includes a simple (100 LOC) bottom up SLP vectorizer that uses the infrastructure, and can vectorize this code:
      
      void SAXPY(int *x, int *y, int a, int i) {
        x[i]   = a * x[i]   + y[i];
        x[i+1] = a * x[i+1] + y[i+1];
        x[i+2] = a * x[i+2] + y[i+2];
        x[i+3] = a * x[i+3] + y[i+3];
      }
      
      llvm-svn: 179117
      2d9dec32
Loading