Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 317744e7505fc48e66c5e620b7b1854d7ad2db94..98a2d3374b6949e3ab79d881f00a6d59b4871334 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -293,12 +293,11 @@ GarbageCollector Heap::SelectGarbageCollector(AllocationSpace space) { |
// TODO(1238405): Combine the infrastructure for --heap-stats and |
// --log-gc to avoid the complicated preprocessor and flag testing. |
-#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) |
void Heap::ReportStatisticsBeforeGC() { |
// Heap::ReportHeapStatistics will also log NewSpace statistics when |
- // compiled with ENABLE_LOGGING_AND_PROFILING and --log-gc is set. The |
- // following logic is used to avoid double logging. |
-#if defined(DEBUG) && defined(ENABLE_LOGGING_AND_PROFILING) |
+ // compiled --log-gc is set. The following logic is used to avoid |
+ // double logging. |
+#ifdef DEBUG |
if (FLAG_heap_stats || FLAG_log_gc) new_space_.CollectStatistics(); |
if (FLAG_heap_stats) { |
ReportHeapStatistics("Before GC"); |
@@ -306,23 +305,16 @@ void Heap::ReportStatisticsBeforeGC() { |
new_space_.ReportStatistics(); |
} |
if (FLAG_heap_stats || FLAG_log_gc) new_space_.ClearHistograms(); |
-#elif defined(DEBUG) |
- if (FLAG_heap_stats) { |
- new_space_.CollectStatistics(); |
- ReportHeapStatistics("Before GC"); |
- new_space_.ClearHistograms(); |
- } |
-#elif defined(ENABLE_LOGGING_AND_PROFILING) |
+#else |
if (FLAG_log_gc) { |
new_space_.CollectStatistics(); |
new_space_.ReportStatistics(); |
new_space_.ClearHistograms(); |
} |
-#endif |
+#endif // DEBUG |
} |
-#if defined(ENABLE_LOGGING_AND_PROFILING) |
void Heap::PrintShortHeapStatistics() { |
if (!FLAG_trace_gc_verbose) return; |
PrintF("Memory allocator, used: %8" V8_PTR_PREFIX "d" |
@@ -368,7 +360,6 @@ void Heap::PrintShortHeapStatistics() { |
lo_space_->Size(), |
lo_space_->Available()); |
} |
-#endif |
// TODO(1238405): Combine the infrastructure for --heap-stats and |
@@ -376,20 +367,17 @@ void Heap::PrintShortHeapStatistics() { |
void Heap::ReportStatisticsAfterGC() { |
// Similar to the before GC, we use some complicated logic to ensure that |
// NewSpace statistics are logged exactly once when --log-gc is turned on. |
-#if defined(DEBUG) && defined(ENABLE_LOGGING_AND_PROFILING) |
+#if defined(DEBUG) |
if (FLAG_heap_stats) { |
new_space_.CollectStatistics(); |
ReportHeapStatistics("After GC"); |
} else if (FLAG_log_gc) { |
new_space_.ReportStatistics(); |
} |
-#elif defined(DEBUG) |
- if (FLAG_heap_stats) ReportHeapStatistics("After GC"); |
-#elif defined(ENABLE_LOGGING_AND_PROFILING) |
+#else |
if (FLAG_log_gc) new_space_.ReportStatistics(); |
-#endif |
+#endif // DEBUG |
} |
-#endif // defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) |
void Heap::GarbageCollectionPrologue() { |
@@ -406,11 +394,11 @@ void Heap::GarbageCollectionPrologue() { |
} |
if (FLAG_gc_verbose) Print(); |
-#endif |
+#endif // DEBUG |
-#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) |
+#if defined(DEBUG) |
ReportStatisticsBeforeGC(); |
-#endif |
+#endif // DEBUG |
LiveObjectList::GCPrologue(); |
} |
@@ -447,12 +435,10 @@ void Heap::GarbageCollectionEpilogue() { |
symbol_table()->Capacity()); |
isolate_->counters()->number_of_symbols()->Set( |
symbol_table()->NumberOfElements()); |
-#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) |
+#if defined(DEBUG) |
ReportStatisticsAfterGC(); |
-#endif |
-#ifdef ENABLE_DEBUGGER_SUPPORT |
+#endif // DEBUG |
isolate_->debug()->AfterGarbageCollection(); |
-#endif |
} |
@@ -1335,15 +1321,12 @@ class ScavengingVisitor : public StaticVisitorBase { |
enum ObjectContents { DATA_OBJECT, POINTER_OBJECT }; |
enum SizeRestriction { SMALL, UNKNOWN_SIZE }; |
-#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) |
static void RecordCopiedObject(Heap* heap, HeapObject* obj) { |
bool should_record = false; |
#ifdef DEBUG |
should_record = FLAG_heap_stats; |
#endif |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
should_record = should_record || FLAG_log_gc; |
-#endif |
if (should_record) { |
if (heap->new_space()->Contains(obj)) { |
heap->new_space()->RecordAllocation(obj); |
@@ -1352,7 +1335,6 @@ class ScavengingVisitor : public StaticVisitorBase { |
} |
} |
} |
-#endif // defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) |
// Helper function used by CopyObject to copy a source object to an |
// allocated target object and update the forwarding pointer in the source |
@@ -1368,12 +1350,9 @@ class ScavengingVisitor : public StaticVisitorBase { |
source->set_map_word(MapWord::FromForwardingAddress(target)); |
if (logging_and_profiling_mode == LOGGING_AND_PROFILING_ENABLED) { |
-#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING) |
// Update NewSpace stats if necessary. |
RecordCopiedObject(heap, target); |
-#endif |
HEAP_PROFILE(heap, ObjectMoveEvent(source->address(), target->address())); |
-#if defined(ENABLE_LOGGING_AND_PROFILING) |
Isolate* isolate = heap->isolate(); |
if (isolate->logger()->is_logging() || |
CpuProfiler::is_profiling(isolate)) { |
@@ -1382,7 +1361,6 @@ class ScavengingVisitor : public StaticVisitorBase { |
source->address(), target->address())); |
} |
} |
-#endif |
} |
return target; |
@@ -1558,7 +1536,6 @@ static void InitializeScavengingVisitorsTables() { |
void Heap::SwitchScavengingVisitorsTableIfProfilingWasEnabled() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (scavenging_visitors_table_mode_ == LOGGING_AND_PROFILING_ENABLED) { |
// Table was already updated by some isolate. |
return; |
@@ -1584,7 +1561,6 @@ void Heap::SwitchScavengingVisitorsTableIfProfilingWasEnabled() { |
Release_Store(&scavenging_visitors_table_mode_, |
LOGGING_AND_PROFILING_ENABLED); |
} |
-#endif |
} |
@@ -5908,9 +5884,7 @@ GCTracer::~GCTracer() { |
PrintF("\n"); |
} |
-#if defined(ENABLE_LOGGING_AND_PROFILING) |
heap_->PrintShortHeapStatistics(); |
-#endif |
} |