please consider .einline2 and .optimized trees for the boost::thread::start_thread() function from attached testcase.
the 4.3 optimize boost::shared_ptr<>::operator= pretty nice. the 4.5 avoid operator= inlining. moreover, the 4.5 code is bigger (152bytes vs 106bytes) and contains more atomic operations due to temporary shared_ptr swapping and assignments. the testcase is big and horrible but the 'pretty 4.3 inlining' dissapears during testcase reducing :/ -- Summary: missed inline optimization for boost::shared_ptr::operator = Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC build triplet: x86_64-gnu-linux GCC host triplet: x86_64-gnu-linux GCC target triplet: x86_64-gnu-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43816