[Bug c++/17332] [3.3/3.4 Regression] Missed inline opportunity

giovannibajo at libero dot it gcc-bugzilla@gcc.gnu.org
Mon Sep 6 11:47:00 GMT 2004


------- Additional Comments From giovannibajo at libero dot it  2004-09-06 11:47 -------
Confirmed. It looks like that, for some reason, the function call is not 
inlined (not even at -O3) for the template case.

It used to work for GCC 3.2.2 so it is a regression on the 3.3 and 3.4 branch.

Notice that this is fixed already in mainline, by the new tree optimizers. The 
optimized tree dumps are the following, for both the template and non-template 
case:

<bb 0>:
  p1.6 = &c1[0];
  p2.7 = &c2[0];
  idx = 0;

<L0>:;
  p2 = p2.7 + 1B;
  p1 = p1.6 + 1B;
  *p2.7 = *p1.6;
  idx = idx + 1;
  if (idx <= 49999999) goto <L7>; else goto <L2>;

<L7>:;
  p1.6 = p1;
  p2.7 = p2;
  goto <bb 1> (<L0>);


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |giovannibajo at libero dot
                   |                            |it
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |missed-optimization
      Known to fail|                            |3.3.3 3.4.0
      Known to work|                            |3.5.0 3.2.2
   Last reconfirmed|0000-00-00 00:00:00         |2004-09-06 11:47:40
               date|                            |
            Summary|templated code optimization |[3.3/3.4 Regression] Missed
                   |fails on fixed boolean      |inline opportunity
                   |template parameter          |
   Target Milestone|---                         |3.4.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17332



More information about the Gcc-bugs mailing list