beremiz

a66062a205ae
Build by default with optimization level -O2 for GCC

before -O0 was used by default, that caused pretty bad performance.

Amd64, i6700k, 4200MHz, GNU/Linux (non-RT kernel), gcc 7.2.0

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 11 | 9.5 |
-O3 | 3.9 | 5.2 |
-O2 | 4 | 4.8 |
-Os | 4.1 | 3.5 |
-Ofast | 3.9 | 5.2 |
-------------------------------------

ARM, BBB Cortex-A8, 600Mhz, GNU/Linux, gcc 4.6.3

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 273 | 226 |
-O3 | 141.8 | 106.2 |
-O2 | 142 | 107 |
-Os | 152.5 | 112.2 |
-Ofast | 141.7 | 106.2 |
-------------------------------------

For embedded systems with size constaints (like Cortex-Mx, AVR and so
on) I usually use -Os. It gets pretty good results. For
GNU/Linux-based systems -O2 is usually a good choice, as you see the
test results.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.plcopen.org/xml/tc6.xsd"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xsi:schemaLocation="http://www.plcopen.org/xml/tc6.xsd">
<fileHeader companyName="beremiz"
productName="beremiz"
productVersion="1"
creationDateTime="2008-06-24T18:44:00"/>
<contentHeader name="canopen_slave"
modificationDateTime="2008-10-24T09:32:01"
language="en-US">
<coordinateInfo>
<fbd>
<scaling x="0" y="0"/>
</fbd>
<ld>
<scaling x="0" y="0"/>
</ld>
<sfc>
<scaling x="0" y="0"/>
</sfc>
</coordinateInfo>
</contentHeader>
<types>
<dataTypes/>
<pous>
<pou name="test_main" pouType="program">
<interface>
<localVars>
<variable name="outvar" address="%QW0.0.8192.0">
<type>
<INT/>
</type>
</variable>
<variable name="invar" address="%IW0.0.8193.0">
<type>
<INT/>
</type>
</variable>
</localVars>
</interface>
<body>
<FBD>
<outVariable localId="1" height="29" width="80">
<position x="362" y="140"/>
<connectionPointIn>
<relPosition x="0" y="14"/>
<connection refLocalId="4" formalParameter="OUT">
<position x="362" y="154"/>
<position x="330" y="154"/>
<position x="330" y="153"/>
<position x="299" y="153"/>
</connection>
</connectionPointIn>
<expression>outvar</expression>
</outVariable>
<inVariable localId="2" height="29" width="20">
<position x="100" y="115"/>
<connectionPointOut>
<relPosition x="20" y="14"/>
</connectionPointOut>
<expression>1</expression>
</inVariable>
<block localId="4" width="75" height="60" typeName="ADD">
<position x="224" y="123"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="2">
<position x="224" y="153"/>
<position x="183" y="153"/>
<position x="183" y="129"/>
<position x="120" y="129"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="50"/>
<connection refLocalId="5">
<position x="224" y="173"/>
<position x="187" y="173"/>
<position x="187" y="187"/>
<position x="150" y="187"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="75" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="5" height="29" width="60">
<position x="90" y="173"/>
<connectionPointOut>
<relPosition x="60" y="14"/>
</connectionPointOut>
<expression>invar</expression>
</inVariable>
</FBD>
</body>
</pou>
</pous>
</types>
<instances>
<configurations>
<configuration name="conf">
<resource name="res">
<task name="tache" interval="00:00:00.010000" priority="0">
<pouInstance name="toto" type="test_main"/>
</task>
</resource>
</configuration>
</configurations>
</instances>
</project>