Squashed 'third_party/eigen/' changes from 61d72f6..cf794d3


Change-Id: I9b814151b01f49af6337a8605d0c42a3a1ed4c72
git-subtree-dir: third_party/eigen
git-subtree-split: cf794d3b741a6278df169e58461f8529f43bce5d
diff --git a/bench/BenchTimer.h b/bench/BenchTimer.h
index 28e2bca..ea28496 100644
--- a/bench/BenchTimer.h
+++ b/bench/BenchTimer.h
@@ -22,12 +22,19 @@
 # endif
 # include <windows.h>
 #elif defined(__APPLE__)
-#include <CoreServices/CoreServices.h>
 #include <mach/mach_time.h>
 #else
 # include <unistd.h>
 #endif
 
+static void escape(void *p) {
+  asm volatile("" : : "g"(p) : "memory");
+}
+
+static void clobber() {
+  asm volatile("" : : : "memory");
+}
+
 #include <Eigen/Core>
 
 namespace Eigen
@@ -168,6 +175,7 @@
         CODE; \
       } \
       TIMER.stop(); \
+      clobber(); \
     } \
   }