[Bug optimization/14736] New: [tree-ssa] code quality regression
dann at godzilla dot ics dot uci dot edu
gcc-bugzilla@gcc.gnu.org
Thu Mar 25 23:20:00 GMT 2004
There seems to be a code quality regression in tree-ssa between
2004/03/08 and 2004/03/20
The .vars dump for generate-3.4.ii from PR8361 generated by
gcc version 3.5-tree-ssa 20040308 (merged 20040305)
has 100840 lines
the one generated by
gcc version 3.5-tree-ssa 20040320 (merged 20040307)
has 85811 lines.
Granted the number of lines in .vars is not the best measure of code
quality, but given the 15% size difference something seems wrong.
Looking at the diff between the 2 I saw the following type of
difference in a few places:
<L5>:;
- if (__result == __first) goto <L6>; else goto <L7>;
+ se = (struct ELEMENT &)__first;
+ if (__result == (struct ELEMENT * const)se) goto <L6>; else goto <L7>;
Given that this code is from std::vector::iterator it appears in quite a
few places. Look for example at:
typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp,
_Alloc>::erase(__gnu_cxx::__normal_iterator<_Tp*, std::vector<_Tp, _Alloc> >,
__gnu_cxx::__normal_iterator<_Tp*, std::vector<_Tp, _Alloc> >) [with _Tp =
STACK<int>::ELEMENT, _Alloc = std::allocator<STACK<int>::ELEMENT>] (this,
__first, __last)
Another oddity is code like:
<L38>:;
__first = __first;
__result = __result;
--
Summary: [tree-ssa] code quality regression
Product: gcc
Version: tree-ssa
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dann at godzilla dot ics dot uci dot edu
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14736
More information about the Gcc-bugs
mailing list