Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] DominatorTree Information required in CallGraphPass"
2009 Feb 12
0
[LLVMdev] DominatorTree Information required in CallGraphPass
On Feb 11, 2009, at 6:05 PM, kapil anand wrote:
> Hi all,
>
> I am implementing a new pass for LLVM which extends Call Graph
> SCCPass. I need DominatorTree Information when I get to individual
> function. I have added AU.addrequired<DominatorTree>() and
> AU.addRequired<DominanceFrontier>() in getAnalysisUsage() function.
>
> But, when I get to the pass,
2011 Oct 25
1
[LLVMdev] Using a FunctionPass inside a CallGraphSCCPass
Hi,
I am writing a CallGraphSCCPass that uses LoopInfo which is a FunctionPass.
However, doing so results in the following error.
****
Unable to schedule 'Natural Loop Information' required by '......'
****
Google led me to this page, where Devang Patel suggests implementing the
addLowerLevelRequiredPasses in CGPassManager in a manner similar to
MPPassManager.
2008 Oct 08
2
[LLVMdev] Error while making new pass
Hi Devang,
GlobalModRefPass is also a ModulePass and it uses CallGraph Analysis.
So, I think it should not necessary to extend CallGraphSCCPass to use
CallGraph information. Module Pass shoule be sufficient...
--Kapil
On 10/8/08, Devang Patel <dpatel at apple.com> wrote:
> Hi Kapil,
>
> On Oct 8, 2008, at 10:19 AM, kapil anand wrote:
>
>> Hi all,
>>
>> I
2016 Feb 25
0
Use DominatorTree from CallGraphSCCPass
Hello,
I'm trying to improve SimpleInliner to use information given by __builtin_expect instruction (It would be better to not to inline if a call instruction is unlikely to be executed). The problem here is that it is not possible to compute control dependency relationship between the annotated branch instruction and callsites using PostDominatorTree, because PostDominatorTree is a function
2008 Oct 08
0
[LLVMdev] Error while making new pass
On Oct 8, 2008, at 10:59 AM, kapil anand wrote:
> Hi Devang,
>
> GlobalModRefPass is also a ModulePass and it uses CallGraph Analysis.
> So, I think it should not necessary to extend CallGraphSCCPass to use
> CallGraph information. Module Pass shoule be sufficient...
ok, but you're Registering your pass in CallGraph Analysis group.
What if you remove
2008 Oct 08
2
[LLVMdev] Error while making new pass
Hi all,
I need a new kind of analysis on LLVM Module, so I made a new pass to do
this. This new pass extends the ModulePass class and follows the conventions
used in GlobalModRefPass, which is also a Module Pass.I need the CallGraph
analysis for this pass, hence I have added (addRequired(CallGraph)) in
getAnalysisUsage function of this new pass. I also added it to CallGraph
Analysis group through
2008 Oct 08
0
[LLVMdev] Error while making new pass
Hi Kapil,
On Oct 8, 2008, at 10:19 AM, kapil anand wrote:
> Hi all,
>
> I need a new kind of analysis on LLVM Module, so I made a new pass
> to do this. This new pass extends the ModulePass class and follows
> the conventions used in GlobalModRefPass, which is also a Module
> Pass.I need the CallGraph analysis for this pass, hence I have added
>
2014 Feb 14
2
[LLVMdev] DominatorTree not updated properly after calling the llvm::SplitBlock.
Hi Fellows,
I am writing a pass that requires the DominatorTree pass. In the
runOnFunction of my own pass, I call llvm::SplitBlock to split a block
(%for.end) at it's first insert point. Then, when I dump my dominator tree
immediately after, I can see the newly split %for.end.split, but its
DFSNumIn and DFSNumOut are not properly updated in llvm::SplitBlock (i.e.,
still the initialized
2014 Feb 14
2
[LLVMdev] DominatorTree not updated properly after calling the llvm::SplitBlock.
Hi Andrew,
Thanks a lot. But the function "DT->dominate(A,B)" decides the
dominance relationship through comparing the DFS numbers, right? At least,
in my example, when I check whether the newly split node (i.e., %
*for.end.split*) DOMINATES the original node (I.e., %for.end), the answer
is true, which is obviously wrong.
Paul
On Fri, Feb 14, 2014 at 1:59 AM, Andrew Trick
2011 May 03
4
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
When migrating my project to 2.9, I've encountered a strange segfault
where if a ModulePass's getAnalysisUsage adds LoopInfo and
DominatorTree, then llvm::PMTopLevelManager::findAnalysisUsage will
segfault. What's odd is that if I rearrange this (add required for
DominatorTree before LoopInfo), it does not segfault. I realize that
LoopInfo requires and preserves DominatorTree, but this
2013 Apr 12
2
[LLVMdev] Runtime exception in DominatorTree.getRootNode()
Hi all,
I am trying to traverse a dominator tree and have encountered a weird
runtime exception:
Here's my simple code:
virtual bool runOnFunction(Function &F) {
DominatorTree& DT = getAnalysis<DominatorTree>();
* DomTreeNode* rootNode = DT.getRootNode();*
return false.
}
Here's the documentation page:
2010 Nov 03
2
[LLVMdev] Static Profiling Algorithms in LLVM
You said it was expensive, but if you had to put a big-o estimate on it,
what would it be?
-Thanks
Jeff Kunkel
On Tue, Nov 2, 2010 at 8:54 PM, Andrei Alvares <logytech at gmail.com> wrote:
> Hello Jeff,
>
> On Tue, Nov 2, 2010 at 9:17 PM, Jeff Kunkel <jdkunk3 at gmail.com> wrote:
> > My god! I would love a branch predictor! It would simplify many aspects
> of
>
2008 Oct 08
1
[LLVMdev] Error while making new pass
HI Devang,
Initially I had not added this pass to the group and I got this error
regarding PassManager. I added the pass to group just to check whether that
removes the error or not...
I have removed it again.
Is there any other registration required to configure pass manager for the
pass?
--Kapil
On Wed, Oct 8, 2008 at 2:37 PM, Devang Patel <dpatel at apple.com> wrote:
>
> On
2017 Jul 17
2
An update on the DominatorTree and incremental dominators
Hi folks,
For the past month I’ve been working on improving the DominatorTree and
PostDominatorTree in LLVM. The RFC that explains the motivations and plans
can be found here:
http://lists.llvm.org/pipermail/llvm-dev/2017-June/114045.html .
Here’s a short summary of what changed upstream since posting it:
-
We switched from the Simple Lengauer-Tarjan algorithm for computing
dominators
2009 May 01
1
[LLVMdev] DominatorTrees, DominanceFrontiers, interfaces and cloning
Hello,
I have a transform that, given a function F, will produce a new
function G such that the basic blocks of G are (copies of) a subset of
the basic blocks of F, and such that control flow is connected as you
would expect. Given DominatorTree and DominanceFrontier of F, I would
also like to efficiently compute DominatorTrees and DominanceFrontiers
of G. I understand how to do this
2013 Apr 12
0
[LLVMdev] Runtime exception in DominatorTree.getRootNode()
On 4/11/13 10:30 PM, Bill He wrote:
> Hi all,
>
> I am trying to traverse a dominator tree and have encountered a weird
> runtime exception:
>
> Here's my simple code:
>
> virtual bool runOnFunction(Function &F) {
> DominatorTree& DT = getAnalysis<DominatorTree>();
>
> * DomTreeNode* rootNode = DT.getRootNode();*
> return false.
2011 May 04
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
Hi Michael,
> When migrating my project to 2.9, I've encountered a strange segfault
> where if a ModulePass's getAnalysisUsage adds LoopInfo and
> DominatorTree, then llvm::PMTopLevelManager::findAnalysisUsage will
> segfault.
I suggest you build LLVM with assertions enabled - then you should get a
helpful error message rather than a segfault. I think you are not allowed
to
2013 Apr 12
2
[LLVMdev] Runtime exception in DominatorTree.getRootNode()
Thanks for your reply, John.
I am using opt to run my pass. Should opt by default link in the library?
Would you please give me some idea on fixing it? Thanks!
opt -load ../../../Debug+Asserts/lib/LLVMHello.dylib -hello < hello.bc >
/dev/null
My pass is just:
#include "llvm/IR/Function.h"
#include "llvm/Pass.h"
#include "llvm/Support/raw_ostream.h"
#include
2010 Nov 03
0
[LLVMdev] Static Profiling Algorithms in LLVM
Hi Jeff,
There is an algorithm to build the dominator tree that is O(n2),
where n is the number of nodes on the control flow graph. I believe
exists another that is linear, but I don't which one of them is
implemented in LLVM.
The problem is that the branch predictor requires post dominance
information. None of the LLVM basic passes require post dominance
information (AFAIK), hence it is
2013 Apr 12
0
[LLVMdev] Runtime exception in DominatorTree.getRootNode()
On 4/12/13 9:51 AM, Bill He wrote:
> Thanks for your reply, John.
>
> I am using opt to run my pass. Should opt by default link in the
> library? Would you please give me some idea on fixing it? Thanks!
Odd. I would think that opt would have that pass linked in statically.
I'm not sure why it's not working. Does anyone else have an idea?
-- John T.
>
> opt -load