similar to: [LLVMdev] adding a codegen pass into llvm

Displaying 20 results from an estimated 700 matches similar to: "[LLVMdev] adding a codegen pass into llvm"

2011 Jan 12
0
[LLVMdev] About adding a pass into llvm, cont
Hi, Thanks for your last reply. Could I understand the way to adding a pass (built into the llvm rather than dynamic loadable) includes: 1. Declaring a creator function for this pass 2. Implementing the creator function for this pass 3. Instantiating this pass and get a object of it 3. Register this pass into the PassRegistry Then, for a built-into bytecode pass, task 1(declaration of
2012 Oct 30
1
[LLVMdev] Error when trying to chain two llvm transform passes
On Oct 30, 2012, at 3:15 PM, Krzysztof Parzyszek <kparzysz at codeaurora.org> wrote: > On 10/30/2012 4:10 PM, Ashwin kumar wrote: >> >> Assertion failed: (PI && "Expected required passes to be initialized"), >> function schedulePass, file PassManager.cpp, line 597. >> >> >> I register the passes using RegisterPass function call.
2011 Jan 12
1
[LLVMdev] About adding a pass into llvm
I have seen INITIALIZE_PASS(LiveVariables, "livevars", "Live Variable Analysis", false, false); in the llvm/lib/codegen/LiveVariables.cpp, where LiveVariables is a subclass of MachineFunctionPass, and #define INITIALIZE_PASS(passName, arg, name, cfg, analysis) \ static RegisterPass<passName> passName ## _info(arg, name, cfg, analysis) in PassSupport.h Is this code used
2012 Oct 30
2
[LLVMdev] Error when trying to chain two llvm transform passes
Hi, I am trying to chain two transform passes. ** The first pass is a function pass which requires the 'memory dependence pass' . ** The second pass is a function pass which requires the first pass above. The passes run fine when executed alone. I get the following error when I try to run my second pass with the following code added > > void
2012 Oct 30
0
[LLVMdev] Error when trying to chain two llvm transform passes
On 10/30/2012 4:10 PM, Ashwin kumar wrote: > > Assertion failed: (PI && "Expected required passes to be initialized"), > function schedulePass, file PassManager.cpp, line 597. > > > I register the passes using RegisterPass function call. What else should > I be doing? Initializing them. Are you using INITIALIZE_PASS_DEPENDENCY, INITIALIZE_AG_DEPENDENCY,
2011 May 30
1
[LLVMdev] about writing a functionpass requiring a modulepass
---------- Forwarded message ---------- From: Qingan Li <ww345ww at gmail.com> Date: 2011/5/30 Subject: To: llvmdev at cs.uiuc.edu Hi, I wrote an analysis pass, myPass, inherited from both ModulePass and ProfileInfo, and this pass requires the CallGraph, i.e., * class myPass : public ModulePass, public ProfileInfo { ...};* * void myPass::getAnalysisUsage(AnalysisUsage &AU) const
2012 Jan 30
0
[LLVMdev] initializeNAMEPass(llvm::PassRegistry&) should have been declared inside 'llvm'
Hey all, So I've been working to fix a problem I had wherein I could not properly initialize AliasAnalysis profiling information. In order to fix it, I've had to rewrite how my pass operates, such that it contains this in the FunctionPass declaration; RelRecovery() : FunctionPass(ID) { llvm::initializeRelRecoveryPass(*PassRegistry::getPassRegistry()); } and contains these
2011 Sep 23
3
[LLVMdev] statically link pass to clang
Hi all, A question about statically linking a pass to clang instead of dynamically loading it at runtime. I am stumped on this bug for a while. I inserted a pass under lib/Transforms/mypass directory, registered it with INITIALIZE_PASS and defined createMyPass in the pass. Also I added file mypass.h in include/llvm/Transforms/ to expose the accessor functions that expose my passes. Entries are
2011 May 16
2
[LLVMdev] Upgrading to llvm-2.9
Hi, Is the RegisterPass interface still supported, or do we have to use the INITIALIZE_PASS construct to register passes? Thanks, Arushi -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110516/98bc0ab0/attachment.html>
2013 Jun 24
0
[LLVMdev] About writing a modulePass in addPreEmitPass() for NVPTX
I try to use INITIALIZE_PASS instead of RegisterPass<> to register my pass, though I don't understand what's their difference and how it works because its documents doesn't exist. But it still doesn't work. Parts of my codes is as follows: in NVPTXTest.h namespace llvm { void initializeNVPTXTestPass(PassRegistry &r); class NVPTXTest : public ModulePass { public:
2011 May 16
0
[LLVMdev] Upgrading to llvm-2.9
namespace llvm { class PassRegistry; void initializeFooPass(PassRegistry&); } using namespace llvm; namespace { class Foo : public ModulePass { public: static char ID; Foo() : ModulePass(ID) { initializeFooPass(*PassRegistry::getPassRegistry()); } bool runOnModule(Module& M) { M.dump(); return false; } }; } char Foo::ID = 0;
2013 Jun 22
2
[LLVMdev] About writing a modulePass in addPreEmitPass() for NVPTX
I write my pass in a mix way of NVPTXAllocaHoisting, NVPTXSplitBBatBar and transforms/Hello. The following is part of the codes: in NVPTXTargetMachine.cpp bool NVPTXPassConfig::addPreEmitPass() { addPass(createTest()); return false; } in NVPTXTest.h namespace llvm{
2015 Sep 27
2
Registering a MachineFunctionPass
Dear all, I wrote a machine function pass to run with llc. But I get this error while building: "/home/erdem/llvm/lib/CodeGen/CodeGen.cpp:80: error: undefined reference to 'llvm::initializeNoopInserterPass(llvm::PassRegistry&)'" NoopInserter is the name of my pass. I already added this line to InitializePasses.h: "void
2010 Oct 15
2
[LLVMdev] [LLVMDev] Trouble Linking
I'm sorry, I don't know what you were looking for. The first 5 were scattered amidst different e-mails. The others have to do with following what "RAFast" and "RALinScan" as examples. It's a linker error, and I do not know why only opt and bugpoint does not compiler, and why llc does not show my reg alloc pass anymore. It worked before the API change e-mail was
2013 Mar 15
2
[LLVMdev] write a simple MachineFunctionPass
Hello everyone, I have written several complex passes till now, but I cannot write a MachineFunctionPass pass. It just gives me segfault. Hence I reduced the pass to the following form : using namespace llvm; namespace { class CFGexplorator : public MachineFunctionPass { public: static char ID; // Pass identification, replacement for typeid CFGexplorator() : MachineFunctionPass(ID)
2013 Jan 24
1
[LLVMdev] llvm pass INITIALIZE
Hello everyone, Till now I have succesfully running passes using RegisterPass template. I have encountered a segfault in my pass. Assertion `AA && "AA didn't call InitializeAliasAnalysis in its run method!"' failed. Then, I tried to use INITIALIZE_PASS_XXXX or INITIALIZE_AG_PASS template, together with `*llvm::createMyMemDepPrinter()` and
2013 Mar 15
0
[LLVMdev] write a simple MachineFunctionPass
I found that : "Code generator passes are registered and initialized specially by TargetMachine::addPassesToEmitFile and similar routines, so they cannot generally be run from the *opt* or *bugpoint* commands."...So how I can run a MachineFunctionPass? In the end, I just want to apply a DFS on a CFG of a function. And I need oriented edges and wanted to use
2010 Jan 22
1
[LLVMdev] debugging a pass for LTO
Thank you very much for your suggestions. That's very helpful. However, since I'm trying to compile several somewhat large projects, I assume generating bitcode for each single file and linking them together might be painful (I don't want to modify too much the project makefiles). So I hope my pass can be used just with simple compilation command like "llvm-gcc
2017 Jun 08
4
DICompileUnit duplication in LLVM 4.0.0?
All, I'm seeing duplication of DICompileUnits in a pass that worked in 3.8. I assume I'm doing something wrong. Would someone be willing to point me in the right direction? The below minimized pass reproduces my issue in 4.0 with the following error: DICompileUnit not listed in llvm.dbg.cu !1707 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang
2013 Jun 24
2
[LLVMdev] About writing a modulePass in addPreEmitPass() for NVPTX
Sorry for the delay. Yeah, that error message is a bit confusing. What's happening is that your pass sequence is invalid. Once the IR has been lowered to machine code, its too late to run LLVM IR passes (ModulePass, FunctionPass, CallGraphSCCPass, etc.). At that point, you need to run a Machine*Pass, e.g. MachineFunctionPass. If you need to run an IR level pass, you need to use