aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorjackkoenig2016-04-29 09:42:23 -0700
committerjackkoenig2016-04-29 09:42:23 -0700
commit8e99f164a77a2aba4eb736e4b1f2819eb0e67947 (patch)
tree54a6585f489d287d23a49b9ac16d09d3fce85eab /src/main
parent54184c2a08aea4c8682d2fe899718c369e00a240 (diff)
Add time function to Utils
time uses LazyLogging, also delete import PrimOps._ (cyclic reference)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/firrtl/Utils.scala15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/Utils.scala b/src/main/scala/firrtl/Utils.scala
index 16a56893..30dff01c 100644
--- a/src/main/scala/firrtl/Utils.scala
+++ b/src/main/scala/firrtl/Utils.scala
@@ -38,7 +38,7 @@ package firrtl
import scala.collection.mutable.StringBuilder
import java.io.PrintWriter
-import PrimOps._
+import com.typesafe.scalalogging.LazyLogging
import WrappedExpression._
import firrtl.WrappedType._
import firrtl.Mappers._
@@ -46,7 +46,18 @@ import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.LinkedHashMap
//import scala.reflect.runtime.universe._
-object Utils {
+object Utils extends LazyLogging {
+ private[firrtl] def time[R](name: String)(block: => R): R = {
+ logger.info(s"Starting $name")
+ val t0 = System.nanoTime()
+ val result = block
+ val t1 = System.nanoTime()
+ logger.info(s"Finished $name")
+ val timeMillis = (t1 - t0) / 1000000.0
+ logger.info(f"$name took $timeMillis%.1f ms\n")
+ result
+ }
+
implicit class WithAs[T](x: T) {
import scala.reflect._
def as[O: ClassTag]: Option[O] = x match {