| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
som inputs.
Bug found and fix proposed by Kal Conley!
llvm-svn: 153225
|
|
|
|
| |
llvm-svn: 152692
|
|
|
|
|
|
| |
code when inlined.
llvm-svn: 152688
|
|
|
|
|
|
|
|
| |
if the passed in FileSize is inaccurate.
rdar://11034179
llvm-svn: 152662
|
|
|
|
| |
llvm-svn: 152577
|
|
|
|
| |
llvm-svn: 152553
|
|
|
|
| |
llvm-svn: 152545
|
|
|
|
|
|
|
|
| |
it would fail with {,u}int64_t on x86-64 Linux.
This also removes code duplication.
llvm-svn: 152517
|
|
|
|
|
|
| |
Patch by Tom Stellard!
llvm-svn: 152400
|
|
|
|
| |
llvm-svn: 152346
|
|
|
|
|
|
|
|
|
| |
buildbots. Original commit message:
[ADT] Change the trivial FoldingSetNodeID::Add* methods to be inline, reapplied
with a fix for the longstanding over-read of 32-bit pointer values.
llvm-svn: 152304
|
|
|
|
|
|
| |
with a fix for the longstanding over-read of 32-bit pointer values.
llvm-svn: 152300
|
|
|
|
|
|
| |
inline.", which is breaking the bots in a way I don't understand.
llvm-svn: 152295
|
|
|
|
| |
llvm-svn: 152288
|
|
|
|
| |
llvm-svn: 152254
|
|
|
|
|
|
|
| |
This fixes a build failure in webkit. Copying all elements shouldn't be
necessary, I'll look out for a better fix soon.
llvm-svn: 152252
|
|
|
|
|
|
| |
GV and XDOT paths are untested but should work the same.
llvm-svn: 152179
|
|
|
|
|
|
|
|
|
| |
default triple-copy std::swap.
This currently assumes that both sets have the same SmallSize to keep the implementation simple,
a limitation that can be lifted if someone cares.
llvm-svn: 152143
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 152003
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
smaller than the slab size.
This replaces r151834 with a simpler fix.
llvm-svn: 151842
|
|
|
|
|
|
| |
increase the slab size.
llvm-svn: 151834
|
|
|
|
|
|
|
|
| |
r151822, sorry sorry. =[
We need 'git svn nothave' or some such...
llvm-svn: 151824
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 151687
|
|
|
|
| |
llvm-svn: 151685
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 151675
|
|
|
|
| |
llvm-svn: 151385
|
|
|
|
|
|
| |
of the StringRef.Split2 unittest on 32 bit machines.
llvm-svn: 151358
|
|
|
|
| |
llvm-svn: 151249
|
|
|
|
|
|
|
|
| |
it with memcpy. This also fixes a problem on big-endian hosts, where
addUnaligned would return different results depending on the alignment
of the data.
llvm-svn: 151247
|
|
|
|
| |
llvm-svn: 151169
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
and into StringRef.cpp, which is where the other StringRef stuff is.
llvm-svn: 151054
|
|
|
|
|
|
| |
the normalize routine, especially the empty while loops.
llvm-svn: 151050
|
|
|
|
|
|
| |
days. No functionality changed.
llvm-svn: 151048
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Somehow, I even missed the ones I wrote just the other day...
Thanks to Matt for the code review.
llvm-svn: 151045
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
functionality changed. This is in preparation for some refactoring of
how this class behaves.
llvm-svn: 150941
|
|
|
|
| |
llvm-svn: 150918
|
|
|
|
|
|
| |
FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang.
llvm-svn: 150911
|
|
|
|
| |
llvm-svn: 150897
|
|
|
|
| |
llvm-svn: 150890
|
|
|
|
|
|
| |
etc. No functionality changed.
llvm-svn: 150867
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 150332
|
|
|
|
|
|
|
|
| |
the process. Some of these are still a bit gross.
Still, this cuts 80 some lines out of this ridiculous file. ;]
llvm-svn: 150331
|