Skip to content
  1. Jun 18, 2013
  2. Jun 17, 2013
  3. May 31, 2013
  4. May 29, 2013
  5. May 28, 2013
    • Paul Redmond's avatar
      Add support for llvm.vectorizer metadata · 5fdf836b
      Paul Redmond authored
      - llvm.loop.parallel metadata has been renamed to llvm.loop to be more generic
        by making the root of additional loop metadata.
        - Loop::isAnnotatedParallel now looks for llvm.loop and associated
          llvm.mem.parallel_loop_access
        - document llvm.loop and update llvm.mem.parallel_loop_access
      - add support for llvm.vectorizer.width and llvm.vectorizer.unroll
        - document llvm.vectorizer.* metadata
        - add utility class LoopVectorizerHints for getting/setting loop metadata
        - use llvm.vectorizer.width=1 to indicate already vectorized instead of
          already_vectorized
      - update existing tests that used llvm.loop.parallel and
        llvm.vectorizer.already_vectorized
      
      Reviewed by: Nadav Rotem
      
      llvm-svn: 182802
      5fdf836b
  6. May 24, 2013
  7. 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
    • Arnold Schwaighofer's avatar
      LoopVectorize: Make Value pointers that could be RAUW'ed a VH · 12b0d1cd
      Arnold Schwaighofer authored
      The Value pointers we store in the induction variable list can be RAUW'ed by a
      call to SCEVExpander::expandCodeFor, use a TrackingVH instead. Do the same thing
      in some other places where we store pointers that could potentially be RAUW'ed.
      
      Fixes PR16073.
      
      llvm-svn: 182485
      12b0d1cd
  8. May 18, 2013
  9. May 17, 2013
  10. May 16, 2013
  11. May 15, 2013
  12. May 14, 2013
  13. May 13, 2013
  14. May 12, 2013
  15. May 11, 2013
  16. May 09, 2013
  17. May 07, 2013
  18. May 06, 2013
  19. May 05, 2013
  20. May 03, 2013
    • Nadav Rotem's avatar
      LoopVectorizer: Add support for if-conversion of PHINodes with 3+ incoming values. · 4ce060b3
      Nadav Rotem authored
      By supporting the vectorization of PHINodes with more than two incoming values we can increase the complexity of nested if statements.
      
      We can now vectorize this loop:
      
      int foo(int *A, int *B, int n) {
        for (int i=0; i < n; i++) {
          int x = 9;
          if (A[i] > B[i]) {
            if (A[i] > 19) {
              x = 3;
            } else if (B[i] < 4 ) {
              x = 4;
            } else {
              x = 5;
            }
          }
          A[i] = x;
        }
      }
      
      llvm-svn: 181037
      4ce060b3
  21. May 01, 2013
    • Filip Pizlo's avatar
      This patch breaks up Wrap.h so that it does not have to include all of · dec20e43
      Filip Pizlo authored
      the things, and renames it to CBindingWrapping.h.  I also moved 
      CBindingWrapping.h into Support/.
      
      This new file just contains the macros for defining different wrap/unwrap 
      methods.
      
      The calls to those macros, as well as any custom wrap/unwrap definitions 
      (like for array of Values for example), are put into corresponding C++ 
      headers.
      
      Doing this required some #include surgery, since some .cpp files relied 
      on the fact that including Wrap.h implicitly caused the inclusion of a 
      bunch of other things.
      
      This also now means that the C++ headers will include their corresponding 
      C API headers; for example Value.h must include llvm-c/Core.h.  I think 
      this is harmless, since the C API headers contain just external function 
      declarations and some C types, so I don't believe there should be any 
      nasty dependency issues here.
      
      llvm-svn: 180881
      dec20e43
  22. Apr 30, 2013
  23. Apr 26, 2013
  24. Apr 25, 2013
  25. Apr 24, 2013
Loading