[llvm-dev] Need help with changes to 'ScheduleDAGInstrs' on the v3.8 branch

Martin J. O'Riordan via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 18 07:47:57 PST 2016


Thanks Matthias,

That did the trick :-)  It is our intention to rewrite the scheduler using
the prescribed interface.  I don't think that we can re-implement without
the itineraries though.  Are these being deprecated too?

All the best,

	MartinO

-----Original Message-----
From: Matthias Braun [mailto:matze at braunis.de] 
Sent: 18 January 2016 1:32
To: Martin.ORiordan at Movidius.com
Cc: LLVM Developers
Subject: Re: [llvm-dev] Need help with changes to 'ScheduleDAGInstrs' on the
v3.8 branch


> On Jan 17, 2016, at 3:27 AM, Martin J. O'Riordan via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> 
> I am stuck trying to adapt my out-of-target implementation to build on 
> SVN head (actually the v3.8 branch, rev #257626).  This is currently 
> working on the v3.7.1 sources, but the changes to 
> 'llvm::ScheduleDAGInstrs' have me stumped as to how to revise my 
> implementation to track the changes to this class.
> 
> Our 'SHAVEAsmScheduler' derives from 'ScheduleDAGInstrs' and uses both 
> the 'IsPostRA' and 'LiveIntervals' that were in 'ScheduleDAGInstrs', 
> but which have now been removed.
Simple: Just add a LiveIntervals field to your derived class (just
initialize it with the reference you previously used when calling the
ScheduleDAGInstrs constructor). For IsPostRA you probably know yourself
whether your pass runs before or after register allocation and can replace
all references to it with true or false, if it can do both then add another
member to your derived class.

> Are there any guidelines as to how implementations such as ours which 
> are still using a legacy scheduling model should be migrated to 
> whatever the preferred scheduling model is?  I expect that this code 
> was originally written a long time ago, probably based on LLVM v2.9 or 
> v3.0 in 2011, and LLVM would have had a significantly different
architecture then.
The preferred way is the TargetSchedModel (SchedMachineModel in the tablegen
files).
The previously used itineraries are still available though.

- Matthias



More information about the llvm-dev mailing list