Kun, Thanks for the reply. I looked at it, but wasn't able to find where actual instruction bundling takes place, i.e. where exactly in the code they pack instruction into a single bundle. Do you know where it is done? I would really appreciate any pointers. Thanks. On Fri, Sep 25, 2015 at 4:37 PM, Kun Ling <kunling at lingcc.com> wrote:> Hi Rail, > For the VLIW support, Qualcomm's Hexagon target is a good reference. > > http://llvm.org/devmtg/2013-11/slides/Guerra-VLIW.pdf > > > Kun Ling >> > ------------------ Original ------------------ > *From: * "Rail Shafigulin via llvm-dev"<llvm-dev at lists.llvm.org>; > *Date: * Fri, Sep 25, 2015 03:33 PM > *To: * "llvm-dev"<llvm-dev at lists.llvm.org>; > *Subject: * [llvm-dev] VLIW support > > Is there a VLIW support in LLVM? I found this, > https://groups.google.com/forum/#!searchin/llvm-dev/VLIW, but it looks > like it is not completely implemented. Specifically I'm interested in how > instructions are bundled together. I can't seem to find it anywhere in the > source code. > > Any help in resolving he issue is appreciated. > >-- Rail Shafigulin Software Engineer Esencia Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150925/977a12cf/attachment.html>
Is this what you want? http://llvm.org/docs/doxygen/html/HexagonVLIWPacketizer_8cpp_source.html Kun ------------------ Original ------------------ From: "Rail Shafigulin"<rail at esenciatech.com>; Date: Fri, Sep 25, 2015 03:41 PM To: "Kun Ling"<kunling at lingcc.com>; Cc: "llvm-dev"<llvm-dev at lists.llvm.org>; Subject: Re: [llvm-dev] VLIW support Kun, Thanks for the reply. I looked at it, but wasn't able to find where actual instruction bundling takes place, i.e. where exactly in the code they pack instruction into a single bundle. Do you know where it is done? I would really appreciate any pointers. Thanks. On Fri, Sep 25, 2015 at 4:37 PM, Kun Ling <kunling at lingcc.com> wrote: Hi Rail, For the VLIW support, Qualcomm's Hexagon target is a good reference. http://llvm.org/devmtg/2013-11/slides/Guerra-VLIW.pdf Kun Ling ------------------ Original ------------------ From: "Rail Shafigulin via llvm-dev"<llvm-dev at lists.llvm.org>; Date: Fri, Sep 25, 2015 03:33 PM To: "llvm-dev"<llvm-dev at lists.llvm.org>; Subject: [llvm-dev] VLIW support Is there a VLIW support in LLVM? I found this, https://groups.google.com/forum/#!searchin/llvm-dev/VLIW, but it looks like it is not completely implemented. Specifically I'm interested in how instructions are bundled together. I can't seem to find it anywhere in the source code. Any help in resolving he issue is appreciated. -- Rail Shafigulin Software Engineer Esencia Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150926/408f160c/attachment.html>
On Fri, Sep 25, 2015 at 4:50 PM, Kun Ling <kunling at lingcc.com> wrote:> Is this what you want? > > http://llvm.org/docs/doxygen/html/HexagonVLIWPacketizer_8cpp_source.html > > Kun >Kun, Thanks for the reply. This is exactly what I have been looking for. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150928/126e7884/attachment.html>
On 9/25/2015 6:41 PM, Rail Shafigulin via llvm-dev wrote:> Kun, > > Thanks for the reply. I looked at it, but wasn't able to find where > actual instruction bundling takes place, i.e. where exactly in the code > they pack instruction into a single bundle. Do you know where it is > done? I would really appreciate any pointers. >The main apparatus that does that is in DFAPacketizer.cpp. It keeps track of the available resources for the currently built bundle. The HexagonVLIWPacketizer.cpp does a lot, but it's mostly concerned with what instructions can or cannot go together. In essence, it tries to add the next instruction to the bundle currently under construction. If that succeeds, it goes for the next instruction, if it fails, it finalizes the bundle and puts the instruction in a fresh bundle. It repeats this process for each basic block in the function. -Krzysztof -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
> > The main apparatus that does that is in DFAPacketizer.cpp. It keeps track > of the available resources for the currently built bundle. The > HexagonVLIWPacketizer.cpp does a lot, but it's mostly concerned with what > instructions can or cannot go together. In essence, it tries to add the > next instruction to the bundle currently under construction. If that > succeeds, it goes for the next instruction, if it fails, it finalizes the > bundle and puts the instruction in a fresh bundle. It repeats this process > for each basic block in the function. > > -Krzysztof > > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted > by The Linux Foundation > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >Krzysztof, Thanks for the info. I figured as much by looking through the code. Kun provided a good starting point for me. -- Rail Shafigulin Software Engineer Esencia Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150929/e3939cfc/attachment.html>