search for: createregisterallocator

Displaying 8 results from an estimated 8 matches for "createregisterallocator".

2007 Jul 09
2
[LLVMdev] Pluggable Register Coalescers
...lescers as we originally wanted when I started the refactoring work. I'm in the midst of finishing up an implementation following the model of how register allocators are selected. Thgere may be some more refactoring/code sharing work to be done with this, but I want to get it working first. createRegisterAllocator() is called by addPassesToEmit.* to instantiate the register allocator. Coalescing is a bit different. Typically, the register allocator is the client of the coalescer. My original thought was to have each register allocator implementation call createRegisterCoalescer directly. I then thought...
2010 May 04
0
[LLVMdev] Register Allocation: Interference graph
...lly do register allocation, or will it? If so, you want to use the RegisterRegAlloc object. Here is how linear scan uses it: static RegisterRegAlloc linearscanRegAlloc("linearscan", "linear scan register allocator", createLinearScanRegisterAllocator); Then createRegisterAllocator in CodeGen/Passes.cpp will pick up your allocator and list it as an option under -regalloc=<allocator>. If you pass is just doing some analysis and dumps you can either add a invocation of it to LLVMTargetMachine.cpp or make some other pass dependent on it. -Dave
2006 Sep 02
2
[LLVMdev] Adding register allocator to LLVM
On 9/2/06, Chris Lattner <sabre at nondot.org> wrote: > > Make sure to add it to Codegen/LinkAllCodegenComponents.h. I'm sure I did. I did so from the first time and I also needed to add my library .a file to the USEDLIBS variable within llc makefile to build llc. I wonder how lli links with all the rest LLVM as it seems to include no lib within its makefile. May be I need to
2006 Sep 02
0
[LLVMdev] Adding register allocator to LLVM
On Sat, 2 Sep 2006, Anton Vayvod wrote: > I'm sure I did. I did so from the first time and I also needed to add my > library .a file to the USEDLIBS variable within llc makefile to build llc. > I wonder how lli links with all the rest LLVM as it seems to include no lib > within its makefile. May be I need to include/link my lib somewhere else? Ah, that's probably it. Try
2007 Jul 09
0
[LLVMdev] Pluggable Register Coalescers
...d when I started the refactoring work. > > I'm in the midst of finishing up an implementation following the model of how > register allocators are selected. Thgere may be some more refactoring/code > sharing work to be done with this, but I want to get it working first. > > createRegisterAllocator() is called by addPassesToEmit.* to instantiate the > register allocator. > > Coalescing is a bit different. Typically, the register allocator is the > client of the coalescer. My original thought was to have each register > allocator implementation call createRegisterCoalescer d...
2005 May 17
2
[LLVMdev] Register Allocation problem
...owerGCPass()); PM.add(createLowerInvokePass()); PM.add(createLowerSwitchPass()); PM.add(createUnreachableBlockEliminationPass()); PM.add(create<MYTARGET>ISelSimple(*this)); if(PrintMachineCode) PM.add(createMachineFunctionPrinterPass(&std::cerr)); PM.add(createRegisterAllocator()); if(PrintMachineCode) PM.add(createMachineFunctionPrinterPass(&std::cerr)); PM.add(createPrologEpilogCodeInserter()); PM.add(create<MYTARGET>AsmPrinter(Out, *this)); PM.add(createMachineCodeDeleter()); " The backend target I'm writing is to a subset o...
2010 May 04
4
[LLVMdev] Register Allocation: Interference graph
David Greene wrote: > On Saturday 01 May 2010 08:34:50 Josef Eisl wrote: >> Hello, >> >> I want learn more about register allocation and do some analysis for a >> current research project. After reading some papers (eg. Chaitin, >> Briggs) I think its time to get my hands dirty :). > > Welcome! > >> First I plan to (re)implement some of the classic
2010 Sep 20
4
[LLVMdev] Supporting Complex Register Allocation Constraints (PBQP Allocator Status Update)
...nstraints to the PBQP problem. Just call back to the PBQPBuilder base to have the spill costs and interference constraints added for you, then iterate over the instructions in the MachineFunction and add any additional constraints for your architecture. Finally you'll need to add your own "createRegisterAllocator" function to the passmanager in your Target, and have this function construct a RegAllocPBQP (PBQP allocator) instance with your Builder. That should do it*. Summing up: The PBQP allocator remains solid, generates reasonable code, and has just been generalized to allow you to add custom regi...