[compiler-rt] r204497 - InstrProf: Reorganize files; no functionality change

Duncan P. N. Exon Smith dexonsmith at apple.com
Fri Mar 21 11:29:15 PDT 2014


Author: dexonsmith
Date: Fri Mar 21 13:29:15 2014
New Revision: 204497

URL: http://llvm.org/viewvc/llvm-project?rev=204497&view=rev
Log:
InstrProf: Reorganize files; no functionality change

Move functions around to prepare for some other changes.

  - Merge InstrProfilingExtras.h with InstrProfiling.h.  There's no
    benefit to having these split.

  - Rename InstrProfilingExtras.c to InstrProfilingFile.c.

  - Split actual buffer writing code out of InstrProfiling.c into
    InstrProfilingBuffer.c.

  - Drive-by corrections of a couple of header comments.

<rdar://problem/15943240>

Added:
    compiler-rt/trunk/lib/profile/InstrProfilingBuffer.c
      - copied, changed from r204495, compiler-rt/trunk/lib/profile/InstrProfiling.c
    compiler-rt/trunk/lib/profile/InstrProfilingFile.c
      - copied, changed from r204495, compiler-rt/trunk/lib/profile/InstrProfilingExtras.c
Removed:
    compiler-rt/trunk/lib/profile/InstrProfilingExtras.c
    compiler-rt/trunk/lib/profile/InstrProfilingExtras.h
Modified:
    compiler-rt/trunk/lib/profile/CMakeLists.txt
    compiler-rt/trunk/lib/profile/InstrProfiling.c
    compiler-rt/trunk/lib/profile/InstrProfiling.h
    compiler-rt/trunk/lib/profile/InstrProfilingPlatformDarwin.c
    compiler-rt/trunk/lib/profile/InstrProfilingPlatformOther.c
    compiler-rt/trunk/lib/profile/InstrProfilingRuntime.cc
    compiler-rt/trunk/make/platform/clang_darwin.mk

