[LLVMdev] VLIWPacketizerList: failing to schedule terminators

Sergei Larin slarin at codeaurora.org
Thu Mar 29 12:57:27 PDT 2012


Tom,

   I do not have your call stack, but packetizer calls
ScheduleDAGInstrs::buildSchedGraph to create dependency model. If this is
the first time you use the new MI sched infrastructure (like your target has
not implemented misched yet) there might be some work needed to implement
couple target hooks. isSchedulingBoundary is one of them. Also try to
disable that assert and see what happens. It sounds strange, but in some
cases that assert is overly restrictive.

Andy, 

  Those are just my guesses, but the issue looks very similar to our first
experience with sched DAG constructor.

Sergei

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.


> -----Original Message-----
> From: Tom Stellard [mailto:thomas.stellard at amd.com]
> Sent: Thursday, March 29, 2012 2:23 PM
> To: Sergei Larin
> Cc: 'Anshuman Dasgupta'; llvmdev at cs.uiuc.edu
> Subject: Re: VLIWPacketizerList: failing to schedule terminators
> 
> On Thu, Mar 29, 2012 at 01:50:58PM -0500, Sergei Larin wrote:
> > Tom,
> >
> >   What is in your isSchedulingBoundary? If it contains isLabel you
> might
> > need to disable that assert:
> >
> > assert(!MI->isTerminator() && !MI->isLabel() &&
> >            "Cannot schedule terminators or labels!");
> >
> > Sergei Larin
> >
> > --
> > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
> >
> >
> 
> I haven't implemented it, so it's still the default implementation.
> Though, the assertion failure is happening before the main packetizer
> loop, so  it doesn't look like that function is ever called.
> 
> -Tom
> 
> 
> > > -----Original Message-----
> > > From: Tom Stellard [mailto:thomas.stellard at amd.com]
> > > Sent: Thursday, March 29, 2012 11:01 AM
> > > To: Anshuman Dasgupta; Sergei Larin
> > > Cc: llvmdev at cs.uiuc.edu
> > > Subject: VLIWPacketizerList: failing to schedule terminators
> > >
> > > Hi,
> > >
> > > I'm trying to use the VLIWPacketizerList to schedule instructions
> for
> > > the R600 target, and I'm running into this assertion failure:
> > > ScheduleDAGInstrs.cpp:558: Cannot schedule terminators or labels!
> > >
> > > I think I might not be using the VLIWPacketizerList class
> correctly.
> > > I've attached my code to this email.  Can anyone spot what I'm
> doing
> > > wrong?
> > >
> > > Also, I had to add a LiveIntervals * parameter to the constructor
> of
> > > this class in order to do pre-RA scheduling.
> > >
> > >
> > > Thanks,
> > > Tom
> >
> >





More information about the llvm-dev mailing list