[llvm-dev] DFAPacketizer assert failure
Krzysztof Parzyszek via llvm-dev
llvm-dev at lists.llvm.org
Mon Nov 16 14:29:15 PST 2015
On 11/16/2015 3:49 PM, Rail Shafigulin wrote:
>
> Does the instruction that is being added have an itinerary
> associated with it?
>
> So I checked again, and it turns out that it does have an itinerary
> associated with it. However it is a pseudo instruction. Does the
> packetizer do something special with the pseudo instructions? I didn't
> see any special code, but I could have missed it.
The packetizer should not do anything with these---they should not be
inserted into a bundle. I'm not sure if the code in DFAPacketizer.cpp
does that or not. In the Hexagon backend we originally treated CFI
instructions as "solo", i.e. they could not be packetized with any other
instruction. Now we simply delay the generation of these instructions
until after packetization. The reason for this is that two instructions
that could be packetized together were not packetized together if there
was an CFI instruction in between. This was causing different code to
be generated with the CFI instructions present.
In general, most pseudo instructions should have been expanded into real
instructions by the time the packetizer runs. For exeptional cases, you
can treat them as not being packetizable with any other instructions.
-Krzysztof
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev
mailing list