[Bug c++/80032] [6/7 Regression] C++ excessive stack usage (no stack reuse)
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 13 15:31:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80032
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-03-13
Target Milestone|--- |6.4
Summary|C++ excessive stack usage |[6/7 Regression] C++
|(no stack reuse) |excessive stack usage (no
| |stack reuse)
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
test::db::ManagedObjectConst::ManagedObjectConst (&D.2393, _1);
test::db::FieldInfo::FieldInfo (&D.2394, &D.2393, 11, 0);
D.2393 (and other temporaries from other uses) live throughout the whole
function (no clobbers). With GCC 5 we have
_64 = test::db::ManagedObjectConst::getFieldDefault (_59, 11, 0);
test::db::ManagedObjectConst::ManagedObjectConst (&D.2187, _59);
test::db::FieldInfo::FieldInfo (&D.2188, &D.2187, 11, 0);
_68 = test::db::compare (&D.2188, _64);
D.2188 ={v} {CLOBBER};
D.2187 ={v} {CLOBBER};
if (_68 != 0)
goto <bb 5>;
so they have clobbers.
For trunk ehcleanup1 removes them.
More information about the Gcc-bugs
mailing list