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