Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] help with phi elimination/ register allocation"
2006 May 01
0
[LLVMdev] Register allocation in LLVM
On Sat, 29 Apr 2006, Fernando Magno Quintao Pereira wrote:
> I want to implement the register allocation algorithm described in the
> paper "Register Allocation via Coloring of Chordal Graphs, APLAS'05" in
> LLVM. This is a graph coloring algorithm that can find an optimal coloring
> of the interference graph in most of the cases. I've downloaded LLVM last
> week,
2006 Apr 29
2
[LLVMdev] Register allocation in LLVM
Hello, all,
I want to implement the register allocation algorithm described in the
paper "Register Allocation via Coloring of Chordal Graphs, APLAS'05" in
LLVM. This is a graph coloring algorithm that can find an optimal coloring
of the interference graph in most of the cases. I've downloaded LLVM last
week, and started studying the code. Basically, I have to implement:
1) A
2015 Jul 09
3
[LLVMdev] PHI Elimination in Register Allocation Pass
Good Afternoon.
I am a Computer Science undergraduate student in Brazil and as completion
of course work, I am developing an register allocator, using the
infrastructure of the LLVM.
To accomplish this task, I have based my implementation in allocators
already implemented in LLVM. But a question came to me while I was
researching in books and articles of compiler theory and own documentation
of
2012 Jul 25
2
[LLVMdev] Question about an unusual jump instruction
Dear all,
I'm working on an exploratory backend on llvm. In the instruction set I'm using
I have an instruction (called DECJNZ) that decrements a register and, if the
decremented value is not zero, jumps (with a relative jump) to a given offset.
I've described in tablegen this instruction as follow:
def DECJNZ : Instruction {
let Namespace = "MyTarget";
let
2006 May 01
2
[LLVMdev] Register allocation in LLVM
On Apr 30, 2006, at 10:42 PM, Chris Lattner wrote:
> On Sat, 29 Apr 2006, Fernando Magno Quintao Pereira wrote:
>> I want to implement the register allocation algorithm described in
>> the
>> paper "Register Allocation via Coloring of Chordal Graphs,
>> APLAS'05" in
>> LLVM. This is a graph coloring algorithm that can find an optimal
>>
2012 Jul 25
0
[LLVMdev] Question about an unusual jump instruction
On Wed, Jul 25, 2012 at 12:48 AM, Michele Scandale
<michele.scandale at gmail.com> wrote:
> Dear all,
>
> I'm working on an exploratory backend on llvm. In the instruction set I'm using
> I have an instruction (called DECJNZ) that decrements a register and, if the
> decremented value is not zero, jumps (with a relative jump) to a given offset.
>
> I've
2011 May 17
1
[LLVMdev] eliminate phi nodes, reduce unnecessary loads / stores , reg2mem, mem2reg
Hi,
I work on a pass that requires as input LLVM code without any phi nodes. For
this, I use the reg2mem pass which produces suitable code, the pass runs
correctly, but I obtain a significant performance decrease. I expect that this
is because there are more reads / writes to memory after running the reg2mem
pass.
How can I optimize the code, without inserting any phi nodes? Or is there a
2010 Oct 05
3
[LLVMdev] [LLVMDev] Phi elimination: Who does what
Aye, between all current register allocators the
'AU.addRequiredID(PHIEliminationID);' will cause phi's to be
eliminated to copies, but this misses the point of my question.
What I am asking, is how does stack know that the value of the
variable which the resulting value of the phi is currently allocated
at. For instance take the instruction:
Machine Basic Block (mbb) 12
reg16666 =
2012 Aug 20
2
[LLVMdev] How to eliminate PHI nodes on pointer types?
Somewhere during optimization PHI nodes on pointer types (including
alloca instructions) are being introduced, and they persist through the
scalar replacement of aggregates pass and others. I can't seem to find
a combination of passes or transformations to get rid of them. Has
anyone had this problem before, and know a transformation to eliminate
it? My optimization passes rely on
2015 Apr 22
3
[LLVMdev] what is the Line number of Phi Node with addr2line
reg2mem does not eliminate phi nodes the way codegen does, it just
converts ssa values to non-ssa values.
It's not the same thing.
On Tue, Apr 21, 2015 at 10:14 PM, Eric Lu <eirc.lew at gmail.com> wrote:
> By the way. When I remove these phi nodes with -reg2mem, some new load
> operations will be inserted, but when I try cache load operations with:
> visitFunction
>
2006 May 02
1
[LLVMdev] How to link the right libraries?
> > Hello, llvmers. Could someone explain me a little about the opt tool? I am
> > having problems to load a MachineFunctionPass using opt. I have this pass:
>
> MachineFunctionPass's cannot be used as part of opt, they can only be used
> as part of LLC. Further, you have to explicitly modify the target you are
> interested in to add it to the pass manager for that
2006 May 26
1
Not able to make any calls
Hi All,
I have registered "abhijit" for SIP in asterisk Server.
I am able to register my softphone (SJPhone) to the server using the
name "abhijit".
But whenever I try to make any calls I am gettinh the following error
message:-
*CLI>
-- Registered SIP 'abhijit' at 172.20.28.85 port 5060 expires 120
May 26 07:34:52 NOTICE[2761]: pbx.c:1738 pbx_extension_helper:
2017 Jun 15
2
LLC does not do proper copy propagation (or copy coalescing)
Hello.
Could you please tell me how can I optimize with the back end (llc) the following
piece of assembly code generated by llc:
// NOTE: my processor accepts loops in the form of REPEAT(num_times)..END_REPEAT
R0 = ...
REPEAT(256)
R5 = R0; // basically unnecessary reg. copy
REPEAT(256)
R10 = LS[R4];
R2 = LS[R5];
R4 =
2012 Jul 04
0
[LLVMdev] Assertion in PHIElimination.cpp
On Jul 4, 2012, at 5:35 AM, Philipp Brüschweiler <blei42 at gmail.com> wrote:
> Hi everyone
>
> I'm hitting an assertion in PHIElimination.cpp:375.
>
> "Terminator instructions cannot use virtual registers unless"
> "they are the first terminator in a block!"
>
> I was looking at the code around that location a bit and have not found
> a
2009 Jan 08
2
[LLVMdev] Loop elimination with floating point counter.
Hi LLVM-ers,
I'd like to eliminate dead loop with floating point counter using
LLVM, but the following loop wasn't optimized by opt.
void
func() {
float i;
for (i = 0.0f; i < 1000.0f; i += 1.2f) {
}
}
$ clang -emit-llvm-bc floop.c
$ opt -std-compile-opts floop.bc | llvm-dis
define void @func(...) nounwind {
entry:
br label %forinc
forinc: ; preds = %forinc, %entry
2015 Apr 22
3
[LLVMdev] what is the Line number of Phi Node with addr2line
Hi, Daniel
I want to profile load/store operations, in order to reduce the overhead of
profiling, I try to instrument the optimized llvm ir, which has phi nodes.
BTW, when the value of some load/store operations may have multi-source,
then the load will be translated into phi nodes, and all phi nodes are
placed in the front of BB. Sometimes, the position is not where the load
happens, is there
2011 Aug 31
2
[LLVMdev] Getting rid of phi instructions?
On 31.8.2011, at 11.41, Eli Friedman wrote:
> Mmm... reg2mem will transform IR with PHI's into IR without them, but
> it generates a bunch of alloca's, which I would assume are not cheap
> to lower to VHDL. You might have to write your own pass to get the
> precise transformation you're looking for.
Right. Thanks. I need to see the reg2mem source code.
Teemu
2009 Jan 08
0
[LLVMdev] Loop elimination with floating point counter.
On Jan 8, 2009, at 4:36 AM, Syoyo Fujita wrote:
> Hi LLVM-ers,
>
> I'd like to eliminate dead loop with floating point counter using
> LLVM, but the following loop wasn't optimized by opt.
>
> void
> func() {
> float i;
> for (i = 0.0f; i < 1000.0f; i += 1.2f) {
> }
> }
FWIW, LLVM optimizer can eliminate this loop if i is incremented by 1.0f
2012 Sep 18
0
[LLVMdev] liveness assertion problem in llc
On Sep 18, 2012, at 1:45 PM, Bjorn De Sutter <bjorn.desutter at elis.ugent.be> wrote:
> I am working on a backend for a CGRA architecture with advanced predicate support (as on EPIC machines and as first used in the OpenIMPACT compiler). Until last month, the backend was working fine, but since the r161643 commit by stoklund, my backend doesn't work anymore. I think I noticed some
2012 Jul 04
2
[LLVMdev] Assertion in PHIElimination.cpp
Hi everyone
I'm hitting an assertion in PHIElimination.cpp:375.
"Terminator instructions cannot use virtual registers unless"
"they are the first terminator in a block!"
I was looking at the code around that location a bit and have not found
a reason why this assertion has to hold, except for a comment:
// In our final twist, we have to decide which instruction