Rail Shafigulin via llvm-dev
2015-Nov-16 19:14 UTC
[llvm-dev] DFAPacketizer assert failure
For some reason on my VLIW target DFAPacketizer fails at assert(CachedTable.count(StateTrans) != 0); in the following function: // reserveResources - Reserve the resources occupied by a MCInstrDesc and // change the current state to reflect that change. void DFAPacketizer::reserveResources(const llvm::MCInstrDesc *MID) { unsigned InsnClass = MID->getSchedClass(); const llvm::InstrStage *IS = InstrItins->beginStage(InsnClass); unsigned FuncUnits = IS->getUnits(); UnsignPair StateTrans = UnsignPair(CurrentState, FuncUnits); ReadTable(CurrentState); assert(CachedTable.count(StateTrans) != 0); CurrentState = CachedTable[StateTrans]; } This happens at the packetization stage, i.e. scheduling seems to work. My schedule description is not very different from Hexagon or R600. I'm not quite sure why this is happening. Would someone be able to shed some light on this? Any help is appreciated. -- R -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151116/3d6e78e1/attachment.html>
Krzysztof Parzyszek via llvm-dev
2015-Nov-16 19:32 UTC
[llvm-dev] DFAPacketizer assert failure
On 11/16/2015 1:14 PM, Rail Shafigulin via llvm-dev wrote:> > This happens at the packetization stage, i.e. scheduling seems to work. > My schedule description is not very different from Hexagon or R600. I'm > not quite sure why this is happening. Would someone be able to shed some > light on this?It's hard to make a guess based on that assertion alone. Apparently there is no transition in the DFA for these values. Do the arguments (e.g. CurrentState and FuncUnits) look reasonable? -Krzysztof -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Rail Shafigulin via llvm-dev
2015-Nov-16 20:08 UTC
[llvm-dev] DFAPacketizer assert failure
> > It's hard to make a guess based on that assertion alone. Apparently there > is no transition in the DFA for these values. > > Do the arguments (e.g. CurrentState and FuncUnits) look reasonable?FuncUnits = 0 CurrentState = 0 StateTrans = {first = 0, second = 0} I understand that there is something wrong with the state machine but I can't figure out what exactly. My scheduler description is the same as for Hexagon or R600. So why would DFA would look any different for my target? What could be the problem? -- R -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151116/491d5fc2/attachment.html>