Using histograms for timing statistics.

  Histogram class and test cases added.
  Modified make file to add test cases and class file.
  Added a guard to avoid race condition in Cumulative logger that
  was possible race between Addlogger and Dump() functions.

Change-Id: I060a0d65648c7120963856624e7008c0aa681eb7
diff --git a/src/gc/mark_sweep.h b/src/gc/mark_sweep.h
index 0d43bee..859f309 100644
--- a/src/gc/mark_sweep.h
+++ b/src/gc/mark_sweep.h
@@ -20,11 +20,11 @@
 #include "atomic_integer.h"
 #include "base/macros.h"
 #include "base/mutex.h"
+#include "base/timing_logger.h"
 #include "garbage_collector.h"
 #include "gc_type.h"
 #include "offsets.h"
 #include "root_visitor.h"
-#include "timing_logger.h"
 #include "UniquePtr.h"
 
 namespace art {
@@ -233,9 +233,18 @@
       SHARED_LOCKS_REQUIRED(Locks::mutator_lock_)
       EXCLUSIVE_LOCKS_REQUIRED(Locks::heap_bitmap_lock_);
 
-  Barrier& GetBarrier();
-  const TimingLogger& GetTimings() const;
-  const CumulativeLogger& GetCumulativeTimings() const;
+  Barrier& GetBarrier() {
+    return *gc_barrier_;
+  }
+
+  TimingLogger& GetTimings() {
+    return timings_;
+  }
+
+  CumulativeLogger& GetCumulativeTimings() {
+    return cumulative_timings_;
+  }
+
   void ResetCumulativeStatistics();
 
  protected: