Where does LLVM/Clang resolves duplicate block labels?

I’m trying to find where Clang/LLVM resolves duplicate block labels when the code is being generated (from C to LLVM IR) and the only place I can see where this will happen is in ValueSymbolTable’s makeUniqueName function. After tracing through, I realized that block label names (like if.then and if.else) don’t go through that process to check if the label name already exists. But after emitting the .ll file, those labels have a number attached to make each instance unique. Now I’m wondering where those naming conflicts for block labels are being resolved?

— Kaarthik A.

IRBuilder probably just gives them unique names even though you ask for a
name that's a duplicate.