Encode small integers more densely in foldingset, avoiding overflowing the SmallVector as often.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33864 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-02-04 01:48:10 +00:00
parent 9f24ad79ce
commit e4116f8553

View File

@ -44,7 +44,10 @@ void FoldingSetImpl::NodeID::AddInteger(unsigned I) {
}
void FoldingSetImpl::NodeID::AddInteger(uint64_t I) {
Bits.push_back(unsigned(I));
Bits.push_back(unsigned(I >> 32));
// If the integer is small, encode it just as 32-bits.
if ((uint64_t)(int)I != I)
Bits.push_back(unsigned(I >> 32));
}
void FoldingSetImpl::NodeID::AddFloat(float F) {
Bits.push_back(FloatToBits(F));