Changes in directory llvm/lib/Support:

FoldingSet.cpp updated: 1.15 -> 1.16
---
Log message:

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


---
Diffs of the changes:  (+4 -1)

 FoldingSet.cpp |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)


Index: llvm/lib/Support/FoldingSet.cpp
diff -u llvm/lib/Support/FoldingSet.cpp:1.15 
llvm/lib/Support/FoldingSet.cpp:1.16
--- llvm/lib/Support/FoldingSet.cpp:1.15        Wed Jan 31 23:33:21 2007
+++ llvm/lib/Support/FoldingSet.cpp     Sat Feb  3 19:48:10 2007
@@ -44,7 +44,10 @@
 }
 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));



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to