Skip to content
  1. Mar 29, 2013
  2. Feb 21, 2013
  3. Feb 20, 2013
  4. Feb 19, 2013
  5. Feb 07, 2013
    • Meador Inge's avatar
      ADT: Correct APInt::getActiveWords for zero values · 32dc7249
      Meador Inge authored
      PR15138 was opened because of a segfault in the Bitcode writer.
      The actual issue ended up being a bug in APInt where calls to
      APInt::getActiveWords returns a bogus value when the APInt value
      is 0.  This patch fixes the problem by ensuring that getActiveWords
      returns 1 for 0 valued APInts.
      
      llvm-svn: 174641
      32dc7249
  6. Jan 31, 2013
  7. Jan 25, 2013
  8. Jan 22, 2013
  9. Jan 21, 2013
    • Michael Ilseman's avatar
      Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it. · 3e3194f4
      Michael Ilseman authored
      A SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's desirable properties. Essentially, SparseMultiSet provides multiset behavior by storing its dense data in doubly linked lists that are inlined into the dense vector. This allows it to provide good data locality as well as vector-like constant-time clear() and fast constant time find(), insert(), and erase(). It also allows SparseMultiSet to have a builtin recycler rather than keeping SparseSet's behavior of always swapping upon removal, which allows it to preserve more iterators. It's often a better alternative to a SparseSet of a growable container or vector-of-vector.
      
      llvm-svn: 173064
      3e3194f4
  10. Jan 07, 2013
  11. Jan 04, 2013
    • Jakob Stoklund Olesen's avatar
      Add an iplist::clearAndLeakNodesUnsafely() function. · 4ccabc1d
      Jakob Stoklund Olesen authored
      The iplist::clear() function can be quite expensive because it traverses
      the entire list, calling deleteNode() and removeNodeFromList() on each
      element. If node destruction and deallocation can be handled some other
      way, clearAndLeakNodesUnsafely() can be used to jettison all nodes
      without bringing them into cache.
      
      The function name is meant to be ominous.
      
      llvm-svn: 171540
      4ccabc1d
  12. Jan 02, 2013
  13. Dec 18, 2012
    • Jakob Stoklund Olesen's avatar
      Add an assertion for a likely ilist::splice() contract violation. · b8d29bf2
      Jakob Stoklund Olesen authored
      The single-element ilist::splice() function supports a noop move:
      
        List.splice(I, List, I);
      
      The corresponding std::list function doesn't allow that, so add a unit
      test to document that behavior.
      
      This also means that
      
        List.splice(I, List, F);
      
      is somewhat surprisingly not equivalent to
      
        List.splice(I, List, F, next(F));
      
      This patch adds an assertion to catch the illegal case I == F above.
      Alternatively, we could make I == F a legal noop, but that would make
      ilist differ even more from std::list.
      
      llvm-svn: 170443
      b8d29bf2
  14. Dec 04, 2012
  15. Nov 30, 2012
    • Chandler Carruth's avatar
      Switch LLVM_USE_RVALUE_REFERENCES to LLVM_HAS_RVALUE_REFERENCES. · f12e3a67
      Chandler Carruth authored
      Rationale:
      1) This was the name in the comment block. ;]
      2) It matches Clang's __has_feature naming convention.
      3) It matches other compiler-feature-test conventions.
      
      Sorry for the noise. =]
      
      I've also switch the comment block to use a \brief tag and not duplicate
      the name.
      
      llvm-svn: 168996
      f12e3a67
  16. Nov 08, 2012
  17. Oct 29, 2012
    • Ulrich Weigand's avatar
      Implement arithmetic on APFloat with PPCDoubleDouble semantics by · d9f7e259
      Ulrich Weigand authored
      treating it as if it were an IEEE floating-point type with 106-bit
      mantissa.
      
      This makes compile-time arithmetic on "long double" for PowerPC
      in clang (in particular parsing of floating point constants)
      work, and fixes all "long double" related failures in the test
      suite.
      
      llvm-svn: 166951
      d9f7e259
  18. Oct 23, 2012
  19. Oct 16, 2012
  20. Oct 14, 2012
  21. Oct 12, 2012
  22. Oct 03, 2012
  23. Sep 26, 2012
  24. Sep 15, 2012
  25. Aug 30, 2012
  26. Aug 15, 2012
  27. Aug 01, 2012
    • Chandler Carruth's avatar
      Add range erase, element insert, and range insert methods to · f2113f3b
      Chandler Carruth authored
      TinyPtrVector. With these, it is sufficiently functional for my more
      normal / pedestrian uses.
      
      I've not included some r-value reference stuff here because the value
      type for a TinyPtrVector is, necessarily, just a pointer.
      
      I've added tests that cover the basic behavior of these routines, but
      they aren't as comprehensive as I'd like. In particular, they don't
      really test the iterator semantics as thoroughly as they should. Maybe
      some brave soul will feel enterprising and flesh them out. ;]
      
      llvm-svn: 161104
      f2113f3b
Loading