Modified: compiler-rt/trunk/lib/profile/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/CMakeLists.txt?rev=204497&r1=204496&r2=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/profile/CMakeLists.txt Fri Mar 21 13:29:15 2014
@@ -6,9 +6,10 @@ if(APPLE)
   set(PROFILE_SOURCES
     GCDAProfiling.c
     InstrProfiling.c
+    InstrProfilingBuffer.c
+    InstrProfilingFile.c
     InstrProfilingPlatformDarwin.c
-    InstrProfilingRuntime.cc
-    InstrProfilingExtras.c)
+    InstrProfilingRuntime.cc)
 
   add_compiler_rt_osx_static_runtime(clang_rt.profile_osx
     ARCH ${PROFILE_SUPPORTED_ARCH}
@@ -18,9 +19,10 @@ else()
   set(PROFILE_SOURCES
     GCDAProfiling.c
     InstrProfiling.c
+    InstrProfilingBuffer.c
+    InstrProfilingFile.c
     InstrProfilingPlatformOther.c
-    InstrProfilingRuntime.cc
-    InstrProfilingExtras.c)
+    InstrProfilingRuntime.cc)
 
   foreach(arch ${PROFILE_SUPPORTED_ARCH})
     add_compiler_rt_static_runtime(clang_rt.profile-${arch}

Modified: compiler-rt/trunk/lib/profile/InstrProfiling.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfiling.c?rev=204497&r1=204496&r2=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfiling.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfiling.c Fri Mar 21 13:29:15 2014
@@ -10,9 +10,8 @@
 #include "InstrProfiling.h"
 #include <string.h>
 
-/* TODO: void __llvm_profile_get_size_for_buffer(void);  */
-
-static uint64_t getMagic(void) {
+uint64_t __llvm_profile_get_magic(void) {
+  /* Magic number to detect file format and endianness. */
   return
     (uint64_t)'l' << 56 |
     (uint64_t)'p' << 48 |
@@ -24,53 +23,11 @@ static uint64_t getMagic(void) {
     (uint64_t)'w';
 }
 
-static uint64_t getVersion(void) {
+uint64_t __llvm_profile_get_version(void) {
+  /* This should be bumped any time the output format changes. */
   return 1;
 }
 
-int __llvm_profile_write_buffer(FILE *OutputFile) {
-  /* TODO: Requires libc: break requirement by taking a char* buffer instead of
-   * a FILE stream.
-   */
-  const __llvm_profile_data *DataBegin = __llvm_profile_data_begin();
-  const __llvm_profile_data *DataEnd = __llvm_profile_data_end();
-  const uint64_t *CountersBegin = __llvm_profile_counters_begin();
-  const uint64_t *CountersEnd   = __llvm_profile_counters_end();
-  const char *NamesBegin = __llvm_profile_names_begin();
-  const char *NamesEnd   = __llvm_profile_names_end();
-
-  /* Calculate size of sections. */
-  const uint64_t DataSize = DataEnd - DataBegin;
-  const uint64_t CountersSize = CountersEnd - CountersBegin;
-  const uint64_t NamesSize = NamesEnd - NamesBegin;
-
-  /* Get rest of header data. */
-  const uint64_t Magic = getMagic();
-  const uint64_t Version = getVersion();
-  const uint64_t CountersDelta = (uint64_t)CountersBegin;
-  const uint64_t NamesDelta = (uint64_t)NamesBegin;
-
-#define CHECK_fwrite(Data, Size, Length, File) \
-  do { if (fwrite(Data, Size, Length, File) != Length) return -1; } while (0)
-
-  /* Write the header. */
-  CHECK_fwrite(&Magic,         sizeof(uint64_t), 1, OutputFile);
-  CHECK_fwrite(&Version,       sizeof(uint64_t), 1, OutputFile);
-  CHECK_fwrite(&DataSize,      sizeof(uint64_t), 1, OutputFile);
-  CHECK_fwrite(&CountersSize,  sizeof(uint64_t), 1, OutputFile);
-  CHECK_fwrite(&NamesSize,     sizeof(uint64_t), 1, OutputFile);
-  CHECK_fwrite(&CountersDelta, sizeof(uint64_t), 1, OutputFile);
-  CHECK_fwrite(&NamesDelta,    sizeof(uint64_t), 1, OutputFile);
-
-  /* Write the data. */
-  CHECK_fwrite(DataBegin, sizeof(__llvm_profile_data), DataSize, OutputFile);
-  CHECK_fwrite(CountersBegin, sizeof(uint64_t), CountersSize, OutputFile);
-  CHECK_fwrite(NamesBegin, sizeof(char), NamesSize, OutputFile);
-#undef CHECK_fwrite
-
-  return 0;
-}
-
 void __llvm_profile_reset_counters(void) {
   uint64_t *I = __llvm_profile_counters_begin();
   uint64_t *E = __llvm_profile_counters_end();

Modified: compiler-rt/trunk/lib/profile/InstrProfiling.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfiling.h?rev=204497&r1=204496&r2=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfiling.h (original)
+++ compiler-rt/trunk/lib/profile/InstrProfiling.h Fri Mar 21 13:29:15 2014
@@ -7,8 +7,10 @@
 |*
 \*===----------------------------------------------------------------------===*/
 
+#ifndef PROFILE_INSTRPROFILING_H__
+#define PROFILE_INSTRPROFILING_H__
+
 #include <stdio.h>
-#include <stdlib.h>
 
 #define I386_FREEBSD (defined(__FreeBSD__) && defined(__i386__))
 
@@ -40,7 +42,7 @@ typedef struct __llvm_profile_data {
   uint64_t *const Counters;
 } __llvm_profile_data;
 
-/* TODO: void __llvm_profile_get_size_for_buffer(void);  */
+/* TODO: void __llvm_profile_get_size_for_buffer(void); */
 
 /*!
  * \brief Write instrumentation data to the given buffer.
@@ -57,3 +59,37 @@ const char *__llvm_profile_names_begin(v
 const char *__llvm_profile_names_end(void);
 uint64_t *__llvm_profile_counters_begin(void);
 uint64_t *__llvm_profile_counters_end(void);
+
+#define PROFILE_RANGE_SIZE(Range) \
+  (__llvm_profile_ ## Range ## _end() - __llvm_profile_ ## Range ## _begin())
+
+/*!
+ * \brief Write instrumentation data to the current file.
+ *
+ * Writes to the file with the last name given to \a __llvm_profile_set_filename(),
+ * or if it hasn't been called, the \c LLVM_PROFILE_FILE environment variable,
+ * or if that's not set, \c "default.profdata".
+ */
+int __llvm_profile_write_file(void);
+
+/*!
+ * \brief Set the filename for writing instrumentation data.
+ *
+ * Sets the filename to be used for subsequent calls to
+ * \a __llvm_profile_write_file().
+ *
+ * \c Name is not copied, so it must remain valid.  Passing NULL resets the
+ * filename logic to the default behaviour.
+ */
+void __llvm_profile_set_filename(const char *Name);
+
+/*! \brief Register to write instrumentation data to file at exit. */
+int __llvm_profile_register_write_file_atexit(void);
+
+/*! \brief Get the magic token for the file format. */
+uint64_t __llvm_profile_get_magic(void);
+
+/*! \brief Get the version of the file format. */
+uint64_t __llvm_profile_get_version(void);
+
+#endif /* PROFILE_INSTRPROFILING_H__ */

Copied: compiler-rt/trunk/lib/profile/InstrProfilingBuffer.c (from r204495, compiler-rt/trunk/lib/profile/InstrProfiling.c)
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingBuffer.c?p2=compiler-rt/trunk/lib/profile/InstrProfilingBuffer.c&p1=compiler-rt/trunk/lib/profile/InstrProfiling.c&r1=204495&r2=204497&rev=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfiling.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingBuffer.c Fri Mar 21 13:29:15 2014
@@ -1,4 +1,4 @@
-/*===- InstrProfiling.c - Support library for PGO instrumentation ---------===*\
+/*===- InstrProfilingBuffer.c - Write instrumentation to a memory buffer --===*\
 |*
 |*                     The LLVM Compiler Infrastructure
 |*
@@ -10,28 +10,9 @@
 #include "InstrProfiling.h"
 #include <string.h>
 
-/* TODO: void __llvm_profile_get_size_for_buffer(void);  */
-
-static uint64_t getMagic(void) {
-  return
-    (uint64_t)'l' << 56 |
-    (uint64_t)'p' << 48 |
-    (uint64_t)'r' << 40 |
-    (uint64_t)'o' << 32 |
-    (uint64_t)'f' << 24 |
-    (uint64_t)'r' << 16 |
-    (uint64_t)'a' <<  8 |
-    (uint64_t)'w';
-}
-
-static uint64_t getVersion(void) {
-  return 1;
-}
+/* TODO: uint64_t __llvm_profile_get_size_for_buffer(void) */
 
 int __llvm_profile_write_buffer(FILE *OutputFile) {
-  /* TODO: Requires libc: break requirement by taking a char* buffer instead of
-   * a FILE stream.
-   */
   const __llvm_profile_data *DataBegin = __llvm_profile_data_begin();
   const __llvm_profile_data *DataEnd = __llvm_profile_data_end();
   const uint64_t *CountersBegin = __llvm_profile_counters_begin();
@@ -45,8 +26,8 @@ int __llvm_profile_write_buffer(FILE *Ou
   const uint64_t NamesSize = NamesEnd - NamesBegin;
 
   /* Get rest of header data. */
-  const uint64_t Magic = getMagic();
-  const uint64_t Version = getVersion();
+  const uint64_t Magic = __llvm_profile_get_magic();
+  const uint64_t Version = __llvm_profile_get_version();
   const uint64_t CountersDelta = (uint64_t)CountersBegin;
   const uint64_t NamesDelta = (uint64_t)NamesBegin;
 
@@ -66,14 +47,8 @@ int __llvm_profile_write_buffer(FILE *Ou
   CHECK_fwrite(DataBegin, sizeof(__llvm_profile_data), DataSize, OutputFile);
   CHECK_fwrite(CountersBegin, sizeof(uint64_t), CountersSize, OutputFile);
   CHECK_fwrite(NamesBegin, sizeof(char), NamesSize, OutputFile);
-#undef CHECK_fwrite
-
-  return 0;
-}
 
-void __llvm_profile_reset_counters(void) {
-  uint64_t *I = __llvm_profile_counters_begin();
-  uint64_t *E = __llvm_profile_counters_end();
+#undef CHECK_fwrite
 
-  memset(I, 0, sizeof(uint64_t)*(E - I));
+   return 0;
 }

Removed: compiler-rt/trunk/lib/profile/InstrProfilingExtras.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingExtras.c?rev=204496&view=auto
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingExtras.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingExtras.c (removed)
@@ -1,105 +0,0 @@
-/*===- InstrProfilingExtras.c - Support library for PGO instrumentation ---===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source
-|* License. See LICENSE.TXT for details.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#include "InstrProfiling.h"
-#include <string.h>
-
-static int __llvm_profile_write_file_with_name(const char *OutputName) {
-  int RetVal;
-  FILE *OutputFile;
-  if (!OutputName || !OutputName[0])
-    return -1;
-  OutputFile = fopen(OutputName, "w");
-  if (!OutputFile)
-    return -1;
-
-  /* TODO: mmap file to buffer of size __llvm_profile_get_size_for_buffer() and
-   * pass the buffer in, instead of the file.
-   */
-  RetVal = __llvm_profile_write_buffer(OutputFile);
-
-  fclose(OutputFile);
-  return RetVal;
-}
-
-static const char *CurrentFilename = NULL;
-void __llvm_profile_set_filename(const char *Filename) {
-  CurrentFilename = Filename;
-}
-
-int getpid(void);
-int __llvm_profile_write_file(void) {
-  char *AllocatedFilename = NULL;
-  int I, J;
-  int RetVal;
-
-#define MAX_PID_SIZE 16
-  char PidChars[MAX_PID_SIZE] = { 0 };
-  int PidLength = 0;
-  int NumPids = 0;
-
-  // Get the filename.
-  const char *Filename = CurrentFilename;
-#define UPDATE_FILENAME(NextFilename) \
-  if (!Filename || !Filename[0]) Filename = NextFilename
-  UPDATE_FILENAME(getenv("LLVM_PROFILE_FILE"));
-  UPDATE_FILENAME("default.profdata");
-#undef UPDATE_FILENAME
-
-  // Check the filename for "%p", which indicates a pid-substitution.
-  for (I = 0; Filename[I]; ++I)
-    if (Filename[I] == '%' && Filename[++I] == 'p')
-      if (!NumPids++) {
-        PidLength = snprintf(PidChars, MAX_PID_SIZE, "%d", getpid());
-        if (PidLength <= 0)
-          return -1;
-      }
-  if (NumPids) {
-    // Allocate enough space for the substituted filename.
-    AllocatedFilename = (char*)malloc(I + NumPids*(PidLength - 2) + 1);
-    if (!AllocatedFilename)
-      return -1;
-
-    // Construct the new filename.
-    for (I = 0, J = 0; Filename[I]; ++I)
-      if (Filename[I] == '%') {
-        if (Filename[++I] == 'p') {
-          memcpy(AllocatedFilename + J, PidChars, PidLength);
-          J += PidLength;
-        }
-        // Drop any unknown substitutions.
-      } else
-        AllocatedFilename[J++] = Filename[I];
-    AllocatedFilename[J] = 0;
-
-    // Actually use the computed name.
-    Filename = AllocatedFilename;
-  }
-
-  // Write the file.
-  RetVal = __llvm_profile_write_file_with_name(Filename);
-
-  // Free the filename.
-  if (AllocatedFilename)
-    free(AllocatedFilename);
-
-  return RetVal;
-}
-
-static void writeFileWithoutReturn(void) {
-  __llvm_profile_write_file();
-}
-void __llvm_profile_register_write_file_atexit(void) {
-  static int HasBeenRegistered = 0;
-
-  if (!HasBeenRegistered) {
-    HasBeenRegistered = 1;
-    atexit(writeFileWithoutReturn);
-  }
-}

Removed: compiler-rt/trunk/lib/profile/InstrProfilingExtras.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingExtras.h?rev=204496&view=auto
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingExtras.h (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingExtras.h (removed)
@@ -1,31 +0,0 @@
-/*===- InstrProfilingExtras.h - Support library for PGO instrumentation ---===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source
-|* License. See LICENSE.TXT for details.
-|*
-\*===----------------------------------------------------------------------===*/
-
-/*!
- * \brief Write instrumentation data to the current file.
- *
- * Writes to the file with the last name given to \a __llvm_profile_set_filename(),
- * or if it hasn't been called, the \c LLVM_PROFILE_FILE environment variable,
- * or if that's not set, \c "default.profdata".
- */
-int __llvm_profile_write_file(void);
-
-/*!
- * \brief Set the filename for writing instrumentation data.
- *
- * Sets the filename to be used for subsequent calls to
- * \a __llvm_profile_write_file().
- *
- * \c Name is not copied, so it must remain valid.  Passing NULL resets the
- * filename logic to the default behaviour.
- */
-void __llvm_profile_set_filename(const char *Name);
-
-/*! \brief Register to write instrumentation data to file at exit. */
-int __llvm_profile_register_write_file_atexit(void);

Copied: compiler-rt/trunk/lib/profile/InstrProfilingFile.c (from r204495, compiler-rt/trunk/lib/profile/InstrProfilingExtras.c)
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingFile.c?p2=compiler-rt/trunk/lib/profile/InstrProfilingFile.c&p1=compiler-rt/trunk/lib/profile/InstrProfilingExtras.c&r1=204495&r2=204497&rev=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingExtras.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingFile.c Fri Mar 21 13:29:15 2014
@@ -1,4 +1,4 @@
-/*===- InstrProfilingExtras.c - Support library for PGO instrumentation ---===*\
+/*===- InstrProfilingFile.c - Write instrumentation to a file -------------===*\
 |*
 |*                     The LLVM Compiler Infrastructure
 |*
@@ -8,9 +8,11 @@
 \*===----------------------------------------------------------------------===*/
 
 #include "InstrProfiling.h"
+#include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
-static int __llvm_profile_write_file_with_name(const char *OutputName) {
+static int writeFileWithName(const char *OutputName) {
   int RetVal;
   FILE *OutputFile;
   if (!OutputName || !OutputName[0])
@@ -19,9 +21,6 @@ static int __llvm_profile_write_file_wit
   if (!OutputFile)
     return -1;
 
-  /* TODO: mmap file to buffer of size __llvm_profile_get_size_for_buffer() and
-   * pass the buffer in, instead of the file.
-   */
   RetVal = __llvm_profile_write_buffer(OutputFile);
 
   fclose(OutputFile);
@@ -44,7 +43,7 @@ int __llvm_profile_write_file(void) {
   int PidLength = 0;
   int NumPids = 0;
 
-  // Get the filename.
+  /* Get the filename. */
   const char *Filename = CurrentFilename;
 #define UPDATE_FILENAME(NextFilename) \
   if (!Filename || !Filename[0]) Filename = NextFilename
@@ -52,7 +51,7 @@ int __llvm_profile_write_file(void) {
   UPDATE_FILENAME("default.profdata");
 #undef UPDATE_FILENAME
 
-  // Check the filename for "%p", which indicates a pid-substitution.
+  /* Check the filename for "%p", which indicates a pid-substitution. */
   for (I = 0; Filename[I]; ++I)
     if (Filename[I] == '%' && Filename[++I] == 'p')
       if (!NumPids++) {
@@ -61,31 +60,31 @@ int __llvm_profile_write_file(void) {
           return -1;
       }
   if (NumPids) {
-    // Allocate enough space for the substituted filename.
+    /* Allocate enough space for the substituted filename. */
     AllocatedFilename = (char*)malloc(I + NumPids*(PidLength - 2) + 1);
     if (!AllocatedFilename)
       return -1;
 
-    // Construct the new filename.
+    /* Construct the new filename. */
     for (I = 0, J = 0; Filename[I]; ++I)
       if (Filename[I] == '%') {
         if (Filename[++I] == 'p') {
           memcpy(AllocatedFilename + J, PidChars, PidLength);
           J += PidLength;
         }
-        // Drop any unknown substitutions.
+        /* Drop any unknown substitutions. */
       } else
         AllocatedFilename[J++] = Filename[I];
     AllocatedFilename[J] = 0;
 
-    // Actually use the computed name.
+    /* Actually use the computed name. */
     Filename = AllocatedFilename;
   }
 
-  // Write the file.
-  RetVal = __llvm_profile_write_file_with_name(Filename);
+  /* Write the file. */
+  RetVal = writeFileWithName(Filename);
 
-  // Free the filename.
+  /* Free the filename. */
   if (AllocatedFilename)
     free(AllocatedFilename);
 
@@ -95,11 +94,13 @@ int __llvm_profile_write_file(void) {
 static void writeFileWithoutReturn(void) {
   __llvm_profile_write_file();
 }
-void __llvm_profile_register_write_file_atexit(void) {
+
+int __llvm_profile_register_write_file_atexit(void) {
   static int HasBeenRegistered = 0;
 
-  if (!HasBeenRegistered) {
-    HasBeenRegistered = 1;
-    atexit(writeFileWithoutReturn);
-  }
+  if (HasBeenRegistered)
+    return 0;
+
+  HasBeenRegistered = 1;
+  return atexit(writeFileWithoutReturn);
 }

Modified: compiler-rt/trunk/lib/profile/InstrProfilingPlatformDarwin.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingPlatformDarwin.c?rev=204497&r1=204496&r2=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingPlatformDarwin.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingPlatformDarwin.c Fri Mar 21 13:29:15 2014
@@ -1,4 +1,4 @@
-/*===- InstrProfilingDarwin.c - Profile data on Darwin --------------------===*\
+/*===- InstrProfilingPlatformDarwin.c - Profile data on Darwin ------------===*\
 |*
 |*                     The LLVM Compiler Infrastructure
 |*

Modified: compiler-rt/trunk/lib/profile/InstrProfilingPlatformOther.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingPlatformOther.c?rev=204497&r1=204496&r2=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingPlatformOther.c (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingPlatformOther.c Fri Mar 21 13:29:15 2014
@@ -1,4 +1,4 @@
-/*===- InstrProfilingDefault.c - Profile data default platfrom ------------===*\
+/*===- InstrProfilingPlatformOther.c - Profile data default platfrom ------===*\
 |*
 |*                     The LLVM Compiler Infrastructure
 |*
@@ -8,6 +8,7 @@
 \*===----------------------------------------------------------------------===*/
 
 #include "InstrProfiling.h"
+#include <stdlib.h>
 
 static const __llvm_profile_data *DataFirst = NULL;
 static const __llvm_profile_data *DataLast = NULL;

Modified: compiler-rt/trunk/lib/profile/InstrProfilingRuntime.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/InstrProfilingRuntime.cc?rev=204497&r1=204496&r2=204497&view=diff
==============================================================================
--- compiler-rt/trunk/lib/profile/InstrProfilingRuntime.cc (original)
+++ compiler-rt/trunk/lib/profile/InstrProfilingRuntime.cc Fri Mar 21 13:29:15 2014
@@ -9,7 +9,7 @@
 
 extern "C" {
 
-#include "InstrProfilingExtras.h"
+#include "InstrProfiling.h"
 
 extern int __llvm_profile_runtime;
 int __llvm_profile_runtime;

Modified: compiler-rt/trunk/make/platform/clang_darwin.mk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/clang_darwin.mk?rev=204497&r1=204496&r2=204497&view=diff
==============================================================================
--- compiler-rt/trunk/make/platform/clang_darwin.mk (original)
+++ compiler-rt/trunk/make/platform/clang_darwin.mk Fri Mar 21 13:29:15 2014
@@ -222,9 +222,9 @@ FUNCTIONS.ios.x86_64h := $(FUNCTIONS.ios
 
 FUNCTIONS.osx	:= mulosi4 mulodi4 muloti4
 
-FUNCTIONS.profile_osx := GCDAProfiling InstrProfiling \
-                         InstrProfilingPlatformDarwin InstrProfilingRuntime \
-                         InstrProfilingExtras
+FUNCTIONS.profile_osx := GCDAProfiling InstrProfiling InstrProfilingBuffer \
+                         InstrProfilingFile InstrProfilingPlatformDarwin \
+                         InstrProfilingRuntime
 FUNCTIONS.profile_ios := $(FUNCTIONS.profile_osx)
 
 FUNCTIONS.asan_osx_dynamic := $(AsanFunctions) $(InterceptionFunctions) \





More information about the llvm-commits mailing list