[LLVMdev] DFAPacketizer
Anshuman Dasgupta
adasgupt at codeaurora.org
Mon Feb 11 10:18:49 PST 2013
Jonas,
At this point, the DFA packetizer models a simple VLIW architecture and
does not accommodate multiple stages. That's the reason for the behavior
you're seeing.
-Anshu
---
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
*From:*llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
*On Behalf Of *Jonas Paulsson
*Sent:* Monday, February 11, 2013 11:16 AM
*To:* llvmdev at cs.uiuc.edu
*Subject:* [LLVMdev] DFAPacketizer
Hi,
I am having problems writing the ProcessorItineraries list. As
instructions on my VLIW target have varying size I want to model both
cpu units and bundle bits as FUs. The following does not work, to my
surprise:
InstrItinData<ALU, [InstrStage<1, [BITS1,BITS2, BITS3, BITS4], 0>,
InstrStage<1, [ALU1, ALU2]>]>
I want to express that there are two ALU's, and four bundle slots, and
in this case while allocating this type of instructions several times, I
would like to be allowed only two such instructions per cycle.
ResourceTracker->reserveResources();
ResourceTracker->reserveResources();
ResourceTracker->reserveResources();
ResourceTracker->reserveResources();
ResourceTracker->reserveResources();
DFAPacketizer.cpp:84: void llvm::DFAPacketizer::reserveResources(const
llvm::MCInstrDesc*): Assertion `CachedTable.count(StateTrans) != 0' failed.
It seems to not want to worry about the alu's, but it is fine as long as
there are any FU of the first row (BITS) available.
What is missing?
Thanks,
Jonas Paulsson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130211/77e69278/attachment.html>
More information about the llvm-dev
mailing list