diff --git a/include/llvm/Analysis/ProfileInfo.h b/include/llvm/Analysis/ProfileInfo.h
new file mode 100644
index 0000000..4cdce4f
--- /dev/null
+++ b/include/llvm/Analysis/ProfileInfo.h
@@ -0,0 +1,43 @@
+//===- llvm/Analysis/ProfileInfo.h - Profile Info Interface -----*- C++ -*-===//
+// 
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
+//
+// This file defines the generic ProfileInfo interface, which is used as the
+// common interface used by all clients of profiling information, and
+// implemented either by making static guestimations, or by actually reading in
+// profiling information gathered by running the program.
+//
+// Note that to be useful, all profile-based optimizations should preserve
+// ProfileInfo, which requires that they notify it when changes to the CFG are
+// made.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ANALYSIS_PROFILEINFO_H
+#define LLVM_ANALYSIS_PROFILEINFO_H
+
+namespace llvm {
+  class BasicBlock;
+
+  struct ProfileInfo {
+    virtual ~ProfileInfo();  // We want to be subclassed
+    
+    //===------------------------------------------------------------------===//
+    /// Profile Information Queries
+    ///
+    virtual unsigned getExecutionCount(BasicBlock *BB) = 0;
+    
+    //===------------------------------------------------------------------===//
+    /// Analysis Update Methods
+    ///
+
+  };
+
+} // End llvm namespace
+
+#endif
diff --git a/lib/Analysis/ProfileInfo.cpp b/lib/Analysis/ProfileInfo.cpp
new file mode 100644
index 0000000..8a0dbe6
--- /dev/null
+++ b/lib/Analysis/ProfileInfo.cpp
@@ -0,0 +1,42 @@
+//===- ProfileInfo.cpp - Profile Info Interface ---------------------------===//
+// 
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
+//
+// This file implements the abstract ProfileInfo interface, and the default
+// "no profile" implementation.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Analysis/ProfileInfo.h"
+#include "llvm/Pass.h"
+using namespace llvm;
+
+// Register the AliasAnalysis interface, providing a nice name to refer to.
+namespace {
+  RegisterAnalysisGroup<ProfileInfo> Z("Profile Information");
+}
+
+ProfileInfo::~ProfileInfo() {}
+
+
+//===----------------------------------------------------------------------===//
+//  NoProfile ProfileInfo implementation
+//
+
+namespace {
+  struct NoProfileInfo : public ImmutablePass, public ProfileInfo {
+    unsigned getExecutionCount(BasicBlock *BB) { return 0; }
+  };
+ 
+  // Register this pass...
+  RegisterOpt<NoProfileInfo>
+  X("no-profile", "No Profile Information");
+
+  // Declare that we implement the AliasAnalysis interface
+  RegisterAnalysisGroup<ProfileInfo, NoProfileInfo> Y;
+}  // End of anonymous namespace
