[llvm-dev] DFAPacketzer, Hexagon and bundles with 1 instruction

Rail Shafigulin via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 17 13:30:50 PST 2015


I'm trying to figure out how Hexagon (I'm using it as an example for my own
VLIW) is handling bundles with 1 instruction, but I don't quite get it.
Here is the code that I have for a endPacket

// endPacket - End the current packet, bundle packet instructions and reset
// DFA state.
void VLIWPacketizerList::endPacket(MachineBasicBlock *MBB,
                                         MachineInstr *MI) {
  if (CurrentPacketMIs.size() > 1) {
    MachineInstr *MIFirst = CurrentPacketMIs.front();
    finalizeBundle(*MBB, MIFirst, MI);
  }
  CurrentPacketMIs.clear();
  ResourceTracker->clearResources();
}

Based on this, it looks like packets with one instruction are not finalized
(finalizeBundle is the one which inserts a BUNDLE instruction). So what
happens with packets that have only 1 instruction? Is there a separate pass
that creates a bundle from a single instruction?

Any help is appreciated.

-- 
R
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151117/94bb9cda/attachment.html>


More information about the llvm-dev mailing list