diff options
| author | jackkoenig | 2016-04-29 09:42:23 -0700 |
|---|---|---|
| committer | jackkoenig | 2016-04-29 09:42:23 -0700 |
| commit | 8e99f164a77a2aba4eb736e4b1f2819eb0e67947 (patch) | |
| tree | 54a6585f489d287d23a49b9ac16d09d3fce85eab /src/main | |
| parent | 54184c2a08aea4c8682d2fe899718c369e00a240 (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.scala | 15 |
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 { |
