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

Method compile

src/DesignCompile/CompilePackage.cpp:74–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74bool CompilePackage::compile(Reduce reduce) {
75 if (!m_package) return false;
76 UHDM::Serializer& s = m_compileDesign->getSerializer();
77 UHDM::package* pack = any_cast<UHDM::package*>(m_package->getUhdmInstance());
78 const FileContent* fC = m_package->m_fileContents[0];
79 NodeId packId = m_package->m_nodeIds[0];
80 m_helper.setElabMode(reduce == Reduce::Yes);
81 if (pack == nullptr) {
82 pack = s.MakePackage();
83 pack->VpiName(m_package->getName());
84 m_package->setUhdmInstance(pack);
85 }
86 fC->populateCoreMembers(packId, packId, pack);
87 m_package->m_exprBuilder.seterrorReporting(m_errors, m_symbols);
88 m_package->m_exprBuilder.setDesign(
89 m_compileDesign->getCompiler()->getDesign());
90 if (reduce == Reduce::Yes) {
91 Location loc(fC->getFileId(packId), fC->Line(packId), fC->Column(packId),
92 m_symbols->getId(m_package->getName()));
93 Error err(ErrorDefinition::COMP_COMPILE_PACKAGE, loc);
94
95 ErrorContainer* errors =
96 new ErrorContainer(m_symbols, m_errors->getLogListener());
97 errors->registerCmdLine(
98 m_compileDesign->getCompiler()->getCommandLineParser());
99 errors->addError(err);
100 errors->printMessage(
101 err,
102 m_compileDesign->getCompiler()->getCommandLineParser()->muteStdout());
103 delete errors;
104 }
105 collectObjects_(CollectType::FUNCTION, reduce);
106 collectObjects_(CollectType::DEFINITION, reduce);
107 m_helper.evalScheduledExprs(m_package, m_compileDesign);
108 collectObjects_(CollectType::OTHER, reduce);
109
110 do {
111 VObject current = fC->Object(packId);
112 packId = current.m_child;
113 } while (packId && (fC->Type(packId) != VObjectType::paAttribute_instance));
114 if (packId) {
115 if (UHDM::VectorOfattribute* attributes = m_helper.compileAttributes(
116 m_package, fC, packId, m_compileDesign, nullptr)) {
117 m_package->Attributes(attributes);
118 }
119 }
120
121 return true;
122}
123
124bool CompilePackage::collectObjects_(CollectType collectType, Reduce reduce) {
125 std::vector<VObjectType> stopPoints = {

Callers 1

operator()Method · 0.45

Calls 15

getUhdmInstanceMethod · 0.80
setElabModeMethod · 0.80
setUhdmInstanceMethod · 0.80
populateCoreMembersMethod · 0.80
getDesignMethod · 0.80
getLogListenerMethod · 0.80
registerCmdLineMethod · 0.80
printMessageMethod · 0.80
muteStdoutMethod · 0.80
evalScheduledExprsMethod · 0.80
ObjectMethod · 0.80
compileAttributesMethod · 0.80

Tested by

no test coverage detected