[LLVMdev] Should repetitive basic blocks be removed in the results of LoopBase::getExitBlocks()?

Hongbin Zheng etherzhhb at gmail.com
Mon Apr 23 23:22:43 PDT 2012


hi,


> Users generally expect a unique set of exit blocks, but don't make any
> strong assumption. The worst that can happen is missed optimization or
> redundant analysis. In most cases, the loop is in LoopSimplifyForm, so it's
> probably not a problem in practice.
>
>
> Another thing I should mention. The iteration order of ExitBlocks is
> important. In llvm, generating unique sets is a pain because values are not
> numbered and iteration order needs to be reproducible. We would need to keep
> a SmallPtrSet for membership checking while populating the result vector.
What about use the SetVector[1] as container? As its comment say:

This adapter class provides a way to keep a set of things that also
has the property of a deterministic iteration order. The order of
iteration is the order of insertion.

best regards
ether
[1]http://www.llvm.org/doxygen/classllvm_1_1SetVector.html
>
> -Andy
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>




More information about the llvm-dev mailing list