Re: gcc scheduling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



raja.saleru@xxxxxxxxxxxxxx writes:

> In gcc version 3.4.6:
> In the function sched_analyze_2(), if the GET_CODE (rtx) is UNSPEC_VOLATILE,
> reg_pending_barrier is set to TRUE_BARRIER.
>
> I would like to know if TRUE_BARRIER is set, what would happen further ?
> How does instruction movement/re-ordering happens ? In which function this
> is done ?
>
> Please help as much information can about if GET_CODE (rtx) is
> UNSPEC_VOLATILE,then reg_pending_barrier is set to TRUE_BARRIER.

For these kinds of detailed code questions, it is definitely better to
ask about current mainline, not about an old version like 3.4.6.

At a high level, when reg_pending_barrier is set to TRUE_BARRIER, the
scheduler makes all instructions after the barrier depend on all current
instructions before the barrier.  The effect is that all the
instructions before the barrier must be scheduled before any of the
instructions after the barrier.

The actual instruction movement happens in other parts of the scheduler,
notably the code in haifa-sched.c.  See the long comment at the start of
that file.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux