MCPcopy Create free account
hub / github.com/chipsalliance/Surelog / compile

Method compile

src/DesignCompile/CompileModule.cpp:88–240  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86}
87
88bool CompileModule::compile() {
89 const FileContent* const fC = m_module->m_fileContents[0];
90 NodeId nodeId = m_module->m_nodeIds[0];
91 Location loc(fC->getFileId(nodeId), fC->Line(nodeId), fC->Column(nodeId),
92 m_symbols->registerSymbol(m_module->getName()));
93 VObjectType moduleType = fC->Type(nodeId);
94 ErrorDefinition::ErrorType errType = ErrorDefinition::COMP_COMPILE_MODULE;
95 switch (moduleType) {
96 case VObjectType::paLoop_generate_construct:
97 case VObjectType::paConditional_generate_construct:
98 case VObjectType::paGenerate_begin_end_block:
99 case VObjectType::paGenerate_item:
100 case VObjectType::paGenerate_module_conditional_statement:
101 case VObjectType::paGenerate_module_loop_statement:
102 case VObjectType::paGenerate_module_block:
103 case VObjectType::paGenerate_module_item:
104 case VObjectType::paGenerate_module_named_block:
105 case VObjectType::paGenerate_interface_conditional_statement:
106 case VObjectType::paGenerate_interface_loop_statement:
107 case VObjectType::paGenerate_interface_block:
108 case VObjectType::paGenerate_interface_item:
109 case VObjectType::paGenerate_interface_named_block:
110 case VObjectType::paGenerate_region:
111 errType = ErrorDefinition::COMP_COMPILE_GENERATE_BLOCK;
112 break;
113 case VObjectType::paInterface_declaration:
114 errType = ErrorDefinition::COMP_COMPILE_INTERFACE;
115 break;
116 case VObjectType::paUdp_declaration:
117 errType = ErrorDefinition::COMP_COMPILE_UDP;
118 break;
119 case VObjectType::paChecker_declaration:
120 errType = ErrorDefinition::COMP_COMPILE_CHECKER;
121 break;
122 default:
123 break;
124 }
125
126 m_module->setDesignElement(fC->getDesignElement(m_module->getName()));
127
128 CommandLineParser* clp =
129 m_compileDesign->getCompiler()->getCommandLineParser();
130 auto& blackboxModules = clp->getBlackBoxModules();
131 bool skipModule = false;
132 std::string libName;
133 if (!m_module->getFileContents().empty())
134 libName = m_module->getFileContents()[0]->getLibrary()->getName();
135 const std::string_view modName = m_module->getName();
136 if (blackboxModules.find(modName) != blackboxModules.end()) {
137 errType = ErrorDefinition::COMP_SKIPPING_BLACKBOX_MODULE;
138 skipModule = true;
139 }
140 auto& blackboxInstances = clp->getBlackBoxInstances();
141 std::string instanceName;
142 if (m_instance) {
143 if (ModuleInstance* inst =
144 valuedcomponenti_cast<ModuleInstance*>(m_instance)) {
145 instanceName = inst->getFullPathName();

Callers 1

operator()Method · 0.45

Calls 15

setDesignElementMethod · 0.80
getFullPathNameMethod · 0.80
getLogListenerMethod · 0.80
registerCmdLineMethod · 0.80
printMessageMethod · 0.80
muteStdoutMethod · 0.80
ObjectMethod · 0.80
compileAttributesMethod · 0.80
getFileIdMethod · 0.45
LineMethod · 0.45
ColumnMethod · 0.45
registerSymbolMethod · 0.45

Tested by

no test coverage detected