diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp
index 898c780..30257d2 100644
--- a/lib/CodeGen/CGCall.cpp
+++ b/lib/CodeGen/CGCall.cpp
@@ -86,7 +86,18 @@
 
 const CGFunctionInfo &CodeGenTypes::getFunctionInfo(QualType ResTy,
                                const llvm::SmallVector<QualType, 16> &ArgTys) {
-  return *new CGFunctionInfo(ResTy, ArgTys);
+  // Lookup or create unique function info.
+  llvm::FoldingSetNodeID ID;
+  CGFunctionInfo::Profile(ID, ResTy, ArgTys.begin(), ArgTys.end());
+
+  void *InsertPos = 0;
+  CGFunctionInfo *FI = FunctionInfos.FindNodeOrInsertPos(ID, InsertPos);
+  if (FI)
+    return *FI;
+
+  FI = new CGFunctionInfo(ResTy, ArgTys);
+  FunctionInfos.InsertNode(FI, InsertPos);
+  return *FI;
 }
 
 /***/
diff --git a/lib/CodeGen/CGCall.h b/lib/CodeGen/CGCall.h
index aaab36c..6113049 100644
--- a/lib/CodeGen/CGCall.h
+++ b/lib/CodeGen/CGCall.h
@@ -15,6 +15,7 @@
 #ifndef CLANG_CODEGEN_CGCALL_H
 #define CLANG_CODEGEN_CGCALL_H
 
+#include <llvm/ADT/FoldingSet.h>
 #include "clang/AST/Type.h"
 
 #include "CGValue.h"
@@ -49,7 +50,7 @@
   
   /// CGFunctionInfo - Class to encapsulate the information about a
   /// function definition.
-  class CGFunctionInfo {
+  class CGFunctionInfo : public llvm::FoldingSetNode {
     llvm::SmallVector<QualType, 16> ArgTypes;
 
   public:
@@ -62,6 +63,19 @@
     arg_iterator arg_end() const;
 
     QualType getReturnType() const { return ArgTypes[0]; }
+
+    void Profile(llvm::FoldingSetNodeID &ID) {
+      Profile(ID, getReturnType(), arg_begin(), arg_end());
+    }
+    template<class Iterator>
+    static void Profile(llvm::FoldingSetNodeID &ID, 
+                        QualType ResTy,
+                        Iterator begin,
+                        Iterator end) {
+      ResTy.Profile(ID);
+      for (; begin != end; ++begin)
+        begin->Profile(ID);
+    }
   };
 }  // end namespace CodeGen
 }  // end namespace clang
diff --git a/lib/CodeGen/CodeGenTypes.h b/lib/CodeGen/CodeGenTypes.h
index d41c23d..3070c85 100644
--- a/lib/CodeGen/CodeGenTypes.h
+++ b/lib/CodeGen/CodeGenTypes.h
@@ -100,6 +100,9 @@
   /// field no. This info is populated by record organizer.
   llvm::DenseMap<const FieldDecl *, unsigned> FieldInfo;
 
+  /// FunctionInfos - Hold memoized CGFunctionInfo results.
+  llvm::FoldingSet<CGFunctionInfo> FunctionInfos;
+
 public:
   class BitFieldInfo {
   public:
