Displaying 18 results from an estimated 18 matches for "isschedulingboundari".
Did you mean:
isschedulingboundary
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 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
2012 Mar 29
0
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
Hi Tom,
We also ran into the same issue when packetizing for Hexagon. Let me try to
explain the problem:
The scheduler breaks down a basic block into regions (look at
MachineScheduler.cpp) - I believe for efficiency. There is an API
isSchedulingBoundary to check if an instruction is a scheduling boundary or
not. If it is a scheduling boundary, all existing instructions in the region
are
2013 Feb 27
1
[LLVMdev] Instruction scheduling barrier
I found myself wanting a "scheduling barrier" in LLVM. In my specific circumstances I only want it to mean that TargetInstrInfoImpl::isSchedulingBoundary() would return true.
I added SchedulingBarrier to MCID in MCInstrDesc.h and pushed it through TD attributes down to isSchedulingBoundary(). Is this something of general interest, or is there another mechanism for implementing
2018 Sep 18
2
How to add a barrier pseudo instruction?
Hi Tim,
Thank you a lot for your reply. So IIUC, optimization passes in opt do not
reorder IR instructions, only passes in llc that move MIR instructions
around. Is it correct?
On the back-end (llc) side, hasSideEffects might prevent some reordering.
But I just learn about TargetInstrInfo::isSchedulingBoundary. Can you tell
me what are the differences between the two please?
Thank you very much
2012 Mar 30
1
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
On Thu, Mar 29, 2012 at 03:51:10PM -0700, Andrew Trick wrote:
>
> 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
2012 Mar 29
2
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
On Thu, Mar 29, 2012 at 01:50:58PM -0500, Sergei Larin wrote:
> Tom,
>
> What is in your isSchedulingBoundary? If it contains isLabel you might
> need to disable that assert:
>
> assert(!MI->isTerminator() && !MI->isLabel() &&
> "Cannot schedule terminators or labels!");
>
> Sergei Larin
>
> --
> Qualcomm
2012 Mar 29
0
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
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 hooks. isSchedulingBoundary is one of them. Also try to
disable that assert and see what happens. It
2012 Mar 29
0
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
Tom,
What is in your isSchedulingBoundary? If it contains isLabel you might
need to disable that assert:
assert(!MI->isTerminator() && !MI->isLabel() &&
"Cannot schedule terminators or labels!");
Sergei Larin
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
> -----Original Message-----
> From: Tom Stellard
2013 Jul 20
2
[LLVMdev] AsmPrinter
Hi,
I would like to access the AsmPrinter MachineFunctionPass during compilation in order to do alternative dumping of instructions, instead of using MI->dump(), which can get a bit messy.
Is there any way to access this object or the assembler strings? It seems that even these strings / methods are not available through any static methods. Does it exist during the whole compilation or is it
2013 Nov 06
0
[LLVMdev] MachineInstr::isSafeToMove()
Hi,
I have a question regarding this method, as i have discovered a case where it seems very far from 'strict'.
I had two MI's, A and B, where A is !isSafeToMove():
A
B
TwoAddress pass changes the order to
B
A
, as it reschedules the LastKill MI (B).
Is this a bug in TwoAdress, or is it the case that isSafeToMove() is weaker than isSchedulingBoundary() so that these indirect
2016 Nov 15
2
how to prevent LLVM back-end from reordering instructions at instruction scheduling?
Setting the MI as isTerminator should have the same impact, yes? I'm not
sure of the other consequences of this though, if any, have to look into it.
Thanks.
-Ryan
On Tue, Nov 15, 2016 at 5:18 PM, Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:
> You can override TargetInstrInfo::isSchedulingBoundary for that.
>
> -Krzysztof
>
> On 11/15/2016 4:13 PM, Ryan
2012 Mar 29
2
[LLVMdev] VLIWPacketizerList: failing to schedule terminators
Hi,
I'm trying to use the VLIWPacketizerList to schedule instructions for
the R600 target, and I'm running into this assertion failure:
ScheduleDAGInstrs.cpp:558: Cannot schedule terminators or labels!
I think I might not be using the VLIWPacketizerList class correctly.
I've attached my code to this email. Can anyone spot what I'm doing
wrong?
Also, I had to add a LiveIntervals
2016 Aug 22
2
Instruction itineraries and fence/barrier instructions
On Mon, Aug 22, 2016 at 11:40 AM, Matt Arsenault <arsenm2 at gmail.com> wrote:
>
> > On Aug 22, 2016, at 11:20, Phil Tomson via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >
> > We improved our instruction itineraries and now we're seeing our
> testcases for fence instructions break.
> >
> > For example, we have this testcase:
> >
2016 Aug 22
3
Instruction itineraries and fence/barrier instructions
We improved our instruction itineraries and now we're seeing our testcases
for fence instructions break.
For example, we have this testcase:
@write_me = external global i32
@read_me = external global i32
; Function Attrs: nounwind
define i32 @xstg_intrinsic(i32 %foo) #0 {
entry:
; CHECK: store r0, r1, 0, 32
; CHECK-NEXT: fence 2
%foo.addr = alloca i32, align 4
store i32 %foo,
2016 Nov 15
5
how to prevent LLVM back-end from reordering instructions at instruction scheduling?
I have the same issue, would it be easier and more useful to attach a flag
to the instruction to tell the scheduler not to move instructions across
this boundary?
-Ryan
On Tue, Nov 15, 2016 at 5:11 PM, Krzysztof Parzyszek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> You can create a DAG mutation that adds artificial dependencies between A,
> B and Z.
>
> -Krzysztof
>
2018 Sep 16
2
How to add a barrier pseudo instruction?
Hello all,
I want to add a custom intrinsic to the LLVM IR which would be lowered into
a pseudo instruction since it doesn't correspond to any real instruction
defined by the architecture. The speciality of this intrinsic/pseudo
instruction that it should behave like a scheduling barrier: every
instruction before the intrinsic has to be emitted before the intrinsic,
the same goes for all
2012 Apr 19
0
[LLVMdev] Target Dependent Hexagon Packetizer patch
Sure I will split it and put it in two patches.
Give me few hours. I need to test those patches.
Sirish
On 4/19/2012 8:40 AM, Tom Stellard wrote:
> On Wed, Apr 18, 2012 at 11:18:05PM -0500, Sirish Pande wrote:
>> Hi,
>>
>> Here's a patch for Hexagon Packetizer for review. This patch does
>> not yield any warnings.
>>
> Would it be possible to split this