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

Rail Shafigulin via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 17 14:43:54 PST 2015


On Tue, Nov 17, 2015 at 2:35 PM, Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:

> On 11/17/2015 4:23 PM, Rail Shafigulin wrote:
>
>>
>> I'm a little confused. If a bundle is supposed to have at least 2
>> instructions, what is the point of
>> VLIWPacketzierList::isSoloInstruction(...)? Say we have an instruction
>> that can't be bundled with anything, how would one form a packet from it?
>>
>
> In the machine IR, a bundle is a regular instruction, which happens to
> have other instructions inside of it.  A basic block can have bundles mixed
> with non-bundled instructions.  If you iterate over a basic block using
> MachineBasicBlock::iterator, you will not see the contents of bundles, just
> the BUNDLE opcode.  For stepping into bundles you would need
> MachineBasicBlock::instr_iterator.
>
> When it comes to the encoding of instructions for the hardware, the
> target-specific object-emission code must handle that properly.  That
> happens later, on a yet another program representation, where instructions
> are of type MCInst, not MachineInstr.
>
>
> -Krzysztof
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by The Linux Foundation
>

I see. Thanks.

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


More information about the llvm-dev mailing list