Eugene.Zelenko added a comment. There are alternative implementation in http://reviews.llvm.org/D21185. Will be good idea to how one which take the best from both :-) http://reviews.llvm.org/D20964