[locop] Extract NodeSummaryBuilder (#6150)
author박종현/On-Device Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Fri, 2 Aug 2019 08:08:34 +0000 (17:08 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 2 Aug 2019 08:08:34 +0000 (17:08 +0900)
This commit introduces a new header file dedicated to
NodeSummaryBuilder and NodeSummaryBuilderFactory classes.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
compiler/locop/include/locop/FormattedGraph.h
compiler/locop/include/locop/NodeSummaryBuilder.h [new file with mode: 0644]
compiler/locop/src/NodeSummaryBuilder.cpp [new file with mode: 0644]

index c0f5b5e..3de2936 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "locop/SymbolTable.h"
 #include "locop/NodeSummary.h"
+#include "locop/NodeSummaryBuilder.h"
 
 #include <loco.h>
 
@@ -31,23 +32,6 @@ namespace locop
 {
 
 /**
- * @brief Build a summary from loco Node
- */
-struct NodeSummaryBuilder
-{
-  virtual ~NodeSummaryBuilder() = default;
-
-  virtual bool build(const loco::Node *, NodeSummary &) const = 0;
-};
-
-struct NodeSummaryBuilderFactory
-{
-  virtual ~NodeSummaryBuilderFactory() = default;
-
-  virtual std::unique_ptr<NodeSummaryBuilder> create(const SymbolTable *) const = 0;
-};
-
-/**
  * @brief Built-in Node Summary Builder for Canonical Dialect
  */
 class CanonicalNodeSummaryBuilder final : public NodeSummaryBuilder
diff --git a/compiler/locop/include/locop/NodeSummaryBuilder.h b/compiler/locop/include/locop/NodeSummaryBuilder.h
new file mode 100644 (file)
index 0000000..b84bc71
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCOP_NODE_SUMMARY_BUILDER_H__
+#define __LOCOP_NODE_SUMMARY_BUILDER_H__
+
+#include "locop/SymbolTable.h"
+#include "locop/NodeSummary.h"
+
+#include <loco.h>
+
+namespace locop
+{
+
+/**
+ * @brief Build a summary from loco Node
+ */
+struct NodeSummaryBuilder
+{
+  virtual ~NodeSummaryBuilder() = default;
+
+  virtual bool build(const loco::Node *, NodeSummary &) const = 0;
+};
+
+struct NodeSummaryBuilderFactory
+{
+  virtual ~NodeSummaryBuilderFactory() = default;
+
+  virtual std::unique_ptr<NodeSummaryBuilder> create(const SymbolTable *) const = 0;
+};
+
+} // namespace locop
+
+#endif // __LOCOP_NODE_SUMMARY_BUILDER_H__
diff --git a/compiler/locop/src/NodeSummaryBuilder.cpp b/compiler/locop/src/NodeSummaryBuilder.cpp
new file mode 100644 (file)
index 0000000..6610bf7
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "locop/NodeSummaryBuilder.h"
+
+// This file checks whether "NodeSummaryBuilder.h" is self-complete or not.
+//
+// WARNING!! Do NOT remove this file.