search for: demoteregistertomemoryid

Displaying 7 results from an estimated 7 matches for "demoteregistertomemoryid".

2010 Oct 20
5
[LLVMdev] Pass Incompatibility
...ve a transformation where I'd like to use both DominatorTree (for ExtractCodeRegion), and DemoteRegisterToMemory (i.e., reg2mem). The transformation is phased, so all occurrences of getAnalysis<DominatorTree>(Function) happen before any occurrence of getAnalysisID<FunctionPass>(&DemoteRegisterToMemoryID, Function). If I register these two passes with DominatorTree first, I get the following assert. PassAnalysisSupport.h:239: AnalysisType& llvm::Pass::getAnalysisID(const void*, llvm::Function&) [with AnalysisType = llvm::DominatorTree]: Assertion `ResultPass && "Unable to fin...
2010 Oct 20
0
[LLVMdev] Pass Incompatibility
...ve a transformation where I'd like to use both DominatorTree (for ExtractCodeRegion), and DemoteRegisterToMemory (i.e., reg2mem). The transformation is phased, so all occurrences of getAnalysis<DominatorTree>(Function) happen before any occurrence of getAnalysisID<FunctionPass>(&DemoteRegisterToMemoryID, Function). I believe that reg2mem is a transform pass, correct? If so, then you should not be making it a prerequisite for your pass. Instead, whatever is scheduling the set of transform passes (e.g, the user on the opt command line or the source code that schedules your pass to be run with...
2010 Oct 20
0
[LLVMdev] Pass Incompatibility
On Oct 20, 2010, at 4:05 AM, Luke Dalessandro wrote: > If I register DemoteRegisterToMemoryID first I'd expect this to work. > then I get this assert during code extraction. > > CodeExtractor.cpp:681: llvm::Function*<unnamed>::CodeExtractor::ExtractCodeRegion(const std::vector<llvm::BasicBlock*, std::allocator<llvm::BasicBlock*> >&): Assertion `BlocksT...
2011 Jun 20
0
[LLVMdev] run -mem2reg and -reg2mem programmably from within a Pass
I guess AU.addRequiredID(DemoteRegisterToMemoryID) would do the trick. - xi On Jun 19, 2011, at 11:03 PM, Chuck Zhao wrote: > I am currently building a BasicBlock pass which requires to run -reg2mem before it, and need to run -mem2reg after it to clean up. > > So, I want to specify -reg2mem as one of the pre-requisite passes to it, as...
2006 Jul 25
1
[LLVMdev] Dubious Library Dependencies
...Gen.a: libLLVMipo.a(PATypeHolder::get() const) libLLVMArchive.a: libLLVMCore.a(Module::~Module) libLLVMAsmParser.a: libLLVMSupport.a(IncludeFile::IncludeFile(void*) libLLVMCBackend.a: libLLVMAnalysis.a(llvm::LoopInfoLinkVar) libLLVMInstrumentation.a: libLLVMScalarOpts.a(llvm::DemoteRegisterToMemoryID) LLVMIA64.o: libLLVMCodeGen.a(vtable for llvm::DefaultIntrinsicLowering) libLLVMTarget.a: libLLVMCodeGen.a( llvm::MVT::getVectorType(llvm::MVT::ValueType, unsigned int)) The following dependencies is not a singleton, but they it just seemed dubious to me that "Transfor...
2011 Jun 20
2
[LLVMdev] run -mem2reg and -reg2mem programmably from within a Pass
I am currently building a BasicBlock pass which requires to run -reg2mem before it, and need to run -mem2reg after it to clean up. So, I want to specify -reg2mem as one of the pre-requisite passes to it, as: class MyPass: public BasicBlockPass{ virtual void getAnalysisUsage(AnalysisUsage &AU){ ... AU.addRequired<RegToMem>(); ... } }; I searched all passes under
2010 Oct 12
1
[LLVMdev] Specify dominator for BasicBlock to avoid "Instruction does not dominate all uses!"
Hi, I tried adding the PHI nodes in BB_unique, and it works for the simple case described here, but in case the nodes were declared in some predecessors of ExitBB1 and used in ExitBB1_redirect and its successors, it won't work, unless I create entries for all of them in BB_unique. B1 (declares PHI_1) B3 | | B2