diff --git a/llvm/runtime/libprofile/FunctionProfiling.c b/llvm/runtime/libprofile/FunctionProfiling.c
new file mode 100644
index 0000000..8bee2f9
--- /dev/null
+++ b/llvm/runtime/libprofile/FunctionProfiling.c
@@ -0,0 +1,41 @@
+/*===-- FunctionProfiling.c - Support library for function profiling ------===*\
+|*
+|*                     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 call back routines for the function profiling
+|* instrumentation pass.  This should be used with the
+|* -insert-function-profiling LLVM pass.
+|*
+\*===----------------------------------------------------------------------===*/
+
+#include "Profiling.h"
+#include <stdlib.h>
+
+static unsigned *ArrayStart;
+static unsigned NumElements;
+
+/* FuncProfAtExitHandler - When the program exits, just write out the profiling
+ * data.
+ */
+static void FuncProfAtExitHandler() {
+  /* Just write out the data we collected.
+   */
+  write_profiling_data(Function, ArrayStart, NumElements);
+}
+
+
+/* llvm_start_func_profiling - This is the main entry point of the function
+ * profiling library.  It is responsible for setting up the atexit handler.
+ */
+void llvm_start_func_profiling(int argc, const char **argv,
+                               unsigned *arrayStart, unsigned numElements) {
+  save_arguments(argc, argv);
+  ArrayStart = arrayStart;
+  NumElements = numElements;
+  atexit(FuncProfAtExitHandler);
+}
