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


David Edelsohn wrote:
> 
> >>>>> Vladimir Makarov writes:
> 
> Vlad> For LIBCALL1 function no_conflict_p still returns TRUE.  Actually I
> Vlad> don't know what solution to choose.  The both of them have advantages
> Vlad> and disadvantages:
> 
> Vlad> Fix in n_conflict_p is easier and permits insn scheduling of two
> Vlad> libcalls which, with my point of view, is more important than
> Vlad> opportunity in register allocation for processors needing good insn
> Vlad> scheduling.
> 
> Vlad> On the other hand, we have unclear rtx code (nested libcalls and no
> Vlad> dependencies in rtx).  Checking the nested calls probably is more
> Vlad> expensive.  The fix in the scheduler is better with this point of view.
> 
>         If I understand Jeff's earlier comment correctly, the local-alloc
> problem may help with the latent bugs uncovered in the proposed
> SCHED_GROUP fix.  The SCHED_GROUP patch is necessary for other reasons, so
> we may need *both* fixes.

  I've just read email thread about the SCHED_GROUP patch.  The idea is
clear and its implementation should prevent the bug occurring.  So I
don't think that  the local-alloc problem may help with the latent bugs
uncovered in the proposed SCHED_GROUP fix".

  Also I don't think SCHED_GROUP patch is good for all processors and
tests.  It remove probability to generate a better insn schedules. 
Although there are cases (when the register pressure is too high) when
better insn schedules result in worse code.  This is standard conflict
of separate insn scheduler and register allocator.  It can be solved by
some their integration not rejecting opportunities in one optimization. 
So I don't like the SCHED_GROUP patch (its libcall part).

  Although the idea not to move clobber too far is right, but it should
be solved not by making all LIBCALL as SCHED_GROUP.  At least it is
better to make only clobber and the 1st insn used the register as a
SCHED_GROUP.

Vlad


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