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

           Summary: IRA spill with plenty of available registers
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: pthau...@gcc.gnu.org
                CC: vmaka...@gcc.gnu.org, berg...@gcc.gnu.org
              Host: powerpc64-linux
            Target: powerpc64-linux
             Build: powerpc64-linux


Vlad,
  Opening bz as you requested.  Background/detail can be found here:
http://gcc.gnu.org/ml/gcc/2011-05/msg00186.html.

Basically, following testcase compiled with gcc -S -m64 -O3 -mcpu=power7 causes
IRA to spill pseudo used for copy.

void foo(float *f1, float*f2) {
  *f1 = *f2;
}


**** Allocnos coloring:

  Loop 0 (parent -1, header bb0, depth 0)
    bbs: 2
    all: 0r120
    modified regnos: 120
    border:
    Pressure: NON_FLOAT_REGS=2
    Hard reg set forest:
      0:( 0 3-12 14-63 65 66 68-72 74 75 77-108)@0
      Spill a0(r120,l0)
Disposition:
    0:r120 l0   mem

Reply via email to