Displaying 19 results from an estimated 19 matches for "regallocsimple".
2006 May 03
1
[LLVMdev] RegAllocSimple.cpp
Hi Chris,
I saw this potential memory leak in RegAllocSimple.cpp. The
PhysRegsEverUsed was being allocated but never freed.
-bw
Index: RegAllocSimple.cpp
===================================================================
RCS file: /var/cvs/llvm/llvm/lib/CodeGen/RegAllocSimple.cpp,v
retrieving revision 1.66
diff -a -u -r1.66 RegAllocSimple.cpp
--- RegAlloc...
2006 May 03
0
[LLVMdev] RegAllocSimple.cpp
Oops! Nevermind. I see that it's being deallocated in another class. My bad.
-bw
2009 Oct 26
1
[LLVMdev] RegAllocSimple doesn't work
...attached):
a.out This XXXX < input
I get a Segmentation fault with the current version of LLVM. With the old
version it runs, but I get garbage output.
If I create the ".s" file using just
llc -f replace.bc
everything is fine.
Does anyone know how to fix either version of RegAllocSimple?
Susan Horwitz
-------------- next part --------------
/* -*- Last-Edit: Mon Dec 7 10:31:51 1992 by Tarak S. Goradia; -*- */
extern void exit();
# include <stdio.h>
void Caseerror();
typedef char bool;
# define false 0
# define true 1
# define NULL 0
# define MAXSTR 100
# define MAXP...
2006 May 23
4
[LLVMdev] Spilling register and frame indices
...d to MRegisterInfo to spill specific
virtual register. The implementation can then create code like:
virtual_register = frame_pointer + offset
[virtual_register]
and then have 'virtual_register' allocated on next iteration of register
allocator?
Also, while RegAllocLocal and RegAllocSimple directly call
storeRegToStackSlot, I would not found any calls to that method in
RegAllocLinearScan. Am I missing something?
- Volodya
2007 Jul 13
0
[LLVMdev] [PATCH] Re: Pluggable Register Coalescers
...rAllocator {
public:
static char ID;
RALocal() : MachineFunctionPass((intptr_t)&ID) {}
@@ -129,7 +131,7 @@
}
}
- public:
+ public:
virtual const char *getPassName() const {
return "Local Register Allocator";
}
Index: llvm/lib/CodeGen/RegAllocSimple.cpp
===================================================================
--- llvm/lib/CodeGen/RegAllocSimple.cpp (revision 58818)
+++ llvm/lib/CodeGen/RegAllocSimple.cpp (working copy)
@@ -21,6 +21,7 @@
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/CodeGen/MachineFrameInfo.h&qu...
2007 Jul 11
3
[LLVMdev] Pluggable Register Coalescers
On Jul 11, 2007, at 11:39 AM, David Greene wrote:
> On Wednesday 11 July 2007 12:41, Tanya M. Lattner wrote:
>
>> I think the coalescer should be flexible enough to be run
>> independent of
>> the register allocator. For example, you may want to expose the
>> copies
>> induced by transforming out of SSA to the scheduler. If the
>> scheduler is
2008 Sep 19
2
[LLVMdev] Using VirtRegMap
I'm trying to piece together a few assignments for a graduate-level
compilers class using LLVM; among these is a register allocator. I'd
like to provide a register allocator that, given a partially-allocated
VirtRegMap, will perform trivial register allocation (as in
RegAllocSimple) on the remaining, unmapped virtual registers.
To make a long story short, I want to map a single virtual register to
various physical registers at different times, keeping the relevant
value in memory all along. Can VirtRegMap do this cleanly, or should I
avoid this abstraction and issue store...
2007 Nov 06
1
[LLVMdev] Question about register allocators
What is the status of RegAllocLocal, RegAllocBigBlock and
RegAllocSimple allocators? I am considering using one of them as a
basis for a course project on register allocation in my class. In
particular, are those allocators in regular use and/or have they been
tested recently? I am particularly interested in the code as of
version 4.0 but if anything has impr...
2006 May 23
0
[LLVMdev] Spilling register and frame indices
...>
> and then have 'virtual_register' allocated on next iteration of register
> allocator?
This is one approach. Another approach is to have to spiller scavange
registers, which is the subject of this enhancement request:
http://llvm.org/PR768
> Also, while RegAllocLocal and RegAllocSimple directly call
> storeRegToStackSlot, I would not found any calls to that method in
> RegAllocLinearScan. Am I missing something?
RegAllocLinearScan just does register assignment, then the code in
VirtRegMap.cpp (poorly named) actually takes the register assignment and
inserts/optimizes the...
2008 Sep 19
0
[LLVMdev] Using VirtRegMap
...gt; I'm trying to piece together a few assignments for a graduate-level
> compilers class using LLVM; among these is a register allocator. I'd
> like to provide a register allocator that, given a partially-allocated
> VirtRegMap, will perform trivial register allocation (as in
> RegAllocSimple) on the remaining, unmapped virtual registers.
>
> To make a long story short, I want to map a single virtual register to
> various physical registers at different times, keeping the relevant
> value in memory all along. Can VirtRegMap do this cleanly, or should I
> avoid this abstra...
2006 May 24
1
[LLVMdev] Re: Spilling register and frame indices
...Another approach is to have to spiller scavange
> registers, which is the subject of this enhancement request:
> http://llvm.org/PR768
Can you given some references for this "scavange" thing? Google and
ResearchIndex are silent on the topic.
>> Also, while RegAllocLocal and RegAllocSimple directly call
>> storeRegToStackSlot, I would not found any calls to that method in
>> RegAllocLinearScan. Am I missing something?
>
> RegAllocLinearScan just does register assignment, then the code in
> VirtRegMap.cpp (poorly named) actually takes the register assignment and...
2009 Oct 22
0
[LLVMdev] request for help writing a register allocator
Hi Susan,
> But this doesn't seem to be happening; the stores to memory are there but
> the loads are not.
>
> Any ideas what's going wrong?
Are you using VirtRegMap::addSpillPoint and VirtRegMap::addRestorePoint ? If
not you may need to add calls to them to let the rewriter know where to
insert the loads/stores.
> If not, any advice on how to generate the loads
2009 Oct 22
4
[LLVMdev] request for help writing a register allocator
I found the problem! My generated code is spilling correctly but is not
reloading at all. For example, if the original code has the equivalent of
this (where %1024 is a virtual reg):
%1024 = xxx
...
yyy = %1024
and I find no physical register for %1024, then I assign it to physical
register %edi and to a stackslot. That creates code like this:
%edi = xxx
store from %edi to the
2005 Apr 22
0
[LLVMdev] tabs
...lysis/LoopInfo.cpp
Index: lib/Analysis/PostDominators.cpp
Index: lib/Analysis/DataStructure/EquivClassGraphs.cpp
Index: lib/Analysis/IPA/FindUsedTypes.cpp
Index: lib/Analysis/IPA/GlobalsModRef.cpp
Index: lib/Bytecode/Writer/SlotCalculator.cpp
Index: lib/CodeGen/PHIElimination.cpp
Index: lib/CodeGen/RegAllocSimple.cpp
Index: lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Index: lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Index: lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
Index: lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
Index: lib/ExecutionEngine/Interpreter/Interpreter.cpp
Index: lib/ExecutionE...
2008 Oct 11
0
[LLVMdev] 2.4 Pre-release (v1) Available for Testing
On Oct 10, 2008, at 1:44 PM, Óscar Fuentes wrote:
> OvermindDL1 <overminddl1 at gmail.com> writes:
>
> [snip]
>
>> On this first compile everything compiled except for llc and lli,
>> which did not link due to:
>> unresolved external symbol "class llvm::FunctionPass * __cdecl
>> llvm::createPBQPRegisterAllocator(void)"
>
> That is because
2008 Oct 10
8
[LLVMdev] 2.4 Pre-release (v1) Available for Testing
OvermindDL1 <overminddl1 at gmail.com> writes:
[snip]
> On this first compile everything compiled except for llc and lli,
> which did not link due to:
> unresolved external symbol "class llvm::FunctionPass * __cdecl
> llvm::createPBQPRegisterAllocator(void)"
That is because the lib/CodeGen project file is missing PBQP.cpp.
[snip]
> On Fri, Oct 10, 2008 at 2:11
2008 Oct 11
4
[LLVMdev] 2.4 Pre-release (v1) Available for Testing
...RelativePath="..\..\lib\CodeGen\PHIElimination.cpp"
>
</File>
@@ -453,6 +457,10 @@
>
</File>
<File
+ RelativePath="..\..\lib\CodeGen\RegAllocPBQP.cpp"
+ >
+ </File>
+ <File
RelativePath="..\..\lib\CodeGen\RegAllocSimple.cpp"
>
</File>
@@ -736,6 +744,10 @@
</File>
<File
RelativePath="..\..\include\llvm\CodeGen\Passes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\lib\CodeGen\PBQP.h"
>
</File>
<File
And...
2004 Dec 03
0
[LLVMdev] [Fwd: Updated LLVM Visual Studio project files]
...RelativePath="..\..\lib\CodeGen\RegAllocLinearScan.cpp">
> > </File>
> > <File
> > RelativePath="..\..\lib\CodeGen\RegAllocLocal.cpp">
> > </File>
> > <File
> > RelativePath="..\..\lib\CodeGen\RegAllocSimple.cpp">
> > </File>
> > <File
> > RelativePath="..\..\lib\CodeGen\TwoAddressInstructionPass.cpp">
> > </File>
> > <File
> > RelativePath="..\..\lib\CodeGen\UnreachableBlockElim.cpp">
> >...
2004 Dec 03
2
[LLVMdev] [Fwd: Updated LLVM Visual Studio project files]
...e>
> <File
> RelativePath="..\..\lib\CodeGen\RegAllocLinearScan.cpp">
> </File>
> <File
> RelativePath="..\..\lib\CodeGen\RegAllocLocal.cpp">
> </File>
> <File
> RelativePath="..\..\lib\CodeGen\RegAllocSimple.cpp">
> </File>
> <File
> RelativePath="..\..\lib\CodeGen\TwoAddressInstructionPass.cpp">
> </File>
> <File
> RelativePath="..\..\lib\CodeGen\UnreachableBlockElim.cpp">
> </File>
> <File
&...