Displaying 20 results from an estimated 20000 matches similar to: "[LLVMdev] PassManager Dependence Question"
2008 Sep 19
0
[LLVMdev] PassManager Dependence Question
On Friday 19 September 2008 17:11, David Greene wrote:
> What I'd really like to do is have Pass X re-run but not Pass Y. Pass Y
> only uses some bookkeeping from Pass X to speed itself up. Having Pass X
> not re-run could cause Pass Y to give wrong answers, but once Pass X is
> up-to-date, Pass Y will be fine.
To make this a bit more concrete:
I noticed that the Verifier
2008 Sep 19
2
[LLVMdev] PassManager Dependence Question
On Sep 19, 2008, at 3:20 PM, David Greene wrote:
> On Friday 19 September 2008 17:11, David Greene wrote:
>
>> What I'd really like to do is have Pass X re-run but not Pass Y.
>> Pass Y
>> only uses some bookkeeping from Pass X to speed itself up. Having
>> Pass X
>> not re-run could cause Pass Y to give wrong answers, but once Pass
>> X is
2008 Sep 19
0
[LLVMdev] PassManager Dependence Question
On Friday 19 September 2008 17:28, Devang Patel wrote:
> On Sep 19, 2008, at 3:20 PM, David Greene wrote:
> > On Friday 19 September 2008 17:11, David Greene wrote:
> >> What I'd really like to do is have Pass X re-run but not Pass Y.
> >> Pass Y
> >> only uses some bookkeeping from Pass X to speed itself up. Having
> >> Pass X
> >> not
2008 Sep 19
0
[LLVMdev] PassManager Dependence Question
On Sep 19, 2008, at 3:11 PM, David Greene wrote:
> Let's say I have an analysis pass that's dependent on another
> analysis pass
> (getAnalysisUsage does the appropraite things).
>
> So Pass Y depends on Pass X.
>
> If some transformation pass depends on Pass Y and Pass Y has not been
> invalidated by another other pass BUT Pass X _has_ been invalidated
> by
2008 Sep 20
1
[LLVMdev] PassManager Dependence Question
On Sep 19, 2008, at 3:20 PM, David Greene wrote:
> On Friday 19 September 2008 17:11, David Greene wrote:
>
>> What I'd really like to do is have Pass X re-run but not Pass Y.
>> Pass Y
>> only uses some bookkeeping from Pass X to speed itself up. Having
>> Pass X
>> not re-run could cause Pass Y to give wrong answers, but once Pass
>> X is
2008 Sep 19
2
[LLVMdev] PassManager Dependence Question
On Sep 19, 2008, at 3:38 PM, David Greene wrote:
>>> So I thought about adding a pass that simply numbers Instructions,
>>> have
>>> DominatorTrees depend on that pass and then the dominates() question
>>> can just
>>> return whether one Instruction number is > the other.
>>>
>>> The number will get out of date as soon as
2008 Sep 19
0
[LLVMdev] PassManager Dependence Question
On Friday 19 September 2008 17:50, Devang Patel wrote:
> On Sep 19, 2008, at 3:38 PM, David Greene wrote:
> >>> So I thought about adding a pass that simply numbers Instructions,
> >>> have
> >>> DominatorTrees depend on that pass and then the dominates() question
> >>> can just
> >>> return whether one Instruction number is > the
2008 Sep 19
2
[LLVMdev] PassManager Dependence Question
On Sep 19, 2008, at 4:03 PM, David Greene wrote:
>> Well, one of the domiantor info interface is
>> bool dominates(Instruction *A, Instruction *B);
>> This will return invalid results. So yes, the info is dirty.
>
> Not right now it isn't. Right now dominators simply iterates through
> instructions.
Aha... OK.
> In my proposed scheme, it would be dirty only
2009 Nov 20
2
[LLVMdev] PassManager again...
On Fri, Nov 20, 2009 at 6:54 AM, Andreas Neustifter
<astifter-llvm at gmx.at> wrote:
>
> If I use AU.addRequired<ProfileInfo>() in SelectionDAGISel.cpp the
> wrong ProfileInfo is used. It uses the "No ProfileInfo" implementation
> if ProfileInfo but not the one from ProfileInfoLoaderPass. (Which is
> immediately discarded after creation.)
>
You need to
2009 Feb 12
2
[LLVMdev] DominatorTree Information required in CallGraphPass
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, Pass Manager gives following runtime error
Unable to schedule 'Dominator Tree
2007 Jul 27
1
[LLVMdev] PassManager Error
On Jul 27, 2007, at 3:39 PM, David Greene wrote:
> On Friday 27 July 2007 15:15, Devang Patel wrote:
>
>> Now, if pass sequence is - ModuleLevelPass A, FunctionLevelPass B,
>> ModuleLevelPass D, FunctionLevelPass C then
>>
>> For each Module
>> run ModuleLevelPass A
>> for each function in this module
>> run FunctionLevelPass B
>> run
2007 Jul 27
0
[LLVMdev] PassManager Error
On Friday 27 July 2007 15:15, Devang Patel wrote:
> Now, if pass sequence is - ModuleLevelPass A, FunctionLevelPass B,
> ModuleLevelPass D, FunctionLevelPass C then
>
> For each Module
> run ModuleLevelPass A
> for each function in this module
> run FunctionLevelPass B
> run ModuleLevelPass D
> for each function in this module
> run FunctionLevelPass C
>
2015 May 19
3
[LLVMdev] Processing functions in call graph SCC "order" with function-level analyses
Thanks John.
Does this solve the problem of analysis availability though? If I still have to run the function analyses manually, I might as well keep rolling with the CallGraphSCCPass. (I probably should have mentioned that this is what I’m using right now.)
Félix
> Le 2015-05-19 à 10:12:32, John Criswell <jtcriswel at gmail.com> a écrit :
>
> On 5/18/15 10:45 PM, Félix Cloutier
2007 Jul 27
2
[LLVMdev] PassManager Error
On Jul 26, 2007, at 11:25 AM, David Greene wrote:
> On Thursday 26 July 2007 11:48, Devang Patel wrote:
>
>> If in register allocator you have requested another higher level pass
>> after LiveVariableAnalysis pass then this may happen.
>
> Can you explain why this is so? I would assume that I could
> declare Pass
> dependencies in any order. The manual certainly
2009 Dec 03
0
[LLVMdev] PassManager again...
Hi all!
On 11/20/2009 06:29 PM, Devang Patel wrote:
>
> On Fri, Nov 20, 2009 at 6:54 AM, Andreas Neustifter wrote:
>>
>> If I use AU.addRequired<ProfileInfo>() in SelectionDAGISel.cpp the
>> wrong ProfileInfo is used. It uses the "No ProfileInfo" implementation
>> if ProfileInfo but not the one from ProfileInfoLoaderPass. (Which is
>>
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,
2008 Sep 19
0
[LLVMdev] PassManager Dependence Question
On Friday 19 September 2008 18:16, Devang Patel wrote:
> > No way I'm going to go through every Pass, check if it manipulates
> > instructions, and update the numbering info if it does. I'd rather
> > have
> > dominators check whenther numbering is up-to-date and update the
> > numbering
> > itself if it's not, on-the-fly.
>
> Well, then pass
2009 Feb 18
2
[LLVMdev] LLVM 2.4 Dominance Frontier Problem
I just finished upgrading our LLVM to 2.4 and I immediately ran into a problem
with dominance frontier calculation:
llvm/lib/VMCore/PassManager.cpp:714: void
llvm::PMDataManager::verifyDomInfo(llvm::Pass&, llvm::Function&): Assertion
`0 && "Invalid dominator info"' failed.
Strangely enough, the Pass running when the assert triggers is Dominance
Frontier
2010 May 11
0
[LLVMdev] [Fwd: Error while running my pass with opt]
John Criswell wrote:
> ambika wrote:
>> Here is getAnalysisUsage() i am using,
>>
>> void getAnalysisUsage(AnalysisUsage&AU) const {
>> AU.setPreservesAll();
>> AU.addRequired<DominatorTree>();
>> }
>>
>> and then I use it as,
>>
>>
>> bool ptrTest::runOnModule(Module&M) {
>>
>>
2010 May 10
2
[LLVMdev] [Fwd: Error while running my pass with opt]
ambika wrote:
> Here is getAnalysisUsage() i am using,
>
> void getAnalysisUsage(AnalysisUsage &AU) const {
> AU.setPreservesAll();
> AU.addRequired<DominatorTree>();
> }
>
> and then I use it as,
>
>
> bool ptrTest::runOnModule(Module &M) {
>
> DominatorTree &DT = getAnalysis<DominatorTree>();
> ......
>