Skip to content

Commit ccb775e

Browse files
committed
- attempts to get realtimeTick and realtimeTock for RT_CLOCK_BACKEND on the same level
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@16942 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent e46db64 commit ccb775e

File tree

3 files changed

+38
-37
lines changed

3 files changed

+38
-37
lines changed

Compiler/BackEnd/OpenTURNS.mo

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ algorithm
110110

111111
//print("strippedDae :");
112112
//BackendDump.dump(strippedDae);
113-
(_,libs,fileDir,_,_,_) := SimCodeMain.generateModelCode(strippedDae,inProgram,inDAElist,inPath,cname_str,SOME(simSettings),Absyn.FUNCTIONARGS({},{}));
113+
_ := System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND); // Is this necessary?
114+
(_,libs,fileDir,_,_) := SimCodeMain.generateModelCode(strippedDae,inProgram,inDAElist,inPath,cname_str,SOME(simSettings),Absyn.FUNCTIONARGS({},{}));
114115

115116
//print("..compiling, fileNamePrefix = "+&fileNamePrefix+&"\n");
116117
CevalScript.compileModel(fileNamePrefix , libs, fileDir, "");

Compiler/BackEnd/SimCodeMain.mo

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ algorithm
104104
end createSimulationSettings;
105105

106106

107-
public function generateModelCodeFMU
108-
"Generates code for a model by creating a SimCode structure and calling the
109-
template-based code generator on it."
107+
protected function generateModelCodeFMU "
108+
Generates code for a model by creating a SimCode structure and calling the
109+
template-based code generator on it."
110110
input BackendDAE.BackendDAE inBackendDAE;
111111
input Absyn.Program p;
112112
input DAE.DAElist dae;
@@ -116,26 +116,23 @@ public function generateModelCodeFMU
116116
output BackendDAE.BackendDAE outIndexedBackendDAE;
117117
output list<String> libs;
118118
output String fileDir;
119-
output Real timeBackend;
120119
output Real timeSimCode;
121120
output Real timeTemplates;
122121
protected
123122
list<String> includes,includeDirs;
124123
list<SimCode.Function> functions;
125-
// DAE.DAElist dae2;
126124
String filename, funcfilename;
127125
SimCode.SimCode simCode;
128126
list<SimCode.RecordDeclaration> recordDecls;
129127
BackendDAE.BackendDAE indexed_dlow,indexed_dlow_1;
130128
Absyn.ComponentRef a_cref;
131129
tuple<Integer,HashTableExpToIndex.HashTable,list<DAE.Exp>> literals;
132130
algorithm
133-
timeBackend := System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND);
131+
System.realtimeTick(GlobalScript.RT_CLOCK_SIMCODE);
134132
a_cref := Absyn.pathToCref(className);
135133
fileDir := CevalScript.getFileDir(a_cref, p);
136-
System.realtimeTick(GlobalScript.RT_CLOCK_SIMCODE);
137134
(libs, includes, includeDirs, recordDecls, functions, outIndexedBackendDAE, _, literals) :=
138-
SimCodeUtil.createFunctions(p, dae, inBackendDAE, className);
135+
SimCodeUtil.createFunctions(p, dae, inBackendDAE, className);
139136
(simCode,_) := SimCodeUtil.createSimCode(outIndexedBackendDAE,
140137
className, filenamePrefix, fileDir, functions, includes, includeDirs, libs, simSettingsOpt, recordDecls, literals,Absyn.FUNCTIONARGS({},{}));
141138
timeSimCode := System.realtimeTock(GlobalScript.RT_CLOCK_SIMCODE);
@@ -147,9 +144,9 @@ algorithm
147144
end generateModelCodeFMU;
148145

149146

