- Mar 04, 2012
-
-
Chandler Carruth authored
new hash_value infrastructure, and replace their implementations using hash_combine. This removes a complete copy of Jenkin's lookup3 hash function (which is both significantly slower and lower quality than the one implemented in hash_combine) along with a somewhat scary xor-only hash function. Now that APInt and APFloat can be passed directly to hash_combine, simplify the rest of the LLVMContextImpl hashing to use the new infrastructure. llvm-svn: 152004
-
Chandler Carruth authored
llvm-svn: 152003
-
- Mar 02, 2012
-
-
Chandler Carruth authored
to do more invasive refactoring here to get FoldingSet to use size_t or even hash_code directly, but for now this is a good first step to remove Yet Another Hashing Algorithm from LLVM. llvm-svn: 151859
-
- Mar 01, 2012
-
-
Benjamin Kramer authored
BumpPtrAllocator: Make sure threshold cannot be initialized with a value smaller than the slab size. This replaces r151834 with a simpler fix. llvm-svn: 151842
-
Argyrios Kyrtzidis authored
increase the slab size. llvm-svn: 151834
-
Chandler Carruth authored
r151822, sorry sorry. =[ We need 'git svn nothave' or some such... llvm-svn: 151824
-
Chandler Carruth authored
of the proposed standard hashing interfaces (N3333), and to use a modified and tuned version of the CityHash algorithm. Some of the highlights of this change: -- Significantly higher quality hashing algorithm with very well distributed results, and extremely few collisions. Should be close to a checksum for up to 64-bit keys. Very little clustering or clumping of hash codes, to better distribute load on probed hash tables. -- Built-in support for reserved values. -- Simplified API that composes cleanly with other C++ idioms and APIs. -- Better scaling performance as keys grow. This is the fastest algorithm I've found and measured for moderately sized keys (such as show up in some of the uniquing and folding use cases) -- Support for enabling per-execution seeds to prevent table ordering or other artifacts of hashing algorithms to impact the output of LLVM. The seeding would make each run different and highlight these problems during bootstrap. This implementation was tested extensively using the SMHasher test suite, and pased with flying colors, doing better than the original CityHash algorithm even. I've included a unittest, although it is somewhat minimal at the moment. I've also added (or refactored into the proper location) type traits necessary to implement this, and converted users of GeneralHash over. My only immediate concerns with this implementation is the performance of hashing small keys. I've already started working to improve this, and will continue to do so. Currently, the only algorithms faster produce lower quality results, but it is likely there is a better compromise than the current one. Many thanks to Jeffrey Yasskin who did most of the work on the N3333 paper, pair-programmed some of this code, and reviewed much of it. Many thanks also go to Geoff Pike Pike and Jyrki Alakuijala, the original authors of CityHash on which this is heavily based, and Austin Appleby who created MurmurHash and the SMHasher test suite. Also thanks to Nadav, Tobias, Howard, Jay, Nick, Ahmed, and Duncan for all of the review comments! If there are further comments or concerns, please let me know and I'll jump on 'em. llvm-svn: 151822
-
- Feb 29, 2012
-
-
Derek Schuff authored
llvm-svn: 151687
-
Daniel Dunbar authored
llvm-svn: 151685
-
Daniel Dunbar authored
find root names on Unix. - This fixes make_absolute to not basically always call current_path() on Unix systems. - I think the API probably needs cleanup in this area, but I'll let Michael handle that. llvm-svn: 151681
-
Michael J. Spencer authored
llvm-svn: 151675
-
- Feb 24, 2012
-
-
Ahmed Charles authored
llvm-svn: 151385
-
Duncan Sands authored
of the StringRef.Split2 unittest on 32 bit machines. llvm-svn: 151358
-
- Feb 23, 2012
- Feb 22, 2012
-
-
Chad Rosier authored
llvm-svn: 151169
-
Chandler Carruth authored
chip in r139383, and the PSP components of the triple are really annoying to parse. Let's leave this chapter behind. There is no reason to expect LLVM to see a PSP-related triple these days, and so no reasonable motivation to support them. It might be reasonable to prune a few of the older MIPS triple forms in general, but as those at least cause no burden on parsing (they aren't both a chip and an OS!), I'm happy to leave them in for now. llvm-svn: 151156
-
- Feb 21, 2012
-
-
Duncan Sands authored
and into StringRef.cpp, which is where the other StringRef stuff is. llvm-svn: 151054
-
Chandler Carruth authored
the normalize routine, especially the empty while loops. llvm-svn: 151050
-
Chandler Carruth authored
days. No functionality changed. llvm-svn: 151048
-
Chandler Carruth authored
They're private static methods but we can just make them static functions in the implementation. It makes the implementations a touch more wordy, but takes another chunk out of the header file. Also, take the opportunity to switch the names to the new coding conventions. No functionality changed here. llvm-svn: 151047
-
Chandler Carruth authored
Somehow, I even missed the ones I wrote just the other day... Thanks to Matt for the code review. llvm-svn: 151045
-
Chandler Carruth authored
construction. Simplify its interface, implementation, and users accordingly as there is no longer an 'uninitialized' state to check for. Also, fixes a bug lurking in the interface as there was one method that didn't correctly check for initialization. llvm-svn: 151024
-
- Feb 20, 2012
-
-
Chandler Carruth authored
functionality changed. This is in preparation for some refactoring of how this class behaves. llvm-svn: 150941
-
- Feb 19, 2012
-
-
Ahmed Charles authored
llvm-svn: 150918
-
NAKAMURA Takumi authored
FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang. llvm-svn: 150911
-
- Feb 18, 2012
-
-
Ahmed Charles authored
llvm-svn: 150897
-
Talin authored
llvm-svn: 150890
-
Chandler Carruth authored
etc. No functionality changed. llvm-svn: 150867
-
- Feb 15, 2012
-
-
Kaelyn Uhrain authored
Accomplished by moving the body of StringRef::edit_distance into a separate function that accepts two ArrayRefs, and making StringRef::edit_distance a wrapper around the new function. llvm-svn: 150621
-
- Feb 12, 2012
-
-
Benjamin Kramer authored
llvm-svn: 150332
-
Chandler Carruth authored
the process. Some of these are still a bit gross. Still, this cuts 80 some lines out of this ridiculous file. ;] llvm-svn: 150331
-
- Feb 09, 2012
-
-
David Blaikie authored
Unify default construction of error_code uses on this idiom so that users don't feel compelled to make static globals for naming convenience. (unfortunately I couldn't make the original ctor private as some APIs don't return their result, instead using an out parameter (that makes sense to default construct) - which is a bit of a pity. I did, however, find/fix some cases of unnecessary default construction of error_code before I hit the unfixable cases) llvm-svn: 150197
-
David Blaikie authored
If someone would prefer a clear name for the 'success' error_value we could come up with one - potentially just a 'named constructor' style 'error_value::success()' to make this expression more self-documenting. If I see this come up in other cases I'll certainly consider it. One step along the way to resolving PR11944. llvm-svn: 150120
-
- Feb 08, 2012
-
-
Benjamin Kramer authored
llvm-svn: 150071
-
- Feb 07, 2012
-
-
David Blaikie authored
llvm-svn: 149999
-
Craig Topper authored
llvm-svn: 149967
-
Derek Schuff authored
llvm-svn: 149941
-
- Feb 06, 2012
-
-
Nick Lewycky authored
llvm-svn: 149922
-
Derek Schuff authored
This CL delays reading of function bodies from initial parse until materialization, allowing overlap of compilation with bitcode download. llvm-svn: 149918
-