search for: phieliminationid

Displaying 11 results from an estimated 11 matches for "phieliminationid".

Did you mean: phielimination
2015 Jul 09
3
[LLVMdev] PHI Elimination in Register Allocation Pass
...er the register allocation phase. And I intend to implement the allocator registers using the resources of SSA representation, making this step (*PHI Elimination*) vital for development. Looking at the source code of allocators of LLVM, I see no explicit call of PHI Elimination (*AU.addRequiredID (PHIEliminationID)*), my question is whether if this step is called, occurs when and where such a call? -- Natanael Ramos Membro do corpo discente de Ciência da Computação pelo Instituto Federal de Minas Gerais - Campus Formiga -------------- next part -------------- An HTML attachment was scrubbed... URL: <htt...
2005 Jul 29
1
[LLVMdev] How to define a pass requiring a register allocation pass?
How to define a MachineFunctionPass requireing one of the register allocation passes being executed first? Should there be a PassInfo for register allocation in Pass.h? Pass.h: namespace llvm { extern const PassInfo *PHIEliminationID; extern const PassInfo *TwoAddressInstructionPassID; extern const PassInfo *RegisterAllocationPassID; // <-- add this one? There are four register allocation passes in CodeGen, but I don't know which one will be used unitl run-time (the register allocator is chosen by a co...
2006 Sep 09
1
[LLVMdev] Help with pass registration
...AnalysisUsage method look like? > Chris, I think I've figured the problem out. I have a very basic question though. What is the difference between addRequired, and addRequiredID? For instance, in RegAllocLocal.cpp, you have both: AU.addRequired<LiveVariables>(); AU.addRequiredID(PHIEliminationID); When should I use one, and when the other should be used? Thanks a lot, Fernando
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...
2010 Oct 05
0
[LLVMdev] [LLVMDev] Phi elimination: Who does what
...normal phi elimination before register allocation. I am also writing an SSA-based register allocator for LLVM; perhaps we can share some code in common passes. Cameron On Oct 5, 2010, at 6:02 PM, Jeff Kunkel wrote: > 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: >...
2010 Oct 05
2
[LLVMdev] [LLVMDev] Phi elimination: Who does what
...allocation. > > I am also writing an SSA-based register allocator for LLVM; perhaps we can share some code in common passes. > > Cameron > > On Oct 5, 2010, at 6:02 PM, Jeff Kunkel wrote: > >> 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 th...
2006 Sep 09
2
[LLVMdev] Help with pass registration
Dear guys, I have updated my LLVM to the top of CVS, and now I am getting errors like this one below when I write new passes: "llc: PassManagerT.h:387: void llvm::PassManagerT<Trait>::markPassUsed(const llvm::PassInfo*, llvm::Pass*) [with Trait = llvm::FTraits]: Assertion `getAnalysisOrNullUp(P) && dynamic_cast<ImmutablePass*>(getAnalysisOrNullUp(P)) &&
2006 Sep 09
0
[LLVMdev] Help with pass registration
On Fri, 8 Sep 2006, Fernando Magno Quintao Pereira wrote: > I have updated my LLVM to the top of CVS, and now I am getting > errors like this one below when I write new passes: What does your getAnalysisUsage method look like? -Chris > "llc: PassManagerT.h:387: void > llvm::PassManagerT<Trait>::markPassUsed(const llvm::PassInfo*, > llvm::Pass*) [with Trait =
2010 Oct 06
0
[LLVMdev] [LLVMDev] Phi elimination: Who does what
...writing an SSA-based register allocator for LLVM; perhaps we can share some code in common passes. >> >> Cameron >> >> On Oct 5, 2010, at 6:02 PM, Jeff Kunkel wrote: >> >>> 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....
2010 Oct 05
0
[LLVMdev] [LLVMDev] Phi elimination: Who does what
At the moment, phi elimination happens before register allocation, so there can be no phis between memory locations. Cameron On Oct 5, 2010, at 4:19 PM, Jeff Kunkel wrote: > When doing phi elimination, does one have to communicate with the > stack space at all? The problem I see is two distinctly different > registers may have two distinctly different stack spaces. When these >
2010 Oct 05
2
[LLVMdev] [LLVMDev] Phi elimination: Who does what
When doing phi elimination, does one have to communicate with the stack space at all? The problem I see is two distinctly different registers may have two distinctly different stack spaces. When these registers are combined in a phi, the values the registers point to needs to be moved, combined, or otherwise taken care of. I understand this is the job of the stack space colorer, but when doing phi