This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: AIX regression due to DFA scheduler merge


> 
> > Also remember that they're scheduled as a block only in the pre-allocation
> > scheduling pass.  Post allocation the libcall markers are gone and they
> > can move about freely.
> 
>   I'd agree if we have 2nd insn scheduler with integrated register
> renaming.  But I still believe we lose opportunity to get a better code
> scheduling all LIBCALL as the group.  There is less freedom of moving on
> the 2nd insn scheduling.  I think that David's patch gave" a few
> improvements" mainly because CLOBBER is not counted as a real insns (so
> the scheduler better simulates the processor state).

I believe we have two kinds of libcalls - one "true" libcalls designed
to allow libcalls to be removed and they are not needed during
scheduling and I think we can simply kill the notes after flow2 pass.

Second kind is the REG_NOCONFLICT block that is even more sick than the
first, but in this case I would guess the scheduling them as unit is OK,
as noconflict blocks tends to be short.

Also teaching flow2 to understand liveness of partial registers would
solve this by killing the NOCONFLICT breakage completely.

Honza
> 
> Vlad


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]