<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Compileroptimierung für Lokalität der Variablendefinition]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<p>folgendes Beispiel:</p>
<pre><code class="language-cpp">int blah()
{
  int a = Wert();
  int b = 0;

  if(Bedingung())
  {
    b = MacheEtwas();
    a += blubb;
  }
  return a;
}
</code></pre>
<p>Kann man davon ausgehen, dass ein moderner Compiler (ICC, VC++, usw.) die Variablendefinition int b = 0; zwecks Optimierung in den Anweisungsblock verschiebt?</p>
<p>Danke für Eure Hinweise!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190944/compileroptimierung-für-lokalität-der-variablendefinition</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 20:53:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190944.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Aug 2007 14:22:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 14:22:53 GMT]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<p>folgendes Beispiel:</p>
<pre><code class="language-cpp">int blah()
{
  int a = Wert();
  int b = 0;

  if(Bedingung())
  {
    b = MacheEtwas();
    a += blubb;
  }
  return a;
}
</code></pre>
<p>Kann man davon ausgehen, dass ein moderner Compiler (ICC, VC++, usw.) die Variablendefinition int b = 0; zwecks Optimierung in den Anweisungsblock verschiebt?</p>
<p>Danke für Eure Hinweise!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353886</guid><dc:creator><![CDATA[Feierabend]]></dc:creator><pubDate>Tue, 28 Aug 2007 14:22:53 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 14:25:55 GMT]]></title><description><![CDATA[<p>Die meisten Compiler sind so gut, dass du dir erst keine Gedanken darüber zu machen brauchst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353889</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 28 Aug 2007 14:25:55 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 14:38:52 GMT]]></title><description><![CDATA[<p>Du kannst sogar davon ausgehen, dass die Initialisierung komplett wegfällt, da der Initialwert nirgends benutzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353895</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 28 Aug 2007 14:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 15:56:55 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Die meisten Compiler sind so gut, dass du dir erst keine Gedanken darüber zu machen brauchst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Das ist wahr. Ich hab das Beispiel nachgebaut und mit dem VC++ übersetzt (Release): Die Funktion wurde in Inline-Code verwandelt, b wurde komplett heraus-optimiert und für a ist ein Register verwendet worden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353934</guid><dc:creator><![CDATA[2am]]></dc:creator><pubDate>Tue, 28 Aug 2007 15:56:55 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 16:11:47 GMT]]></title><description><![CDATA[<p>~*kleinlaut*: Wie macht man sowas eigentlich? :)~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353939</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 28 Aug 2007 16:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 16:26:25 GMT]]></title><description><![CDATA[<p>@ Badestrand: was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353947</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Tue, 28 Aug 2007 16:26:25 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 16:35:44 GMT]]></title><description><![CDATA[<p>Checker&amp;Murckser schrieb:</p>
<blockquote>
<p>@ Badestrand: was?</p>
</blockquote>
<p>Wie du das hier herausgefunden hast:<br />
&quot;Die Funktion wurde in Inline-Code verwandelt, b wurde komplett heraus-optimiert und für a ist ein Register verwendet worden.&quot;<br />
Oder einfach mit irgendeinem Disassembler ge-disassemble-t?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353953</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 28 Aug 2007 16:35:44 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 16:46:00 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Checker&amp;Murckser schrieb:</p>
<blockquote>
<p>@ Badestrand: was?</p>
</blockquote>
<p>Wie du das hier herausgefunden hast:<br />
&quot;Die Funktion wurde in Inline-Code verwandelt, b wurde komplett heraus-optimiert und für a ist ein Register verwendet worden.&quot;<br />
Oder einfach mit irgendeinem Disassembler ge-disassemble-t?</p>
</blockquote>
<p>ich hab das nicht rausgefunden^^ - würde mich aber auch interessieren -</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353960</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Tue, 28 Aug 2007 16:46:00 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 16:52:27 GMT]]></title><description><![CDATA[<p>Der g++ und auch Visual Studio bieten eine Option mit der sich ein Assembler-Listing ausgeben lässt. In Visual Studio 2005, geht das über folgende Einstellung in den Projekteingenschaften:<br />
Konfigurationseigenschaften-&gt;C/C++-&gt;Ausgabedateien-&gt;Assemblyausgabe</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353964</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Tue, 28 Aug 2007 16:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 17:12:23 GMT]]></title><description><![CDATA[<p>Oh man, krasse Sache! Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353977</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 28 Aug 2007 17:12:23 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 17:17:13 GMT]]></title><description><![CDATA[<p>*mich Badestrand anschließ* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353980</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Tue, 28 Aug 2007 17:17:13 GMT</pubDate></item><item><title><![CDATA[Reply to Compileroptimierung für Lokalität der Variablendefinition on Tue, 28 Aug 2007 21:51:07 GMT]]></title><description><![CDATA[<p>Du kannst auch einen Breakpoint setzen, und per Alt-8 das Assembly-Listing zur Laufzeit anzeigen lassen. Allerdings ist der Code im Release-Modus stark optimiert, mit anderen Worten: Bleibt das Programm beim Break nicht stehen, ist wahrscheinlich die Stelle mit deinem Breakpoint wegoptimiert worden.</p>
<p>^ funktioniert in VC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354206</guid><dc:creator><![CDATA[2am]]></dc:creator><pubDate>Tue, 28 Aug 2007 21:51:07 GMT</pubDate></item></channel></rss>