Displaying 20 results from an estimated 1000 matches similar to: "Error: Verify if there is a pass dependency cycle"
2018 Apr 14
0
Error: Verify if there is a pass dependency cycle
Hi,
You need to initialize your pass with:
INITIALIZE_PASS_BEGIN(YourPass, "your-pass", "Your Pass",
/*cfgonly=*/false, /*analysis=*/false)
INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass)
INITIALIZE_PASS_END(YourPass, "your-pass", "Your Pass", /*cfgonly=*/false,
/*analysis=*/false)
So as to both register your pass, and have
2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
Hi Mikhail,
As Brian noted, stuff like this works better in the new pass manager.
Even in the old pass manager I thought it should work though.
Did you initialize the pass, via
`INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass)`?
Did you require it, via
` AU.addRequired<PostDominatorTreeWrapperPass>();`?
Btw. May I ask what you are planning to do?
Cheers,
Johannes
On 01/07,
2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
Dear all,
I would like to use the PostDominatorTree in ArgPromotion. I did not find an example of how to use function level analysis inside CallGraphSCCPass. I tried to follow an example of how to use function-level pass in a module pass, but I hit "llvm_unreachable" in PMDataManager::addLowerLevelRequiredPass.
What would be a proper way to make PostDominatorTree available in
2019 Mar 26
2
On-the-fly passes
I'm seeing some very unexpected behavior in a ModulePass I've created.
To support both the legacy and new pass managers, I've abstracted away
the code to get the passes it depends on:
bool MyPass::runOnModule(Module &M) override {
auto DominatorGetter = [this] (Function &F) -> DominatorTree & {
return
2019 Jan 31
4
Confusing ERROR with LoopAccessLegacyAnalysis: Pass 'Unnamed pass: implement Pass::getPassName()' is not initialized.
Dear all,
I write a new LoopPass which wants to use passes including LoopInfoWrapperPass, ScalarEvolutionWrapperPass and LoopAccessLegacyAnalysis.
Therefore, I implement the following code based on LLVM 9.0.0:
=====================================================================
bool LoopInformationCollect::runOnLoop(Loop *L, LPPassManager &)
{
auto &SE =
2010 Aug 05
1
[LLVMdev] a problem when using postDominatorTree
Wenbin Zhang wrote:
> I'll try the trunk, as well as check my code again. If indeed it's not
> fixed, I'll try to post a triggering case here.
> Thanks for the advice~
>
Did you run the -mergereturn pass (it might also be called
UnifyExitNodes in the source code)? This is the pass that ensures that
each function has exactly one basic block that returns control to the
2010 Aug 05
0
[LLVMdev] a problem when using postDominatorTree
I'll try the trunk, as well as check my code again. If indeed it's not
fixed, I'll try to post a triggering case here.
Thanks for the advice~
Best,
--Wenbin
----- Original Message -----
From: "Tobias Grosser" <grosser at fim.uni-passau.de>
To: "Wenbin Zhang" <zhangwen at cse.ohio-state.edu>
Cc: <llvmdev at cs.uiuc.edu>
Sent: Thursday, August
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 30
2
[LLVMdev] Post-dominator data.
This is surely a simple question, but it appears that
PostDominatorTree does not provide an interface to get at post
dominator data. Also, it is not a concrete subclass of DominatorTree,
as is presented in the doxygen page and the commented source. Any way
to get post-dom data without hacking it into PostDominatorTree?
2009 Jul 10
0
[LLVMdev] Unnamed pass in on the fly pass manager
Update: the "unnamed pass" is PostDominatorTree. My module pass
requires PDT (specified in its getAnalysisUsage). When it visits a
function, it calls getAnalysis<PostDominatorTree>(), which triggers
the failed assertion "getAnalysis*() called on an analysis that was
not 'required' by pass!"
This issue has been addressed on this mailing list, but it seems the
2009 Jul 10
1
[LLVMdev] Unnamed pass in on the fly pass manager
Solved...
For the record, there were two issues:
1) I was not passing the Function to getAnalysis for the PDT.
2) I was attempting to getAnalysis on external functions.
On Thu, Jul 9, 2009 at 5:49 PM, Scott Ricketts<sricketts at maxentric.com> wrote:
> Update: the "unnamed pass" is PostDominatorTree. My module pass
> requires PDT (specified in its getAnalysisUsage). When it
2013 Apr 12
0
[LLVMdev] Control Dependence Graph builder
On 4/12/13 3:19 PM, Arsen wrote:
> Thank you John.
> Actually the opt tool (from LLVM 3.2 version) can generate the needed graphs
> (with pass "-domfrontier").
> But I just want to surely know is there some pass or builder which can be
> integrated somehow so it will be possible directly to generate CDG?
Yes and no. There's isn't a control dependence pass in LLVM
2010 Aug 05
3
[LLVMdev] a problem when using postDominatorTree
On 08/05/2010 06:46 AM, Wenbin Zhang wrote:
> Hi all,
> I'm using postDominatorTree to do some program analysis. My code works
> well for small tests, but when I run it on real applications, the
> following error occurs:
> /Inorder PostDominator Tree: DFSNumbers invalid: 0 slow queries.
> [1] <<exit node>> {0,21}
> [2] %bb1 {1,2}
> [2] %bb {3,4}
> [2]
2015 Jul 09
5
[LLVMdev] Strong post-dominance in LLVM?
There is PostDominatorTree for determining post-dominance. Even if A
post-dominates B and B is executed, that doesn't guarantee that A will be
executed. For example, there could be an infinite loop in-between. Strong
post-dominance makes the stronger guarantee that there will be no infinite
loop from B to A. Do we have anything in LLVM for determining strong
post-dominance and in general for
2009 Aug 25
0
[LLVMdev] Post-dominance analysis for multiple-exit functions
On Aug 24, 2009, at 4:58 PM, Jonathan Ragan-Kelley wrote:
> Many published analyses which build on post-dominance assume a
> canonical single-dominator-tree form induced by unifying all exits
> (and often adding a virtual edge from START to END). In contrast, it
> seems that the current LLVM post-dominator analysis only operates in a
> mode in which it generates a forest of
2009 Aug 24
2
[LLVMdev] Post-dominance analysis for multiple-exit functions
Many published analyses which build on post-dominance assume a
canonical single-dominator-tree form induced by unifying all exits
(and often adding a virtual edge from START to END). In contrast, it
seems that the current LLVM post-dominator analysis only operates in a
mode in which it generates a forest of post-dominator trees, with one
rooted at each exit node. The problem this can cause is
2014 Nov 22
3
[LLVMdev] How to get the indices in an getelementptr Value?
On Sat, Nov 22, 2014 at 11:09 AM, Sanjoy Das <sanjoy at playingwithpointers.com
> wrote:
> Hi Qiuping,
>
> If I'm reading the IR correctly, what you have is a
> GetElementPtrConstantExpr [1]. It subclasses from llvm::Constant.
>
If you want the same code to handle GetElementPtrConstantExpr *and*
GetElementPtrInst, you can use GEPOperator.
>
> Thanks,
> --
2015 Jan 31
4
[LLVMdev] How to install poolalloc?
Hi, John Criswell
Thank you very much.
I am installing LLVM-3.2, but I encounter the next error when carrying out
"make":
llvm[3]: Compiling ClangASTNodesEmitter.cpp for Release+Asserts build
ClangASTNodesEmitter.cpp: In member function ‘std::pair<llvm::Record*,
llvm::Record*><unnamed>::ClangASTNodesEmitter::EmitNode(const
std::multimap<llvm::Record*, llvm::Record*,
2011 Dec 20
0
[LLVMdev] Control dependence analysis?
On 12/19/11 9:55 PM, Mark Lacey wrote:
> Does LLVM contain any control dependence analysis pass?
There is a PostDominatorTree analysis. Control-dependence can be
computed easily using it (see the paper "Efficiently computing static
single assignment form and the control dependence graph" by Cytron et.
al. for details on the algorithm).
-- John T.
>
> I do not see one when
2014 Nov 22
2
[LLVMdev] How to get the indices in an getelementptr Value?
Hi Michael,
Thank you very much.
But idx_begin/idx_end iterators can only be used through a getelementptr
instruction, right? However, I think value "i32* getelementptr inbounds
(%struct.Args* @globalArg, i64 0, i32 2)" itself is not a getelementptr
instruction, so? Or could you tell me how can I get a getelementptr
instruction first from this value?