If this is implemented correctly as Duncan describes, we can probably use it to solve http://llvm.org/bugs/show_bug.cgi?id=20440. http://reviews.llvm.org/D4745