search for: passregist

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

Did you mean: passregistry
2011 Nov 08
2
[LLVMdev] loadable passes with dependencies?
...Passes(const llvm::PassManagerBuilder &Builder, llvm::PassManagerBase &PM) { PM.add(llvm::createPromoteMemoryToRegisterPass()); // create my own createHelloPass() method? } static llvm::RegisterStandardPasses PassRegister(llvm::PassManagerBuilder::EP_EarlyAsPossible, registerPollyPasses); I'm not sure how to code a possible createHelloPass, as the constructor for my class takes a argument(ID for ModulePass). Thanks On Tue, Nov 8, 2011 at 4:10 AM, Tobias Grosser <tobias at grosser.es&...
2011 Nov 08
0
[LLVMdev] loadable passes with dependencies?
...amp;Builder, > llvm::PassManagerBase&PM) { > PM.add(llvm::createPromoteMemoryToRegisterPass()); > // create my own createHelloPass() method? > } > > static llvm::RegisterStandardPasses > PassRegister(llvm::PassManagerBuilder::EP_EarlyAsPossible, > registerPollyPasses); > > I'm not sure how to code a possible createHelloPass, as the > constructor for my class takes a argument(ID for ModulePass). This is the code interesting to you: 66 void initializePoll...
2011 Nov 07
0
[LLVMdev] r139934 requires (correct?) code organization changes
...egistered! UNREACHABLE executed at <root dir>/llvm/include/llvm/Support/PassNameParser.h:73! Prior to patch r139934 (prior to the default platform's installed clang building clang and llvm), this example works fine. From a llvm pass internals perspective this is because PassNameParser::passRegistered(...) tries to add a new option containing info for a pass; in this case the DominatorTree pass. The state of the system asserts because a DominatorTree pass option has already been created. This is perplexing since this means that the atomic compare and swap operation on static var "initi...
2011 Nov 08
0
[LLVMdev] loadable passes with dependencies?
...o remain loadable by opt. The > pass also requires DominatorTree(for PromoteMemToReg). > > Looking for examples the only way I found to require a dependecny is > by doing something like this: > char Hello::ID = 0; > namespace llvm { void initializeHelloPass(llvm::PassRegistry&); } > INITIALIZE_PASS_BEGIN(Hello, "hello", "Hello World Pass", false, true) > INITIALIZE_PASS_DEPENDENCY(DominatorTree) > INITIALIZE_PASS_END(Hello, "hello", "Hello World Pass", false, true) > > Unfortunately...
2011 Nov 08
2
[LLVMdev] loadable passes with dependencies?
...t " "'required' by pass!"), function getAnalysisID But I already have: void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<DominatorTree>(); } And changed the bottom of my pass too: char Hello::ID = 0; namespace llvm { void initializeHelloPass(llvm::PassRegistry&); } INITIALIZE_PASS_BEGIN(Hello, "hello", "Hello World Pass", false, true) INITIALIZE_PASS_DEPENDENCY(DominatorTree) INITIALIZE_PASS_END(Hello, "hello", "Hello World Pass", false, true) class StaticInitializer { public: StaticInitializer() { PassRe...
2011 Nov 08
2
[LLVMdev] loadable passes with dependencies?
...ting a Pass that I would like to remain loadable by opt. The pass also requires DominatorTree(for PromoteMemToReg). Looking for examples the only way I found to require a dependecny is by doing something like this: char Hello::ID = 0; namespace llvm { void initializeHelloPass(llvm::PassRegistry&); } INITIALIZE_PASS_BEGIN(Hello, "hello", "Hello World Pass", false, true) INITIALIZE_PASS_DEPENDENCY(DominatorTree) INITIALIZE_PASS_END(Hello, "hello", "Hello World Pass", false, true) Unfortunately this gives me(when I try to...
2020 Jul 22
6
New pass manager for optimization pipeline status and questions
Hi all, I wanted to give a quick update on the status of NPM for the IR optimization pipeline and ask some questions. In the past I believe there were thoughts that NPM was basically ready because all of check-llvm and check-clang passed when -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=ON was specified. But that CMake flag did not apply to opt and any tests running something like `opt -foo-pass
2015 Feb 24
2
[LLVMdev] Removing contention in PassRegistry accesses to speed up compiles
Hi, We use LLVM libraries to compile C++ code and noticed slow downs when multiple threads of a process were compiling at once. *perf *indicated that most of the CPU time was spent in a spin lock, which was being locked/unlocked from llvm::PassRegistry::getPassInfo(). We read the relevant LLVM code and found out that PassRegistry is a ManagedStatic and is shared among all threads in case of a multi-threaded setup. This sharing requires locking in PassRegistry's method, which becomes source of the contention. To get rid of the contention, w...