Boost C++ Libraries: Ticket #12411: Boost coroutines 1.61 do not preserve fpu registers with O2 optimizations in Visual Studio https://svn.boost.org/trac10/ticket/12411 <p> When compiling program with O2 optimization setting, coroutine function is not preserving the fpu registers. This does work correctly in 1.60, but not 1.61. I saw that this attribute was removed in 1.61. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12411 Trac 1.4.3 olli Thu, 25 Aug 2016 05:56:10 GMT <link>https://svn.boost.org/trac10/ticket/12411#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12411#comment:1</guid> <description> <p> could you provide code that demonstrates the problem, please </p> </description> <category>Ticket</category> </item> <item> <author>martin_haas@…</author> <pubDate>Fri, 26 Aug 2016 20:09:15 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/12411 https://svn.boost.org/trac10/ticket/12411 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">BoostCoroutineTest.cpp</span> </li> </ul> <p> Source code to show coroutine issue </p> Ticket martin_haas@… Fri, 26 Aug 2016 20:16:16 GMT <link>https://svn.boost.org/trac10/ticket/12411#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12411#comment:2</guid> <description> <p> Please see the attached file. When compiled with Visual Studio 2015, the Debug versions work correctly. The release version works correctly if optimization is disabled. If optimization is specified as O2 or Ox, it appears the fpu registers are being cleared. In the working versions, the final job completes at time 54. In the nonworking versions, the final job appears to take zero time, so it completes at time 44. </p> <p> if the "hold" function is changed to return an int instead of a double, the optimized programs work correctly. </p> <p> The program works correctly with boost 1.60, but not 1.61. </p> <p> Thanks for all your hard work. The performance of the coroutines are MUCH better than my current solution. Hope this is an easy fix. </p> <p> Thanks </p> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Sun, 28 Aug 2016 08:35:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/12411#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12411#comment:3</guid> <description> <p> unfortunately, boost.coroutine is deprecated and will not be fixed or developed further. You coud use boost.context, boost.coroutine2 (no symmetric coroutines) or boot.fiber instead. </p> <p> For the problem you mentioned - could you provide a simple example using boost.context that demonstrates problems with the FPU env, please? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Sun, 27 Nov 2016 08:45:15 GMT</pubDate> <title>component changed https://svn.boost.org/trac10/ticket/12411#comment:4 https://svn.boost.org/trac10/ticket/12411#comment:4 <ul> <li><strong>component</strong> <span class="trac-field-old">coroutine</span> → <span class="trac-field-new">context</span> </li> </ul> Ticket olli Sun, 27 Nov 2016 08:45:57 GMT severity changed https://svn.boost.org/trac10/ticket/12411#comment:5 https://svn.boost.org/trac10/ticket/12411#comment:5 <ul> <li><strong>severity</strong> <span class="trac-field-old">Showstopper</span> → <span class="trac-field-new">Problem</span> </li> </ul> Ticket olli Mon, 05 Dec 2016 07:40:28 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/12411#comment:6 https://svn.boost.org/trac10/ticket/12411#comment:6 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> Ticket martin_haas@… Mon, 05 Dec 2016 16:50:33 GMT <link>https://svn.boost.org/trac10/ticket/12411#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12411#comment:7</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/12411#comment:6" title="Comment 6">olli</a>: Thanks Oliver. I verified that the change worked for me. Will this change in Boost Context be rolled into the Boost 1.63 release? </p> <p> Thanks </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Mon, 05 Dec 2016 20:02:01 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/12411#comment:8 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12411#comment:8</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/12411#comment:7" title="Comment 7">martin_haas@…</a>: </p> <blockquote class="citation"> <p> Will this change in Boost Context be rolled into the Boost 1.63 release? </p> </blockquote> <p> yes </p> </description> <category>Ticket</category> </item> </channel> </rss>