search for: regallocsimple

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 &...