[llvm-commits] CVS: llvm/lib/VMCore/Dominators.cpp

Devang Patel dpatel at apple.com
Thu Jun 7 10:21:13 PDT 2007


On Jun 6, 2007, at 7:19 PM, Nick Lewycky wrote:

> Predicate simplifier uses this to get the DFS nums for a BB. We also
> pass around ETNode*s to avoid having a lot of functions doing BB- 
> >ETNode
> lookups.

I am not familiar with predicate simplifier implementation, but why do  
such look ups ?

I am exploring the idea to make ETNode completely private unless there  
is a good reason.  Usually, a transformation needs dominance info,
it does not matter whether ETNode or DomTreeNode or SomeOtherNode is  
used as part of DomTree or ETForest or SomeJungle to get that info.

> Similarly with updateDFSNumbers. More than a performance issue, if the
> DFS nums aren't up to date predsimplify will crash (and if it didn't
> crash it wouldn't work; it needs correct DFS nums). I spoke with Dan
> Berlin about it and he says that there's no guarantee that the DFS  
> nums
> will be up to date upon entry to a pass, so I call it there.

If you're interested then the simple way is to invoke  
updateDFSNumbers() after each pass that claims that it preserves dom  


> I'm open to suggestions.
> Nick
> Devang Patel wrote:
>> +// FIXME : There is no need to make getNodeForBlock public. Fix
>> +// predicate simplifier.
>> ETNode *ETForest::getNodeForBlock(BasicBlock *BB) {
>>   ETNode *&BBNode = Nodes[BB];
>>   if (BBNode) return BBNode;
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

More information about the llvm-commits mailing list