defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef GCC_INSN_FLAGS_H.
authorSteve Ellcey <sje@cup.hp.com>
Mon, 1 Nov 2010 20:38:40 +0000 (20:38 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Mon, 1 Nov 2010 20:38:40 +0000 (20:38 +0000)
2010-11-01  Steve Ellcey  <sje@cup.hp.com>

* defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
GCC_INSN_FLAGS_H.
* libgcov.c (__gcov_indirect_call_profiler): Set
VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.

From-SVN: r166145

gcc/ChangeLog
gcc/defaults.h
gcc/libgcov.c

index fad03f6996dc2ba7cfd0bed7ce5dcd2068d41277..ce569a2321c9d05f44640329defa42793a562716 100644 (file)
@@ -1,3 +1,11 @@
+2010-11-01  Steve Ellcey  <sje@cup.hp.com>
+
+       * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
+       GCC_INSN_FLAGS_H.
+       * libgcov.c (__gcov_indirect_call_profiler): Set
+       VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
+       defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
+
 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
 
        PR tree-optimization/46259
index 88585726c7c8b4019b2011642e1cdc6dfda90f1d..1736013fb66093e1233b68fe3460f64f5bbdf16a 100644 (file)
@@ -813,16 +813,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define TARGET_DEFAULT_PACK_STRUCT 0
 #endif
 
-/* By default, the C++ compiler will use function addresses in the
-   vtable entries.  Setting this nonzero tells the compiler to use
-   function descriptors instead.  The value of this macro says how
-   many words wide the descriptor is (normally 2).  It is assumed
-   that the address of a function descriptor may be treated as a
-   pointer to a function.  */
-#ifndef TARGET_VTABLE_USES_DESCRIPTORS
-#define TARGET_VTABLE_USES_DESCRIPTORS 0
-#endif
-
 /* By default, the vtable entries are void pointers, the so the alignment
    is the same as pointer alignment.  The value of this macro specifies
    the alignment of the vtable entry in bits.  It should be defined only
@@ -1381,6 +1371,16 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define STACK_CHECK_MAX_VAR_SIZE (STACK_CHECK_MAX_FRAME_SIZE / 100)
 #endif
 
+/* By default, the C++ compiler will use function addresses in the
+   vtable entries.  Setting this nonzero tells the compiler to use
+   function descriptors instead.  The value of this macro says how
+   many words wide the descriptor is (normally 2).  It is assumed
+   that the address of a function descriptor may be treated as a
+   pointer to a function.  */
+#ifndef TARGET_VTABLE_USES_DESCRIPTORS
+#define TARGET_VTABLE_USES_DESCRIPTORS 0
+#endif
+
 #ifndef SWITCHABLE_TARGET
 #define SWITCHABLE_TARGET 0
 #endif
index 07f27db1363e9b35145d6a10972228916620803a..e89e7e6cbac79f7acca7fedf33f852b12cd4629c 100644 (file)
@@ -798,6 +798,24 @@ __gcov_one_value_profiler (gcov_type *counters, gcov_type value)
 #endif
 
 #ifdef L_gcov_indirect_call_profiler
+
+/* By default, the C++ compiler will use function addresses in the
+   vtable entries.  Setting TARGET_VTABLE_USES_DESCRIPTORS to nonzero
+   tells the compiler to use function descriptors instead.  The value
+   of this macro says how many words wide the descriptor is (normally 2),
+   but it may be dependent on target flags.  Since we do not have access
+   to the target flags here we just check to see if it is set and use
+   that to set VTABLE_USES_DESCRIPTORS to 0 or 1.
+
+   It is assumed that the address of a function descriptor may be treated
+   as a pointer to a function.  */
+
+#ifdef TARGET_VTABLE_USES_DESCRIPTORS
+#define VTABLE_USES_DESCRIPTORS 1
+#else
+#define VTABLE_USES_DESCRIPTORS 0
+#endif
+
 /* Tries to determine the most common value among its inputs. */
 void
 __gcov_indirect_call_profiler (gcov_type* counter, gcov_type value,
@@ -807,7 +825,7 @@ __gcov_indirect_call_profiler (gcov_type* counter, gcov_type value,
      function may have multiple descriptors and we need to dereference
      the descriptors to see if they point to the same function.  */
   if (cur_func == callee_func
-      || (TARGET_VTABLE_USES_DESCRIPTORS && callee_func
+      || (VTABLE_USES_DESCRIPTORS && callee_func
          && *(void **) cur_func == *(void **) callee_func))
     __gcov_one_value_profiler_body (counter, value);
 }