[llvm-dev] Is there a way to convert between SchedMachineModel and Itineraries?

Rail Shafigulin via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 9 10:49:31 PST 2015


On Mon, Nov 9, 2015 at 10:31 AM, Hal Finkel <hfinkel at anl.gov> wrote:

> ----- Original Message -----
> > From: "Rail Shafigulin via llvm-dev" <llvm-dev at lists.llvm.org>
> > To: "llvm-dev" <llvm-dev at lists.llvm.org>
> > Sent: Monday, November 9, 2015 10:09:07 AM
> > Subject: Re: [llvm-dev] Is there a way to convert between
> SchedMachineModel   and Itineraries?
> >
> >
> > Anybody? Does anyone at all know how to do it?
>
> There is no direct conversion. Although they are similar models, they are
> different. The strength of Itineraries lies in modeling pipelines with
> complex hazards (especially those that are not fully pipelined, or have
> other similar ordering constraints). SchedMachineModel can't do that.
> Unless you need to represent those kinds of constraints, SchedMachineModel
> is preferred. We'd like to move toward using SchedMachineModel for most
> things.
>
>  -Hal
>

Thanks for the reply Hal. I thought my thread was dead.

I was recommended to use SchedMachineModel for my VLIW, which is what I've
done (it took me a month to learn tblgen and write the scheduling model and
one more month do get my head around LLVM. My experience with compilers is
limited to a class I took in college a year ago). The scheduling part seems
to be working (at least this is what my limited testing shows). However
current DFAPacketizer is based on itineraries (DFAPacketizer.cpp, lines
66-73). I was hoping there is a way to convert between these two
representations so that I wouldn't have to rewrite the packetizer.
Unfortunately my experience with compilers is very limited and I still have
a lot to learn.

Right now I have two options. In both of the cases there are significant
drawbacks.
1. Rewrite the scheduling model using itineraries. Unfortunately there is
very little help available on this topic, I even asked on the IRC channel
and nobody seems to know how it is done, since everyone is moving towards
the SchedMachineModel.
2. Write a new packetizer which will use the SchedMachineModel, however, as
I said before, I have a very limited experience with compilers and this
looks like some major work. I'm not afraid of it, it is just there is not
much information and help available.

I would greatly appreciate any help on this

Rail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151109/25eef072/attachment.html>


More information about the llvm-dev mailing list