aboutsummaryrefslogtreecommitdiff
path: root/lib/Support/FoldingSet.cpp
AgeCommit message (Collapse)Author
2011-07-18Simplify & microoptimize code. No intended functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135364 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-03singed int causes signed extension, which contradicts the intention to pick upZhongxing Xu
integers with high 32 bits being zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132538 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,Chris Lattner
patch by Johannes Schaub! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-29Merge System into Support.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-19Aligned and unaligned copies of the same stringDale Johannesen
were not hashing to the same value. Analysis and patch by Frits van Bommel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119770 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-24Use Bits.data() instead of &Bits[0].Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16Add hooks to FoldingSetTrait to allow specializations to provideDan Gohman
implementations of equality comparison and hash computation. This can be used to optimize node lookup by avoiding creating lots of temporary ID values just for hashing and comparison purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111130 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16Reverse the order of GetNodeProfile's arguments, for consistencyDan Gohman
with FoldingSetTrait::Profile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111127 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19Use calloc instead of new/memset, it is more efficient when the set is very ↵Benjamin Kramer
large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106390 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Add the ability to "intern" FoldingSetNodeID data into aDan Gohman
BumpPtrAllocator-allocated region to allow it to be stored in a more compact form and to avoid the need for a non-trivial destructor call. Use this new mechanism in ScalarEvolution instead of FastFoldingSetNode to avoid leaking memory in the case where a FoldingSetNodeID uses heap storage, and to reduce overall memory usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98829 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Switch FoldingSet::AddString to StringRef based API.Daniel Dunbar
- This also fixes a dereference of std::string::end, which makes MSVC unhappy and was causing all the static analyzer clang tests to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin
This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11assert(0) -> LLVM_UNREACHABLE.Torok Edwin
Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-07Add an API for strings with possible NULLs in the middle. Refactor the otherNick Lewycky
two AddString methods to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-21Do not use host floating point types when emittingDale Johannesen
ASCII IR; loading and storing these can change the bits of NaNs on some hosts. Remove or add warnings at a few other places using host floating point; this is a bad thing to do in general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62712 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-03Overload AddInteger on int/long/long long instead of on int/int64_t,Dan Gohman
to avoid overload ambiguities. This fixes build errors introduced by r58623. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58632 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-23Add a clear() method to FoldingSet.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55210 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-12Avoid repeatedly reallocating the FoldingSetNodeID when searchingDan Gohman
through multiple nodes in a bucket. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54687 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-01Add a version of AddString that takes a const char* so we can avoid extraneousOwen Anderson
conversions to std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-17Consistently set "Buckets[NumBuckets] = reinterpret_cast<void*>(-1)" ↵Ted Kremenek
throughout FoldingSet.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52425 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-05Fix more -Wshorten-64-to-32 warnings.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20Unbreak build with gcc 4.3: provide missed includes and silence most ↵Anton Korobeynikov
annoying warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47367 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-15Fixed bug in FoldingSetIteratorImpl where we did not correctly check ifTed Kremenek
we had reached the "fake bucket" after the last bucket, allowing the iterator in some cases to run off the end of the hashtable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47178 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Added "Profile" method to APFloat for use with FoldingSet.Ted Kremenek
Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary objects to a profile via dispatch to FoldingSetTrait<T>::Profile(). Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their functionality is now replaced using the above mentioned member template. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46957 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Add support to FoldingSet for hashing APInt objects.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46833 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-04Added "bucket_iterators" to FoldingSet. Bucket iterators allow iterationTed Kremenek
over all the nodes in a particular bucket. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46716 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-04Fixed 80 col. violation.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46709 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-19Made 'FoldingSetNodeID' a proper class instead of a nested class inTed Kremenek
'FoldingSetNodeImpl' (previously 'FoldingSetNodeID' was a typedef of 'FoldingSetNodeImpl::NodeID'). Why? Clients can now easily forward declare 'FoldingSetNodeID' without having to include FoldingSet.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46187 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29Remove attribution from file headers, per discussion on llvmdev.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09Change a #include into a forward declarationChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42781 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03Add initial iterator support for folding set.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03Simplify implementation of the FoldingSet circular list, a necessary stepChris Lattner
to giving it iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42586 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14fix a gcc warning: comparison between signed and unsigned integer expressionsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41972 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14Remove the assumption that FP's are either float orDale Johannesen
double from some of the many places in the optimizers it appears, and do something reasonable with x86 long double. Make APInt::dump() public, remove newline, use it to dump ConstantSDNode's. Allow APFloats in FoldingSet. Expand X86 backend handling of long doubles (conversions to/from int, mostly). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14And an FoldingSetImpl::NodeID::AddInteger overload for int64_t, to avoidDan Gohman
ambiguity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41960 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-24remove folding set debug outputChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34549 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04Encode small integers more densely in foldingset, avoiding overflowing the ↵Chris Lattner
SmallVector as often. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33864 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01improve comments, add an assertionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33750 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31Add some debug output.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33718 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31minor cleanups. Fix off-by-one in accounting the number of nodes when theChris Lattner
table grows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33698 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30reformat commentChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33675 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03assert.h -> cassertRafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31399 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02#include <assert.h>Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31386 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02Allow FoldingSet clients to pump up the initial hash size.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31377 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29Try again.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31278 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-29Not handling zero length strings.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31277 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-27SmallVector append not insert.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31224 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-27Grrr.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31223 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-27Temp patch for missing functionality.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31222 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-27MathExtras isn't in the llvm/ADT directory but in the llvm/Support directory.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31219 91177308-0d34-0410-b5e6-96231b3b80d8