This is the mail archive of the
mailing list for the GCC project.
RE: Combined top-down and bottom-up instruction scheduler
- From: Evandro Menezes <e dot menezes at samsung dot com>
- To: 'Jeff Law' <law at redhat dot com>, 'Vladimir Makarov' <vmakarov at redhat dot com>, 'Aditya K' <hiraditya at msn dot com>, gcc at gcc dot gnu dot org
- Date: Tue, 08 Sep 2015 16:12:07 -0500
- Subject: RE: Combined top-down and bottom-up instruction scheduler
- Authentication-results: sourceware.org; auth=none
- References: <BLU179-W6188AF5C5B442B4282F2F0B6530 at phx dot gbl> <55EF2E2C dot 4000601 at redhat dot com> <55EF39A9 dot 5060002 at redhat dot com> <55EF4738 dot 7020906 at redhat dot com>
> > Yes, that is true for OOO execution processors which can rearrange
> > insns and execute them speculatively looking through several branches.
> > For such processors, software pipelining is more important as the
> > processors can look only through a few branches as software pipelining
> > could look through any number of branches. That is why Intel compiler
> > did not have any insn scheduler (but had software pipelining) until
> > Intel Atom introduction which was originally in-order processor.
> Correct. Latency scheduling just isn't that important for OOO and instead
> you look at scheduling to mitigate costs for large latency operations (ie,
> cache miss and transcendental functions). You might also attack
> issues like throughput at the retirement stage for example.
Our motivation stems from the fact that even modern, aggressively OOO
processors don't have orthogonal resources. Some insns depend on expensive
circuitry (area or power wise) that is added only once, making such insns
simply scalar, though most of other insns enjoy multiple resources capable
of executing them as superscalar. That's why we believe that a hybrid
approach might yield good results. We don't have data, for it possibly
requires implementing it first.
I'd also argue that looking at an OOO pipeline in a steady state is not the
only approach. It's also important to consider how quickly the pipeline can
be replenished or warmed up to reach a steady state.
Evandro Menezes Austin, TX