Reverts commit 1b104388752f66191c867380efde7bbf1f13ca80.
After D130316, this is no longer necessary.
nickdesaulniers on Jul 21 2022, 6:17 PM.Authored by
Turning on more build targets, either this or https://reviews.llvm.org/D130391 regresses (llvm/test/CodeGen/RISCV/inline-asm-S-constraint.ll).
i.e. this one regresses llvm/test/CodeGen/RISCV/inline-asm-S-constraint.ll. I'm going to rebase D130391 to go in first, since that shouldn't be controversial. Let's see.
I think I've found the issue: AddrLabelMap::getAddrLabelSymbolToEmit uses createNamedTempSymbol() when a BasicBlock has its address taken (i.e. blockaddress), but it doesn't update the symbol table (MCContext's Symbols member), so AsmParser can't find the existing symbol.
It looks like in the failing test case llvm/test/CodeGen/RISCV/inline-asm-S-constraint.ll that
createSymbol is called with .Ltmp to create the initial BB label, but then later getOrCreateSymbol calls createSymbol for .Ltmp0.
It seems like AddrLabelMap::getAddrLabelSymbolToEmit should have just added .Ltmp0 to MCContext's Symbols then and there.