Displaying 20 results from an estimated 9000 matches similar to: "[LLVMdev] alias analysis in ScheduleDagInstr class"
2011 Nov 14
2
[LLVMdev] alias analysis in ScheduleDagInstr class
Hi Sergei, thanks for considering my question. We if-convert some code, such that the basic block looks as follows after if-conversion:
ld char from A into R1
p1 = R1>255? (generate the predicate)
p1 | R1 = 255 (conditional execution)
st char R1 to A
ld char from A+1 into R2
p2 = R2>255? (generate the predicate)
p2 | R2 = 255 (conditional execution)
store char R2 to A+1
The problem is
2011 Nov 14
0
[LLVMdev] alias analysis in ScheduleDagInstr class
We observed exact same problem, and I did put in place a mechanism to
recognize and break such false dependencies right before pre-RA scheduler
(in DAG->DAG lowering), but the immediate observed effect for our back end
was performance reduction, since none of the current schedulers were capable
of dealing with newly presented parallelism in BB (resulted in high reg
pressure and
2011 Nov 14
0
[LLVMdev] alias analysis in ScheduleDagInstr class
I am working on something very(very) similar, what is the exact nature of
your question?
Sergei Larin
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Bjorn De Sutter
Sent: Friday, November 11, 2011 7:59 AM
To: llvmdev at cs.uiuc.edu
Subject: [LLVMdev] alias
2012 Oct 31
3
[LLVMdev] : Predication on SIMD architectures and LLVM
Hi all,
I am working on a CGRA backend (something like a 2D VLIW), and we also absolutely need predication. I extended the IfConversion pass to allow it to be executed multiple times and to predicate already predicated code. This is necessary to predicate code with nested conditional statements. At this point, we support or, and, and conditional predicates (see Scott Mahlke's papers on this
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 Aug 10
2
[LLVMdev] VLIW code generation for LLVM backend
On Aug 9, 2012, at 10:09 AM, Sergei Larin <slarin at codeaurora.org> wrote:
> Yang,
>
> This might not be such a tough choice on engineering side - one of the
> LLVM differentiators is the ground-up, early introduced support for VLIW
> specific features…
Actually, LLVM lacked support for VLIW until fairly recently, and it has
relatively few VLIW-specific features.
Dan
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 Aug 08
2
[LLVMdev] VLIW code generation for LLVM backend
Larin,
Thank you for telling me about this.
Our lab is planning to design a VLIW DSP and has to make a choice
between GCC and LLVM, for which I take responsibility.
As we all know that GCC's codes possess a long history and has a
somewhat bad learning curve, I suggest choosing LLVM.
It seems now the only drawback is its poor support for VLIW
architecture. And so if we can count on
2012 Aug 13
0
[LLVMdev] VLIW code generation for LLVM backend
But we are really striving to change it fast :)
Dan,
My comparative point was that LLVM has a greater potential to accommodate
VLIW going forward than GCC does at this point.
Would you agree to that?
Sergei
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
> -----Original Message-----
> From: Dan Gohman [mailto:gohman at apple.com]
> Sent: Friday, August 10,
2013 Feb 11
1
[LLVMdev] Preferential treatment of labels in MI sched DAG construction
On Feb 11, 2013, at 1:03 PM, Sergei Larin <slarin at codeaurora.org> wrote:
> Hi Andy,
>
> I have to resurrect an ancient question regarding scheduling boundaries.
>
> You might remember the reason for introduction of CanHandleTerminators to
> ScheduleDAGInstrs. In short, Hexagon is currently uses DAG construction
> method (buildSchedGraph) for several purposes,
2012 Mar 06
2
[LLVMdev] Recent changes to MCRegisterClass fields: uint8_t is too narrow
Hi all,
in r152019 (from ctopper), the number of available registers of any type in a machine description is decreased to 256 because it needs to be encoded in uint8_t now. I'm trying to support an experimental embedded architecture with more registers (out of tree), but now that becomes impossible. Anyone knows a solution?
Thanks,
Bjorn De Sutter
Computer Systems Lab
Ghent University
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
2011 Nov 29
2
[LLVMdev] [llvm-commits] Bottom-Up Scheduling?
Sergei,
I would say that each target has its own scheduling strategy that has changed considerably over time. We try to maximize code reuse across targets, but it's not easy and done ad hoc. The result is confusing code that makes it difficult to understand the strategy for any particular target.
The right thing to do is:
1) Make it as easy as possible to understand how scheduling works for
2012 Nov 13
5
[LLVMdev] Code Owner nominations
Hi all,
I'd recommend Andy Trick be made code owner of "instruction scheduling" (including MI, pre-RA, and post-RA schedulers). I am also recommending Nadav Rotem be made code owner of "loop vectorizer".
Evan
2012 Jul 25
2
[LLVMdev] VLIW code generation for LLVM backend
Hi,
It seems the only one VLIW target Hexagon in LLVM 3.2 devel uses a
straightforward way to emit its VLIW-style asm codes.
It uses a list scheduler to schedule on DAG and a simple packetizer to
wrap the emitted asm instructions.
Both scheduling and packetizing work on basic blocks.
so, is there any plan to implement better optimization methods such as
trace scheduling, software pipelining, ...
2012 Nov 01
0
[LLVMdev] : Predication on SIMD architectures and LLVM
On Wed, Oct 31, 2012 at 09:13:43PM +0100, Bjorn De Sutter wrote:
> Hi all,
>
> I am working on a CGRA backend (something like a 2D VLIW), and we also absolutely need predication. I extended the IfConversion pass to allow it to be executed multiple times and to predicate already predicated code. This is necessary to predicate code with nested conditional statements. At this point, we
2012 Nov 15
0
[LLVMdev] Code Owner nominations
On Nov 13, 2012, at 2:59 PM, Evan Cheng <evan.cheng at apple.com> wrote:
> Hi all,
>
> I'd recommend Andy Trick be made code owner of "instruction scheduling" (including MI, pre-RA, and post-RA schedulers). I am also recommending Nadav Rotem be made code owner of "loop vectorizer".
Sergei Larin can take ownership of VLIW scheduling.
Most of the support
2012 May 11
0
[LLVMdev] Scheduler Roadmap
Sergei Larin <slarin at codeaurora.org> writes:
> - We do need to have a way to assign bundles much earlier than we do now.
Yeah, I can imagine why this would be useful.
> And it needs to be intertwined with scheduling (Bundler currently reuses a
> good chunk of scheduler infrastructure).
Just to clarify, is the need due to the current bundling implementation
of reusing
2012 Aug 07
0
[LLVMdev] VLIW code generation for LLVM backend
Yang,
There is work currently underway to add SW pipelining and some sort of
global scheduling to Hexagon, but if there is some interest to it from other
targets, it would be helpful to know. What is your involvement with this?
Sergei Larin
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu
2012 Mar 06
0
[LLVMdev] Recent changes to MCRegisterClass fields: uint8_t is too narrow
I changed it to uint16_t in r152100. Is that enough for your architecture?
On Tue, Mar 6, 2012 at 12:24 AM, Bjorn De Sutter <
bjorn.desutter at elis.ugent.be> wrote:
> Hi all,
>
> in r152019 (from ctopper), the number of available registers of any type
> in a machine description is decreased to 256 because it needs to be encoded
> in uint8_t now. I'm trying to support an