Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.

Commit eae52ab

Browse files
committed
Remove Cpp code generation for initialization of alias vars
This should hardly be needed anymore, because aliases share memory with the actual variables. The generation of function bodies was commented out (init7, ..., init10).
1 parent d783820 commit eae52ab

File tree

3 files changed

+6
-185
lines changed

3 files changed

+6
-185
lines changed

Compiler/Template/CodegenCpp.tpl

Lines changed: 5 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ template translateModel(SimCode simCode)
6060
let _ = match boolOr(Flags.isSet(Flags.HARDCODED_START_VALUES), Flags.isSet(Flags.GEN_DEBUG_SYMBOLS))
6161
case true then
6262
let()= textFile(simulationInitParameterCppFile(simCode, &extraFuncsInit, &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeParameter.cpp')
63-
let()= textFile(simulationInitAliasVarsCppFile(simCode, &extraFuncsInit, &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeAliasVars.cpp')
6463
let()= textFile(simulationInitAlgVarsCppFile(simCode , &extraFuncsInit , &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeAlgVars.cpp')
6564
""
6665
else
@@ -368,16 +367,13 @@ template getPreVarsCount(ModelInfo modelInfo)
368367
match modelInfo
369368
case MODELINFO(varInfo=VARINFO(__)) then
370369
let allVarCount = intAdd(stringInt(numRealvars(modelInfo)), intAdd(stringInt(numIntvars(modelInfo)), stringInt(numBoolvars(modelInfo))))
371-
//let allVarCount = intAdd(intAdd(intAdd(varInfo.numAlgAliasVars,varInfo.numAlgVars),varInfo.numDiscreteReal ), intAdd(intAdd(varInfo.numIntAliasVars,varInfo.numIntAlgVars), intAdd(varInfo.numBoolAlgVars,intAdd(varInfo.numBoolAliasVars, intMul(2,varInfo.numStateVars)))))
372370
<<
373371
<%allVarCount%>
374372
>>
375373
end match
376374
end getPreVarsCount;
377375

378376

379-
380-
381377
template simulationMixedSystemHeaderFile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace)
382378
"Generates code for header file for simulation target."
383379
::=
@@ -537,11 +533,14 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
537533
//This is necessary to prevent linker errors that occur with GCC 4.4 if a complex type is not used in the code and contains arrays
538534
<%dummyTypeElemCreation%>
539535
}
536+
540537
IMixedSystem* <%lastIdentOfPath(modelInfo.name)%>Initialize::clone()
541538
{
542539
return new <%lastIdentOfPath(modelInfo.name)%>Initialize(*this);
543540
}
541+
544542
<%getIntialStatus(simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace)%>
543+
545544
<%setIntialStatus(simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace)%>
546545

547546
<%init(simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation, complexStartExpressions)%>
@@ -574,52 +573,6 @@ match simCode
574573
>>
575574
end simulationInitParameterCppFile;
576575

577-
template simulationInitAliasVarsCppFile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
578-
"Generates code for main cpp file for simulation target."
579-
::=
580-
match simCode
581-
case SIMCODE(__) then
582-
match modelInfo
583-
case modelInfo as MODELINFO(vars=SIMVARS(__)) then
584-
let &varDecls8 = buffer "" /*BUFD*/
585-
let &varDecls9 = buffer "" /*BUFD*/
586-
let &varDecls10 = buffer "" /*BUFD*/
587-
let functionPrefix = if Flags.isSet(Flags.HARDCODED_START_VALUES) then "initialize" else "check"
588-
let init7 = ""//initAliasValstWithSplit("Real", '<%lastIdentOfPath(modelInfo.name)%>Initialize::initializeAliasVars', vars.aliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
589-
let init8 = ""//initAliasValst(varDecls8, "Int", vars.intAliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
590-
let init9 = ""//initValst(varDecls9, "Bool",vars.boolAliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
591-
let init10 = ""//initStringAliasValstWithSplit("String", '<%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>StringAliasVars', vars.stringAliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
592-
593-
<<
594-
<%init7%>
595-
/*string alias*/
596-
<%init10%>
597-
598-
void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>AliasVars()
599-
{
600-
}
601-
602-
void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>IntAliasVars()
603-
{
604-
<%varDecls8%>
605-
<%init8%>
606-
}
607-
608-
void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>BoolAliasVars()
609-
{
610-
<%varDecls9%>
611-
<%init9%>
612-
}
613-
614-
void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>StringAliasVars()
615-
{
616-
<%varDecls10%>
617-
<%init10%>
618-
}
619-
>>
620-
end simulationInitAliasVarsCppFile;
621-
622-
623576
template simulationInitAlgVarsCppFile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
624577
"Generates code for main cpp file for simulation target."
625578
::=
@@ -2790,7 +2743,6 @@ template calcHelperMainfile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDe
27902743
<<
27912744
#include "OMCpp<%fileNamePrefix%>InitializeParameter.cpp"
27922745
#include "OMCpp<%fileNamePrefix%>InitializeAlgVars.cpp"
2793-
#include "OMCpp<%fileNamePrefix%>InitializeAliasVars.cpp"
27942746
>>
27952747
%>
27962748
#include "OMCpp<%fileNamePrefix%>InitializeExtVars.cpp"
@@ -5891,11 +5843,11 @@ case SIMCODE(modelInfo = MODELINFO(__),makefileParams = MAKEFILE_PARAMS(__)) th
58915843
initializeAlgloopSolverVariables();
58925844
//init alg loop vars
58935845
<%initAlgloopvars%>
5894-
58955846
<%lastIdentOfPath(modelInfo.name)%>WriteOutput::initialize();
58965847
<%lastIdentOfPath(modelInfo.name)%>Jacobian::initialize();
58975848
<%lastIdentOfPath(modelInfo.name)%>Jacobian::initializeColoredJacobianA();
58985849
}
5850+
58995851
<%if(boolAnd(boolNot(Flags.isSet(Flags.HARDCODED_START_VALUES)), Flags.isSet(Flags.GEN_DEBUG_SYMBOLS))) then
59005852
<<
59015853
void <%lastIdentOfPath(modelInfo.name)%>Initialize::checkParameters()
@@ -5914,15 +5866,12 @@ case SIMCODE(modelInfo = MODELINFO(__),makefileParams = MAKEFILE_PARAMS(__)) th
59145866
checkIntAlgVars();
59155867
checkBoolAlgVars();
59165868
checkStringAlgVars();
5917-
checkAliasVars();
5918-
checkIntAliasVars();
5919-
checkBoolAliasVars();
5920-
checkStringAliasVars();
59215869
//checkStateVars();
59225870
//checkDerVars();
59235871
}
59245872
>>
59255873
%>
5874+
59265875
void <%lastIdentOfPath(modelInfo.name)%>Initialize::initializeFreeVariables()
59275876
{
59285877
#if !defined(FMU_BUILD)
@@ -5948,7 +5897,6 @@ case SIMCODE(modelInfo = MODELINFO(__),makefileParams = MAKEFILE_PARAMS(__)) th
59485897
initializeDiscreteAlgVars();
59495898
initializeIntAlgVars();
59505899
initializeBoolAlgVars();
5951-
initializeStringAliasVars();
59525900
initializeStateVars();
59535901
initializeDerVars();
59545902
>>
@@ -9558,60 +9506,6 @@ match c
95589506
end isOutput;
95599507

95609508

9561-
template initAliasValstWithSplit(Text type, Text funcNamePrefix, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9562-
Text extraFuncsNamespace, Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation) ::=
9563-
let &funcCalls = buffer "" /*BUFD*/
9564-
let funcs = List.partition(varsLst, 100) |> ls hasindex idx =>
9565-
let &varDecls = buffer "" /*BUFD*/
9566-
let &funcCalls += '<%funcNamePrefix%>_<%idx%>();'
9567-
let init = initAliasValst(varDecls, type, ls, simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, context, stateDerVectorName, useFlatArrayNotation)
9568-
<<
9569-
void <%funcNamePrefix%>_<%idx%>()
9570-
{
9571-
9572-
<%varDecls%>
9573-
<%init%>
9574-
}
9575-
>>
9576-
;separator="\n"
9577-
9578-
<<
9579-
<%funcs%>
9580-
9581-
void <%funcNamePrefix%>()
9582-
{
9583-
<%funcCalls%>
9584-
}
9585-
>>
9586-
end initAliasValstWithSplit;
9587-
9588-
9589-
template initStringAliasValstWithSplit(Text type, Text funcNamePrefix, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9590-
Text extraFuncsNamespace, Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation) ::=
9591-
let &funcCalls = buffer "" /*BUFD*/
9592-
let funcs = List.partition(varsLst, 100) |> ls hasindex idx =>
9593-
let &varDecls = buffer "" /*BUFD*/
9594-
let &funcCalls += '<%funcNamePrefix%>_<%idx%>();'
9595-
let init = initStringAliasValst(varDecls, type, ls, simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, context, stateDerVectorName, useFlatArrayNotation)
9596-
<<
9597-
void <%funcNamePrefix%>_<%idx%>()
9598-
{
9599-
<%varDecls%>
9600-
<%init%>
9601-
}
9602-
>>
9603-
;separator="\n"
9604-
9605-
<<
9606-
<%funcs%>
9607-
9608-
void <%funcNamePrefix%>()
9609-
{
9610-
<%funcCalls%>
9611-
}
9612-
>>
9613-
end initStringAliasValstWithSplit;
9614-
96159509
template initValstWithSplit(Text &varDecls, Text type, Text funcNamePrefix, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
96169510
Text extraFuncsNamespace, Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
96179511
::=
@@ -9686,75 +9580,6 @@ template initValst(Text &varDecls, Text type, list<SimVar> varsLst, SimCode simC
96869580
end initValst;
96879581

96889582

9689-
template initAliasValst(Text &varDecls, Text type, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl, Text extraFuncsNamespace,
9690-
Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation) ::=
9691-
varsLst |> sv as SIMVAR(__) =>
9692-
let &preExp = buffer ""
9693-
let &varDeclsCref = buffer ""
9694-
let initval = getAliasInitVal(sv.aliasvar, contextOther, &preExp, &varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9695-
<<
9696-
<%preExp%>
9697-
SystemDefaultImplementation::set<%type%>StartValue(<%getAliasCRef(sv.aliasvar, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, context, stateDerVectorName, useFlatArrayNotation)%>, <%initval%>);
9698-
>>
9699-
;separator="\n"
9700-
end initAliasValst;
9701-
9702-
9703-
template initStringAliasValst(Text &varDecls, Text type, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl, Text extraFuncsNamespace,
9704-
Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9705-
::=
9706-
varsLst |> sv as SIMVAR(__) =>
9707-
let &preExp = buffer ""
9708-
let initval = getAliasInitVal(sv.aliasvar, contextOther, &preExp, &varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9709-
'<%preExp%>
9710-
SystemDefaultImplementation::set<%type%>StartValue(<%cref1(sv.name,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace,context,varDecls, stateDerVectorName, useFlatArrayNotation)%>,<%initval%>);'
9711-
;separator="\n"
9712-
end initStringAliasValst;
9713-
9714-
9715-
template getAliasInitVal(AliasVariable aliasvar, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9716-
Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9717-
"Returns the alias Attribute of ScalarVariable."
9718-
::=
9719-
match aliasvar
9720-
case ALIAS(__)
9721-
case NEGATEDALIAS(__) then getAliasInitVal2(varName, context, preExp, varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9722-
else 'noAlias'
9723-
9724-
end getAliasInitVal;
9725-
9726-
template getAliasInitVal2(ComponentRef aliascref, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9727-
Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9728-
"Returns the alias Attribute of ScalarVariable."
9729-
::=
9730-
cref2simvar(aliascref, simCode ) |> var as SIMVAR(__)=>
9731-
match initialValue
9732-
case SOME(v) then
9733-
daeExp(v, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9734-
else
9735-
startValue(var.type_)
9736-
end getAliasInitVal2;
9737-
9738-
9739-
template getVarFromAliasName(ComponentRef varname, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9740-
Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9741-
"Returns the alias Attribute of ScalarVariable."
9742-
::=
9743-
cref2simvar(varname, simCode ) |> var as SIMVAR(__)=>
9744-
getVarFromAliasName2(var.aliasvar,varname,context, &preExp, &varDecls, simCode, extraFuncs, extraFuncsDecl, extraFuncsNamespace, stateDerVectorName,useFlatArrayNotation)
9745-
end getVarFromAliasName;
9746-
9747-
9748-
template getVarFromAliasName2(AliasVariable aliasvar,ComponentRef origvarname, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9749-
Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9750-
"Returns the alias Attribute of ScalarVariable."
9751-
::=
9752-
match aliasvar
9753-
case NOALIAS(__) then '<%cref1(origvarname, simCode ,&extraFuncs ,&extraFuncsDecl, extraFuncsNamespace, context, varDecls, stateDerVectorName, useFlatArrayNotation)%>'
9754-
case ALIAS(__)
9755-
case NEGATEDALIAS(__) then '<%cref1(varName, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, context, varDecls, stateDerVectorName, useFlatArrayNotation)%>'
9756-
end getVarFromAliasName2;
9757-
97589583
template startValue(DAE.Type ty)
97599584
::=
97609585
match ty

Compiler/Template/CodegenCppHpcom.tpl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ template translateModel(SimCode simCode)
7373
let _ = match boolOr(Flags.isSet(Flags.HARDCODED_START_VALUES), Flags.isSet(Flags.GEN_DEBUG_SYMBOLS))
7474
case true then
7575
let()= textFile(simulationInitParameterCppFile(simCode, &extraFuncsInit, &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeParameter.cpp')
76-
let()= textFile(simulationInitAliasVarsCppFile(simCode, &extraFuncsInit, &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeAliasVars.cpp')
7776
let()= textFile(simulationInitAlgVarsCppFile(simCode , &extraFuncsInit , &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeAlgVars.cpp')
7877
""
7978
else

Compiler/Template/CodegenFMUCpp.tpl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@
4545

4646
package CodegenFMUCpp
4747

48-
49-
5048
import interface SimCodeTV;
5149
import interface SimCodeBackendTV;
5250
import CodegenUtil.*;
@@ -75,7 +73,7 @@ case SIMCODE(modelInfo=modelInfo as MODELINFO(__)) then
7573
let numBoolVars = numBoolvars(modelInfo)
7674
let numStringVars = numStringvars(modelInfo)
7775

78-
let flag = Flags.set(Flags.HARDCODED_START_VALUES, true)
76+
let _ = Flags.set(Flags.HARDCODED_START_VALUES, true)
7977
let cpp = CodegenCpp.translateModel(simCode)
8078
let()= textFile(fmuWriteOutputHeaderFile(simCode , &extraFuncs , &extraFuncsDecl, ""),'OMCpp<%fileNamePrefix%>WriteOutput.h')
8179
let()= textFile(fmuModelHeaderFile(simCode, extraFuncs, extraFuncsDecl, "",guid, FMUVersion), 'OMCpp<%fileNamePrefix%>FMU.h')
@@ -126,7 +124,6 @@ template fmuCalcHelperMainfile(SimCode simCode)
126124
<<
127125
#include "OMCpp<%fileNamePrefix%>InitializeParameter.cpp"
128126
#include "OMCpp<%fileNamePrefix%>InitializeAlgVars.cpp"
129-
#include "OMCpp<%fileNamePrefix%>InitializeAliasVars.cpp"
130127
>>
131128
%>
132129
#include "OMCpp<%fileNamePrefix%>InitializeExtVars.cpp"

0 commit comments

Comments
 (0)