Displaying 20 results from an estimated 1000 matches similar to: "Hexagon, DFAPacketizer and instruction expansion"
2015 Nov 19
2
Hexagon, DFAPacketizer and instruction expansion
On Wed, Nov 18, 2015 at 6:44 AM, Krzysztof Parzyszek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On 11/17/2015 6:51 PM, Rail Shafigulin via llvm-dev wrote:
>
>> I'm using a Hexagon's packetizer as an example to packetize instructions
>> for my custom VLIW. The problem that I'm facing is that my target as it
>> turns out doesn't have all the
2015 Nov 20
2
DFAPacketizer assert failure
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
2015 Nov 16
3
DFAPacketizer assert failure
> 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.
--
R
-------------- next part --------------
2013 Nov 23
1
[LLVMdev] prevents instruction-scheduler from interfereing instruction pair
I think this after a second. I got your point. I can define a pseudo
instruction for an instr-pair and expand it after post-RA-sched. as you
said, in preEmitPass.
The original intrinsic can also be kept. I just convert the intrinsic to
pseudo instruction in TargetLower. Thank you for your enlightening
suggestion!
thanks,
--lx
On Sat, Nov 23, 2013 at 8:37 PM, Amara Emerson <amara.emerson at
2012 Mar 29
0
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
On Mar 29, 2012, at 1:18 PM, Tom Stellard <thomas.stellard at amd.com> wrote:
> On Thu, Mar 29, 2012 at 02:57:27PM -0500, Sergei Larin wrote:
>> Tom,
>>
>> I do not have your call stack, but packetizer calls
>> ScheduleDAGInstrs::buildSchedGraph to create dependency model. If this is
>> the first time you use the new MI sched infrastructure (like your
2015 Nov 16
2
DFAPacketizer assert failure
> Does the instruction that is being added have an itinerary associated with
> it?
>
> You are right, I don't know how I missed it. It is the CFI instruction. I
don't remember giving it any itinerary.
> I'm not sure what you mean when you say that your scheduler description is
> the same as for Hexagon or R600. Those two are very different and whatever
> you
2013 Nov 23
2
[LLVMdev] prevents instruction-scheduler from interfereing instruction pair
Amara,
first, thank you for answering. but I found expandPsuedo instructions
actually happens before post-RA, like the following code showing:
your approach is a little hacky, right? : )
// Expand pseudo instructions before second scheduling pass.
addPass(&ExpandPostRAPseudosID);
printAndVerify("After ExpandPostRAPseudos");
// Run pre-sched2 passes.
if (addPreSched2())
2015 Nov 16
2
DFAPacketizer assert failure
For some reason on my VLIW target DFAPacketizer fails at
assert(CachedTable.count(StateTrans) != 0);
in the following function:
// reserveResources - Reserve the resources occupied by a MCInstrDesc and
// change the current state to reflect that change.
void DFAPacketizer::reserveResources(const llvm::MCInstrDesc *MID) {
unsigned InsnClass = MID->getSchedClass();
const llvm::InstrStage
2012 Mar 29
2
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
On Thu, Mar 29, 2012 at 02:57:27PM -0500, Sergei Larin wrote:
> Tom,
>
> I do not have your call stack, but packetizer calls
> ScheduleDAGInstrs::buildSchedGraph to create dependency model. If this is
> the first time you use the new MI sched infrastructure (like your target has
> not implemented misched yet) there might be some work needed to implement
> couple target
2012 Jun 12
2
[LLVMdev] DFAPacketizer with StateTrans != 0 Assertion
Hi,
I'm trying to get the DFAPacketizer to work for my target but with any
instruction I get the
'Assertion `CachedTable.count(StateTrans) != 0' failed' error and it crashes
out before packeting a single instruction.
I have a *GenDFAPacketizer.inc file and my packetizer pass checks that the
table is not empty before proceeding. I also have a schedule file with my
functional
2012 Jun 12
0
[LLVMdev] DFAPacketizer with StateTrans != 0 Assertion
Hi Sam,
On 12/06/2012 15:33, sam wrote:
> Hi,
>
> I'm trying to get the DFAPacketizer to work for my target but with any
> instruction I get the
> 'Assertion `CachedTable.count(StateTrans) != 0' failed' error and it crashes
> out before packeting a single instruction.
Do you reserve some resource without verification?
Note that reserveResources() should be
2013 Feb 18
0
[LLVMdev] DFAPacketizer
Hi Anshu,
Would there be any interest in extending this algorithm to handling more extensive models, such as VLIW scheduling based on FU's and bundle space... ie handle multiple stages ?
I might do it and commit, if there is acceptance and guidance...
Jonas
________________________________
From: Anshuman Dasgupta [mailto:adasgupt at codeaurora.org]
Sent: Tuesday, February 12, 2013 4:47 PM
2013 Feb 17
2
[LLVMdev] pseudo lowering
On Feb 17, 2013, at 1:01 PM, Reed Kotler <rkotler at mips.com> wrote:
> On 02/17/2013 12:48 PM, Andrew Trick wrote:
>> On Feb 16, 2013, at 1:31 PM, Cameron Zwarich <zwarich at apple.com> wrote:
>>
>>> That's exactly the right place.
>> Really? You don't want the expansion to be optimized? You want to specify a machine model for the pseudo's
2013 Feb 12
2
[LLVMdev] DFAPacketizer
Hi Jonas,
> It is interesting to find this in the ARM backend, considering your
answer.
The ARM backend doesn't use the DFA packetizer. It's only used by
Hexagon. At this point, there is no plan to address thisin the DFA
packetizer since none of the supported targets needthe functionality.
Thanks
-Anshu
---
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
2012 Jun 12
3
[LLVMdev] DFAPacketizer with StateTrans != 0 Assertion
Hi Ivan,
The assertion was happening because I wasn't checking after the first
attempt failed. The first packet was failing and so it was ended, and
then the packetizer attempted to add it to the next packet without
checking for available resources. However this highlights probably the
real problem - my packetizer is unable to find resources for the first
instruction, or any of my
2013 Feb 11
2
[LLVMdev] DFAPacketizer
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
2013 Nov 23
0
[LLVMdev] prevents instruction-scheduler from interfereing instruction pair
What I meant was to write your own expansion pass and run it after the
scheduler passes, e.g. in the pre-emit stage.
> if (addPreEmitPass())
printAndVerify("After PreEmit passes")
Though if it's too hacky for you then fair enough.
Amara
On 23 November 2013 03:17, Liu Xin <navy.xliu at gmail.com> wrote:
> Amara,
>
> first, thank you for answering. but I found
2013 Feb 12
0
[LLVMdev] DFAPacketizer
Hi,
I looked a bit through the mail archives, and found this question answered in Oct 2011 (see below). It is interesting to find this in the ARM backend, considering your answer. Can you give more information about for example is this a temporary deficiency in the DFAPacketizer? What is the IIC_iMOVi itinerary doing below?
Thanks,
Jonas
Thu Oct 6 15:11:25 CDT 2011:
Hello Hal.
> Is there
2012 Apr 19
4
[LLVMdev] Target Dependent Hexagon Packetizer patch
Hi,
Here's a patch for Hexagon Packetizer for review. This patch does not
yield any warnings.
Sirish
--
Qualcomm Innovation Center, Inc is a member of Code Aurora Forum
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: HexagonPacketizer.patch
URL:
2015 Oct 22
2
add intrinsic function support for customized backend
Hi, All,
I want to add one intrinsic function for my particular backend. Let's say
the intrinsic function is named "foo" which takes two i32 inputs and has
one i32 output.
First, I add this line "def int_foo : Intrinsic<[llvm_i32_ty],
[llvm_i32_ty, llvm_i32_ty], [IntrReadArgMem]>;" in
/include/llvm/IR/Intrinsics.td.
Then, in my target/InstrInfo.td, I'm supposed