similar to: [LLVMdev] Pass management

Displaying 20 results from an estimated 400 matches similar to: "[LLVMdev] Pass management"

2017 Nov 30
2
TwoAddressInstructionPass bug?
Hi, we are in the midst of an interesting work that begun with setting 'guessInstructionProperties = 0' in the SystemZ backend. We have found this to be useful, and discovered many instructions where the hasSideEffects flag was incorrectly set while it actually shouldn't. The attached patch and test case triggers an assert in TwoAddress.  (bin/llc ./tc_TwoAddr_crash.ll
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 Jun 03
1
[LLVMdev] Help with pass ordering
Dear llvm guys, I am trying to add the BreakCriticalEdges pass to my application. I tried to add it to the PNE pass (e.g. PHIElimination.cpp - AU.addRequiredID(BreakCriticalEdgesID); ), but I get this error: llc -f -regalloc=simple Base1Sum.bc -o simple.s ----------------------------------------------- llc: PassManagerT.h:387: void llvm::PassManagerT<Trait>::markPassUsed(const
2006 May 03
2
[LLVMdev] Conflicting passes?
Hi all, Why are these two passes conflicting: UnifyFunctionExitNodes and LowerSwitch? AU.addRequired(LowerSwitchID) works, so does AU.addRequired<unifyFunctionExitNodes>(), but the two together don't... opt: PassManagerT.h:387: void llvm::PassManagerT<Trait>::markPassUsed(const llvm::PassInfo*, llvm::Pass*) [with Trait = llvm::MTraits]: Assertion `getAnalysisOrNullUp(P)
2013 Nov 06
0
[LLVMdev] MachineInstr::isSafeToMove()
Hi, I have a question regarding this method, as i have discovered a case where it seems very far from 'strict'. I had two MI's, A and B, where A is !isSafeToMove(): A B TwoAddress pass changes the order to B A , as it reschedules the LastKill MI (B). Is this a bug in TwoAdress, or is it the case that isSafeToMove() is weaker than isSchedulingBoundary() so that these indirect
2007 Mar 26
2
[LLVMdev] Problems with one pass using another
Hi, I have two function passes: AvailOut and HashGVN. AvailOut needs to use HashGVN. And they're built in the same shared object file. But addRequired<HashGVN> fails with this error: # opt -load ../../../build/Release/lib/LLVMGVN.so -hashgvn -availout --debug-pass=Structure <basic.s.bc >basic.out.bc opt: /proj/tbres/shanth/llvm/llvm-1.9/lib/VMCore/PassManagerT.h:387: void
2004 Aug 05
2
[LLVMdev] How to get LoopInfo within Pass subclass?
Hi, I have a hopefully quick question. I'm writing a Pass that needs to see a whole module at a time and keep some state, so I subclassed Pass. However, I want to be able to see the Loops in each Function. Roughly, here's what I want: virtual bool run(Module &M){ // do stuff... for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I){ if(! I->isExternal())
2006 Mar 22
1
[LLVMdev] problem loading analysis results from Inliner pass
On Tue, 21 Mar 2006, Michael McCracken wrote: > opt: /home/mmccrack/lens/obj-llvm-darcslocal/../llvm-darcslocal/llvm/lib/VMCore/PassManagerT.h:426: > void llvm::PassManagerT<UnitType>::markPassUsed(const llvm::PassInfo*, > llvm::Pass*) [with UnitType = llvm::Module]: Assertion > `getAnalysisOrNullUp(P) && > dynamic_cast<ImmutablePass*>(getAnalysisOrNullUp(P))
2004 Aug 06
0
[LLVMdev] How to get LoopInfo within Pass subclass?
On Thu, 5 Aug 2004, Michael McCracken wrote: > Hi, I have a hopefully quick question. I'm writing a Pass that needs to > see a whole module at a time and keep some state, so I subclassed Pass. > However, I want to be able to see the Loops in each Function. Roughly, ok. > However, when running I'm informed that: > > PassManagerT.h:421: failed assertion
2006 May 30
3
[LLVMdev] Adding an object to llc (analysis pass)
Hi > One would expect this, its a facility of the C++ language. The anonymous > namespace is, essentially, the same as declaring everything in it > static. That is, the symbols are not exported and not available for > linking. Yes, it was pretty clear after finding out that this isn't a linking error which i suspected... > > So for all those trying to add an analysis path:
2006 Mar 21
0
[LLVMdev] problem loading analysis results from Inliner pass
A On 3/21/06, Michael McCracken <michael.mccracken at gmail.com> wrote: > On 3/21/06, Chris Lattner <sabre at nondot.org> wrote: > > On Mon, 20 Mar 2006, Michael McCracken wrote: > > > > > Hi, I'm trying to access an analysis pass from the Inliner pass, and > > > I'm having a lot of trouble getting that to work - I can verify that > >
2006 Jun 27
2
[LLVMdev] Mapping bytecode to X86
Thank you Chris. I will try to implement the TwoAddress pass to run on machine code. Why it has not been originally implemented to run on machine code? Is there anything that makes it troublesome after RA has been performed? Could you tell me if the transformations below are correct? 1) a := b op c --> a := b --> a := b a := a op c a
2012 Oct 31
2
[LLVMdev] problem trying to write an LLVM register-allocation pass
I'm trying to write a MachineFunctionPass to do register allocation. I have code that worked with an old version of LLVM. It does not work with llvm-3.1. (or various other versions that I've tried). The first problem is that including this line: AU.addRequiredID(TwoAddressInstructionPassID); in method getAnalysisUsage causes a runtime error: Unable to schedule 'Eliminate PHI
2006 Jun 27
2
[LLVMdev] Mapping bytecode to X86
> > Thank you Chris. I will try to implement the TwoAddress pass to run on > > machine code. Why it has not been originally implemented to run on > > machine code? > > I'm not sure what you mean. It definitely does run on machine code. I was thinking that it only transformed instructions with virtual registers because of this code in the TwoAddressInstructionPass.cpp:
2006 Jun 27
0
[LLVMdev] Mapping bytecode to X86
On Mon, 26 Jun 2006, Fernando Magno Quintao Pereira wrote: > Thank you Chris. I will try to implement the TwoAddress pass to run on > machine code. Why it has not been originally implemented to run on > machine code? I'm not sure what you mean. It definitely does run on machine code. > Is there anything that makes it troublesome after RA > has been performed? Do you
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
2017 Nov 30
0
TwoAddressInstructionPass bug?
Hi Jonas, Thanks for bringing that up. > On Nov 30, 2017, at 4:04 AM, Jonas Paulsson via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi, > > we are in the midst of an interesting work that begun with setting 'guessInstructionProperties = 0' in the SystemZ backend. We have found this to be useful, and discovered many instructions where the hasSideEffects flag
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 =
2012 Nov 01
0
[LLVMdev] problem trying to write an LLVM register-allocation pass
Hi Susan, I'm having trouble reproducing that error on my end, but I think the problem is probably that you're not using the VirtRegRewriter infrastructure. What your allocator needs to do is populate the virtual register mapping (VirtRegMap pass) with your allocation, rather than rewriting the registers directly through MachineRegisterInfo. Have your allocator require and preserve the
2013 Jul 20
2
[LLVMdev] AsmPrinter
Hi, I would like to access the AsmPrinter MachineFunctionPass during compilation in order to do alternative dumping of instructions, instead of using MI->dump(), which can get a bit messy. Is there any way to access this object or the assembler strings? It seems that even these strings / methods are not available through any static methods. Does it exist during the whole compilation or is it