similar to: [LLVMdev] Fake Exit node

Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] Fake Exit node"

2002 Nov 29
2
[LLVMdev] Fake Exit node
On Fri, 29 Nov 2002, Anand Shukla wrote: > There is a pass "UnifyFunctionExitNodes()" (you can add it to AnalysisUsage > of your pass) that does the trick. Yup, just like Anand says, this pass will make it so that there is at most one exit node from the function, which you can use for your analysis (it will even tell you which BB that is too). Note that a function may _not_ have
2002 Dec 06
1
[LLVMdev] WRT: function pointers + DSG
LLVM, What do I pass into the DSG in order to access the globals vector of functions that a function pointer may be calling. The code: CallInst *calli = dynamic_cast<CallInst*>(*i); std::vector<GlobalValue*> funcVect = theGraph.getNodeForValue(calli->getCalledFunction()).getNode()->getGlobals(); Doesn't appear to work... getCalledFunction() returns 0 Dave On Fri, 6 Dec
2002 Nov 29
0
[LLVMdev] Fake Exit node
There is a pass "UnifyFunctionExitNodes()" (you can add it to AnalysisUsage of your pass) that does the trick. -anand ----- Original Message ----- From: "David Crowe" <dcrowe at tremor.crhc.uiuc.edu> To: <llvmdev at cs.uiuc.edu> Sent: Friday, November 29, 2002 4:58 PM Subject: [LLVMdev] Fake Exit node > Is there a facility with which we may automagically
2002 Nov 30
0
[LLVMdev] Fake Exit node
How do I get this pass to work within my own ModulePass? I get this error: Running getAnalysisUsage() Assertion failed: 0 && "Pass available but not found! " "Perhaps this is a module pass requiring a function pass?", file PassManagerT.h, line 395 Abort Thanks, Dave On Fri, 29 Nov 2002, Chris Lattner wrote: > On Fri, 29 Nov 2002, Anand Shukla wrote: > >
2002 Nov 08
1
[LLVMdev] Iterating on the DSGraph... (fwd)
I use the following code to do the depth first search on the DSGraph. And I always got this error message. Couldn't figure out what's wrong. Could you please let me know? Besides, I really have no idea about what those functions do. Is there any documentation about DSGraph functions besides the pool allocation paper? Thanks, xiaodong Code: for( df_iterator<DSNode*> I =
2006 May 03
1
[LLVMdev] Patch for transform dependencies
Hi, A number of transforms are actually independent, so here's a partial fix. I updated the dependencies in a cluster of transforms: LowerSwitch, Mem2Reg, LowerSelect, LowerAllocations, UnifyFunctionExitNodes. The patch has been tested, but not extensively. PassManager doesn't complain, and the result of a test pass that requires all these (except for LowerAllocations) together works
2005 Dec 09
1
regarding inline asm syntax in tremor Vorbis
Hi all The inline asm in Revision 10571: /trunk/Tremor file asm_arm.h seems to be in x86 inline assembly format. is there a code which is compatible with ARM/Thumb C/C++ Compiler, RVCT2.2,along with libvorbis-1.1.2 release. regards anand -------------- next part -------------- An HTML attachment was scrubbed... URL:
2010 Mar 31
2
[LLVMdev] CFG entry and exit blocks
On Mar 30, 2010, at 7:51 PM, John Criswell wrote: > I'm too lazy to convert your .dot file into a graph file What format should I have posted? (I'm not sure what you mean by "graph file".) I had thought that .dot was the preferred format here, since that's what LLVM generates (e.g., "opt -dot-cfg ..."). > First, LLVM does not guarantee that a function
2010 Jul 22
3
[LLVMdev] Controlling the order of a FunctionPass
On Jul 22, 2010, at 2:05 PM, John Criswell wrote: > If you write your pass as a ModulePass, then you can iterate over the > functions in any order that you want. I had considered that, but my FunctionPass depends on other passes processing the functions first: void MyPass::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<UnifyFunctionExitNodes>();
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)
2010 Mar 31
0
[LLVMdev] CFG entry and exit blocks
Dear Trevor, I'm too lazy to convert your .dot file into a graph file, but I'll make some comments anyway. :) First, LLVM does not guarantee that a function has a single exit block. Multiple basic blocks can have a return instruction as their terminator instruction. There is a pass (Unify Function Exit nodes i.e., -mergereturn <http://llvm.org/docs/Passes.html#mergereturn>)
2008 Dec 09
2
[LLVMdev] How to get the total number of variables in a funciton?
Hi, all; How can I get the number of variables in a function/module (both the number of variables in original source program and the number of temporal variables for ssa-form)? I’m dealing with some dataflow analysis problem and need the information of variables. Appreciate any help. Thanks. Star.Tan -------------- next part -------------- An HTML attachment was scrubbed... URL:
2007 Mar 18
4
[LLVMdev] idf_iterator and MachineFunctions
Hi, I need to do an inverse-depth-first iteration over the basic blocks in a machine function (i.e. starting from the last block and following predecessor edges) for a liveness analysis I'm writing. idf_iterator seems like it's almost the class I need, but it starts at the first block in the function at present, rather than the last one (because of the specialisiation of GraphTraits for
2019 Mar 24
3
call an existing IPO pass
Hi, I found an existing pass "CalledValuePropagation" that can solve the problem I raised a few days ago regarding the "callees" metadata ( https://groups.google.com/forum/#!topic/llvm-dev/yjtZVMH_aC4). Now I have difficulty in calling this pass in my own pass. In my own pass, I called "getAnalysis<CalledValuePropagationPass>()" and in the
2010 Mar 31
2
[LLVMdev] CFG entry and exit blocks
Hi, I'm confused about the entry and exit blocks of an LLVM CFG. I understand that every CFG has one and only one entry block, and this is confirmed by the existence of the getEntryBlock function in the Function class. But what about exit (a.k.a. return) blocks? At first I assumed that LLVM CFGs have one and only one exit block, too, but the following code is a counter-example:
2004 Sep 21
6
Vorbis decoder sample code
Hi, I'm a Pocket PC developer and have created a audio translator application on this platform. I currently make use of an MP3 decoder engine, but due to heavy licensing fees I'm thinking of switching over to a patent free format. Vorbis presents the best approach. I read that tremor decoder has been especially optimized for embedded devices. I'd like to make use of this and
2010 Mar 31
0
[LLVMdev] CFG entry and exit blocks
On Wed, Mar 31, 2010 at 2:59 PM, Trevor Harmon <trevor.w.harmon at nasa.gov> wrote: > I'm wondering what would cause a CFG not to have a return block. The > comments in UnifyFunctionExitNodes.cpp say: "If there are no return > stmts in the Function, a null pointer is returned." But this doesn't > make sense; even an empty void function has a return block with a
2008 Dec 15
0
[LLVMdev] How to get the total number of variables in a funciton?
Mingxing Tan wrote: > > Hi, all; > > How can I get the number of variables in a function/module (both the > number of variables in original source program and the number of > temporal variables for ssa-form)? > Do you want the SSA values *created* by a function, those used by a function, or both? For SSA values, simply iterate over all of the instructions within the
2007 Aug 15
3
[LLVMdev] c const
I don't mean to be a pain, but I was thinking about this a bit more. Does gcc ignore the const keyword? If not, why has LLVM chosen to deviate from gcc with respect to the const keyword? If so, then why do we bother using const in LLVM API code? I'm just curious and wanted to understand the thinking behind not preserving const. Thanks, Ryan Chris Lattner wrote: > This property
2007 Mar 18
0
[LLVMdev] idf_iterator and MachineFunctions
On 2007-03-18, at 03:22, Lang Hames wrote: > Is there a recommended way to find the final block (the one with > successors={}) in a machine function? This isn't a property of the CFG in the general case. However, the UnifyFunctionExitNodes transformation/analysis provides it. From getAnalysis<UnifyFunctionExitNodes>().getReturnBlock(), you can visit the basic block