[enco] Introduce enco_dump_all_bags (#2293)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Thu, 15 Nov 2018 01:50:32 +0000 (10:50 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Thu, 15 Nov 2018 01:50:32 +0000 (10:50 +0900)
This commit introduces enco_dump_all_bags which shows the details of all
the allocated bags in a given module.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/enco/core/src/Support/Debugging.cpp
contrib/enco/core/src/Support/Debugging.h

index d457247..332c840 100644 (file)
@@ -64,6 +64,40 @@ SectionBuilder section(const std::string &tag) { return SectionBuilder{tag}; }
 }
 
 /**
+ * SECTION: Bag
+ */
+namespace
+{
+
+pp::LinearDocument describe(const coco::Bag *bag)
+{
+  pp::LinearDocument doc;
+
+  doc.append("addr: ", bag);
+  doc.append("size: ", bag->size());
+  // TODO Print Read
+  // TODO Print Update
+  // TODO Print Dep
+  return doc;
+}
+
+} // namespace
+
+DEBUGGING_API_P(enco_dump_all_bags, coco::Module, m)
+{
+  for (uint32_t n = 0; n < m->entity()->bag()->size(); ++n)
+  {
+    auto bag = m->entity()->bag()->at(n);
+    assert(bag != nullptr);
+
+    auto set = [bag](pp::LinearDocument &doc) { doc.append(describe(bag)); };
+    auto desc = section("bag").build(set);
+
+    std::cout << desc << std::endl;
+  }
+}
+
+/**
  * SECTION: Op
  */
 namespace
index ea51429..d1c23d5 100644 (file)
@@ -34,6 +34,14 @@ static_assert(sizeof(long) == sizeof(void *), "sizeof(long) == sizeof(pointer)")
   void NAME(long);
 
 /**
+ * Print the details of all the allocated coco::Bag in coco::Module
+ *
+ * (gdb) call enco_dump_all_bags(bag)
+ * (gdb) call enco_dump_all_bags(0x...)
+ */
+DEBUGGING_API_P(enco_dump_all_bags, coco::Module);
+
+/**
  * Print the details of coco::Op
  *
  * (gdb) call enco_dump_op(op)