similar to: [LLVMdev] PHI Elimination in Register Allocation Pass

Displaying 20 results from an estimated 800 matches similar to: "[LLVMdev] PHI Elimination in Register Allocation Pass"

2015 Sep 04
2
LiveInterval and Loop Info
Thanks Matthias I can also use the method intervalIsInOneMBB() from LiveIntervals class to relate a LiveInterval to a MachineBasicBlock, right? Em 04/09/2015 2:26 PM, "Matthias Braun" <mbraun at apple.com> escreveu: > There is no direct support for this, but you can use > LiveIntervalAnalysis::getMBBStartIndex()/getMBBEndIndex()/getMBBFromIndex() > to relate the
2015 May 20
2
[LLVMdev] Implement a Register Allocator in LLVM
I'm working on my project for completion undergraduate courses, consisting of an experimental analysis of registers allocation algorithms. For this task, I am using the set of tools from the LLVM project. However, I have read the documentation of the LLVM project and not yet found a way to put the pieces of the puzzle together. So far I know: - As passes work as engage them to LLVM and
2015 Sep 03
2
LiveInterval and Loop Info
Hello to all LLVM Developers. Given a object from a LiveInterval class, is there any way to know if this Live Interval is part or is inside a loop? Att -- 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:
2015 Sep 03
2
LLVM and strict SSA
Hello to all LLVM Developers. The LLVM IR is in strict SSA form (i.e. every variable is defined before it is used along every path from the entry to exit point)? According to the documentation, currently the LLVM IR is in the SSA form, but I don't see additional information about *strict* SSA form. The strict SSA form provide opportunities of optimization in register allocation, because is
2015 Sep 01
2
Spilling Virtual Registers
Hello to all LLVM developers. I'm developing a register allocator using LLVM, my allocator has a local search phase: given a solution (assignment of virtual registers to physical registers or memory) generated in the first phase of the algorithm, some movements are applied to this solution in order to find a better solution. To apply such movements, I need to unassign a virtual register from
2015 Nov 19
2
Build a Interference Graph
Ok, just to clarify, RegUnits, as far I understand, are Physical registers or alias to Physical registers. They exist because some instructions use physical registers directly rather than virtual register. It's right? And why this RegUnits should be present in the Interference Graph? I thought were only the Live Intervals would be the nodes of the graph. Sorry about the trouble to
2013 Feb 19
1
[LLVMdev] Problem to run SPEC2006
Actually I am trying to run SPEC2006 through the Makefiles provided with LLVM Test Suite, so I think it should work properly... On 18 February 2013 15:49, Adhemerval Zanella <azanella at linux.vnet.ibm.com>wrote: > I can't really tell what is happening based on this output, but 'make' is > not the right way > to build SPECcpu2006 components. You need to do either by
2013 Mar 03
1
[LLVMdev] Can a Function Pass require a Module Pass?
Dear LLVMers, I am implementing a Function Pass and I would like to use analysis obtained from a Module Pass. Some extracts of my code look like that: struct MyPass : public FunctionPass { static char ID; MyPass() : FunctionPass(ID) { PADriver &PD = getAnalysis<AModulePass>(); ... virtual void getAnalysisUsage(AnalysisUsage &AU) const{
2013 Feb 18
2
[LLVMdev] Problem to run SPEC2006
Dear LLVMers, I am having trouble to run SPEC2006. I have checked in my log file that the spec root has been correctly found with ./configure, but when I try: make TEST=simple in the External folder I get the following error: make -C /home/izabela/svn_llvm/llvm/projects/test-suite/tools all \ ORIGINAL_CC="clang" \ ORIGINAL_CXX="clang" make[1]: Entering directory
2013 Feb 18
0
[LLVMdev] Problem to run SPEC2006
I can't really tell what is happening based on this output, but 'make' is not the right way to build SPECcpu2006 components. You need to do either by using the supplied 'runspec' command with '-build' action directive or to issue the 'specmake' (which is a make adjusted by spec.org) on the build component folder. I can build 433.milc on PPC64 with clang without
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 =
2006 Sep 09
1
[LLVMdev] Help with pass registration
> > 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, 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
2010 Oct 05
0
[LLVMdev] [LLVMDev] Phi elimination: Who does what
There is nothing that currently handles this properly, as far as I know. If you have a phi c = phi(a, b) where a, b and c are all assigned distinct stack slots, then copies must be inserted in the predecessor. If registers have already been allocated, then this memory copy might require a temporary register (unless you're on an architecture like x86 that lets you do memory-to-memory copies
2010 Oct 05
2
[LLVMdev] [LLVMDev] Phi elimination: Who does what
The allocator you are building, is it the Hack's and Goos's polynomial time algorithm? On Tue, Oct 5, 2010 at 7:14 PM, Cameron Zwarich <zwarich at apple.com> wrote: > There is nothing that currently handles this properly, as far as I know. If you have a phi > > c = phi(a, b) > > where a, b and c are all assigned distinct stack slots, then copies must be inserted in
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
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
For spilling, I plan to use the Hack-Braun generalization of the furthest-first heuristic for SSA: http://pp.info.uni-karlsruhe.de/uploads/publikationen/braun09cc.pdf For coloring, there are a few different approaches you can take, e.g. dominator tree scan, puzzle-solving, or a modified graph coloring / coalescing heuristic like IRC. The best quality for the least amount of implementation effort
2011 Jun 08
3
[Bug 721] New: iptables-1.4.11 does not accpet raw udp ports
http://bugzilla.netfilter.org/show_bug.cgi?id=721 Summary: iptables-1.4.11 does not accpet raw udp ports Product: iptables Version: unspecified Platform: i386 OS/Version: other Status: NEW Severity: enhancement Priority: P5 Component: iptables AssignedTo: netfilter-buglog at lists.netfilter.org