150-
public function generateModelCodeXML
151-
"Generates code for a model by creating a SimCode structure and calling the
152-
template-based code generator on it."
147+
protected function generateModelCodeXML "
148+
Generates code for a model by creating a SimCode structure and calling the
149+
template-based code generator on it."
153150
input BackendDAE.BackendDAE inBackendDAE;
154151
input Absyn.Program p;
155152
input DAE.DAElist dae;
@@ -159,26 +156,23 @@ public function generateModelCodeXML
159156
output BackendDAE.BackendDAE outIndexedBackendDAE;
160157
output list<String> libs;
161158
output String fileDir;
162-
output Real timeBackend;
163159
output Real timeSimCode;
164160
output Real timeTemplates;
165161
protected
166162
list<String> includes,includeDirs;
167163
list<SimCode.Function> functions;
168-
// DAE.DAElist dae2;
169164
String filename, funcfilename;
170165
SimCode.SimCode simCode;
171166
list<SimCode.RecordDeclaration> recordDecls;
172167
BackendDAE.BackendDAE indexed_dlow,indexed_dlow_1;
173168
Absyn.ComponentRef a_cref;
174169
tuple<Integer,HashTableExpToIndex.HashTable,list<DAE.Exp>> literals;
175170
algorithm
176-
timeBackend := System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND);
171+
System.realtimeTick(GlobalScript.RT_CLOCK_SIMCODE);
177172
a_cref := Absyn.pathToCref(className);
178173
fileDir := CevalScript.getFileDir(a_cref, p);
179-
System.realtimeTick(GlobalScript.RT_CLOCK_SIMCODE);
180174
(libs, includes, includeDirs, recordDecls, functions, outIndexedBackendDAE, _, literals) :=
181-
SimCodeUtil.createFunctions(p, dae, inBackendDAE, className);
175+
SimCodeUtil.createFunctions(p, dae, inBackendDAE, className);
182176
(simCode,_) := SimCodeUtil.createSimCode(outIndexedBackendDAE,
183177
className, filenamePrefix, fileDir, functions, includes, includeDirs, libs, simSettingsOpt, recordDecls, literals,Absyn.FUNCTIONARGS({},{}));
184178
timeSimCode := System.realtimeTock(GlobalScript.RT_CLOCK_SIMCODE);
@@ -230,14 +224,18 @@ algorithm
230224
//(cache,Values.STRING(filenameprefix),SOME(_)) = Ceval.ceval(cache,env, fileprefix, true, SOME(st),NONE(), msg);
231225
(cache,env,dae,st) = CevalScript.runFrontEnd(cache,env,className,st,false);
232226
timeFrontend = System.realtimeTock(GlobalScript.RT_CLOCK_FRONTEND);
227+
233228
System.realtimeTick(GlobalScript.RT_CLOCK_BACKEND);
234229
funcs = Env.getFunctionTree(cache);
235230
dae = DAEUtil.transformationsBeforeBackend(cache,env,dae);
236231
dlow = BackendDAECreate.lower(dae,cache,env);
237232
dlow_1 = BackendDAEUtil.getSolvedSystem(dlow,NONE(), NONE(), NONE(), NONE());
238233
Debug.fprintln(Flags.DYN_LOAD, "translateModel: Generating simulation code and functions.");
239-
(indexed_dlow_1,libs,file_dir,timeBackend,timeSimCode,timeTemplates) =
234+
timeBackend = System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND);
235+
236+
(indexed_dlow_1,libs,file_dir,timeSimCode,timeTemplates) =
240237
generateModelCodeFMU(dlow_1, p, dae, className, filenameprefix, inSimSettingsOpt);
238+
241239
resultValues =
242240
{("timeTemplates",Values.REAL(timeTemplates)),
243241
("timeSimCode", Values.REAL(timeSimCode)),
@@ -305,7 +303,9 @@ algorithm
305303
dlow = BackendDAECreate.lower(dae,cache,env);
306304
dlow_1 = BackendDAEUtil.getSolvedSystem(dlow,NONE(), NONE(), NONE(), NONE());
307305
Debug.fprintln(Flags.DYN_LOAD, "translateModel: Generating simulation code and functions.");
308-
(indexed_dlow_1,libs,file_dir,timeBackend,timeSimCode,timeTemplates) =
306+
timeBackend = System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND);
307+
308+
(indexed_dlow_1,libs,file_dir,timeSimCode,timeTemplates) =
309309
generateModelCodeXML(dlow_1, p, dae, className, filenameprefix, inSimSettingsOpt);
310310
resultValues =
311311
{("timeTemplates",Values.REAL(timeTemplates)),
@@ -329,10 +329,9 @@ end translateModelXML;
329329

330330

331331

332-
public function generateModelCode
333-
"Generates code for a model by creating a SimCode structure and calling the
334-
template-based code generator on it."
335-
332+
public function generateModelCode "
333+
Generates code for a model by creating a SimCode structure and calling the
334+
template-based code generator on it."
336335
input BackendDAE.BackendDAE inBackendDAE;
337336
input Absyn.Program p;
338337
input DAE.DAElist dae;
@@ -343,14 +342,11 @@ public function generateModelCode
343342
output BackendDAE.BackendDAE outIndexedBackendDAE;
344343
output list<String> libs;
345344
output String fileDir;
346-
output Real timeBackend;
347345
output Real timeSimCode;
348346
output Real timeTemplates;
349347
protected
350-
351348
list<String> includes,includeDirs;
352349
list<SimCode.Function> functions;
353-
// DAE.DAElist dae2;
354350
String filename, funcfilename;
355351
SimCode.SimCode simCode;
356352
list<SimCode.RecordDeclaration> recordDecls;
@@ -360,15 +356,13 @@ protected
360356
tuple<Integer,HashTableExpToIndex.HashTable,list<DAE.Exp>> literals;
361357
list<SimCode.JacobianMatrix> LinearMatrices;
362358
algorithm
363-
timeBackend := System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND);
359+
System.realtimeTick(GlobalScript.RT_CLOCK_SIMCODE);
364360
a_cref := Absyn.pathToCref(className);
365361
fileDir := CevalScript.getFileDir(a_cref, p);
366-
System.realtimeTick(GlobalScript.RT_CLOCK_SIMCODE);
367362
(libs, includes, includeDirs, recordDecls, functions, outIndexedBackendDAE, _, literals) :=
368-
SimCodeUtil.createFunctions(p, dae, inBackendDAE, className);
369-
simCode := createSimCode(outIndexedBackendDAE,
363+
SimCodeUtil.createFunctions(p, dae, inBackendDAE, className);
364+
simCode := createSimCode(outIndexedBackendDAE,
370365
className, filenamePrefix, fileDir, functions, includes, includeDirs, libs, simSettingsOpt, recordDecls, literals, args);
371-
372366
timeSimCode := System.realtimeTock(GlobalScript.RT_CLOCK_SIMCODE);
373367
Debug.execStat("SimCode",GlobalScript.RT_CLOCK_SIMCODE);
374368

@@ -548,12 +542,16 @@ algorithm
548542
System.realtimeTick(GlobalScript.RT_CLOCK_FRONTEND);
549543
(cache, env, dae, st) = CevalScript.runFrontEnd(cache, env, className, st, false);
550544
timeFrontend = System.realtimeTock(GlobalScript.RT_CLOCK_FRONTEND);
545+
551546
System.realtimeTick(GlobalScript.RT_CLOCK_BACKEND);
552547
dae = DAEUtil.transformationsBeforeBackend(cache, env, dae);
553548
dlow = BackendDAECreate.lower(dae, cache, env);
554549
dlow_1 = BackendDAEUtil.getSolvedSystem(dlow, NONE(), NONE(), NONE(), NONE());
555-
(indexed_dlow_1, libs, file_dir, timeBackend, timeSimCode, timeTemplates) =
556-
generateModelCode(dlow_1, p, dae, className, filenameprefix, inSimSettingsOpt, args);
550+
timeBackend = System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND);
551+
552+
(indexed_dlow_1, libs, file_dir, timeSimCode, timeTemplates) =
553+
generateModelCode(dlow_1, p, dae, className, filenameprefix, inSimSettingsOpt, args);
554+
557555
resultValues = {("timeTemplates", Values.REAL(timeTemplates)),
558556
("timeSimCode", Values.REAL(timeSimCode)),
559557
("timeBackend", Values.REAL(timeBackend)),

Compiler/Main/Main.mo

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -763,8 +763,8 @@ end optimizeDae;
763763
// end matchcontinue;
764764
// end modpar;
765765

766-
protected function simcodegen
767-
"Genereates simulation code using the SimCode module"
766+
protected function simcodegen "
767+
Genereates simulation code using the SimCode module"
768768
input BackendDAE.BackendDAE inBackendDAE5;
769769
input Absyn.Path inPath;
770770
input Absyn.Program inProgram3;
@@ -788,7 +788,8 @@ algorithm
788788
Print.clearBuf();
789789
cname_str = Absyn.pathString(classname);
790790
simSettings = SimCodeMain.createSimulationSettings(0.0, 1.0, 500, 1e-6,"dassl","","mat",".*",false,"");
791-
(_,_,_,_,_,_) = SimCodeMain.generateModelCode(dlow,ap,dae,classname,cname_str,SOME(simSettings),Absyn.FUNCTIONARGS({},{}));
791+
_ = System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND); // Is this necessary?
792+
(_,_,_,_,_) = SimCodeMain.generateModelCode(dlow,ap,dae,classname,cname_str,SOME(simSettings),Absyn.FUNCTIONARGS({},{}));
792793
Debug.execStat("Codegen Done",GlobalScript.RT_CLOCK_EXECSTAT_MAIN);
793794
then
794795
();
@@ -804,7 +805,8 @@ algorithm
804805
Print.clearBuf();
805806
cname_str = Absyn.pathString(classname);
806807
simSettings = SimCodeMain.createSimulationSettings(0.0, 1.0, 1, 1e-6,"dassl","","plt",".*",false,"");
807-
(_,_,_,_,_,_) = SimCodeMain.generateModelCode(dlow,ap,dae,classname,cname_str,SOME(simSettings),Absyn.FUNCTIONARGS({},{}));
808+
_ = System.realtimeTock(GlobalScript.RT_CLOCK_BACKEND); // Is this necessary?
809+
(_,_,_,_,_) = SimCodeMain.generateModelCode(dlow,ap,dae,classname,cname_str,SOME(simSettings),Absyn.FUNCTIONARGS({},{}));
808810
Debug.execStat("Codegen Done",GlobalScript.RT_CLOCK_EXECSTAT_MAIN);
809811
then
810812
();

0 commit comments

Comments
 (0)