[PATCH] D65304: Don't recreate a label if it's already used

Bill Wendling via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 25 15:49:57 PDT 2019


void created this revision.
void added reviewers: nickdesaulniers, craig.topper.
Herald added subscribers: llvm-commits, javed.absar.
Herald added a project: LLVM.

This patch keeps track of MCSymbols created for blocks that were
referenced in inline asm. It prevents creating a new symbol which
doesn't refer to the block.

Inline asm may have a reference to a label. The asm parser however
doesn't recognize it as a label and tries to create a new symbol. The
result being that instead of the original symbol (e.g. ".Ltmp0") the
parser replaces it in the inline asm with the new one (e.g. ".Ltmp00")
without updating it in the symbol table. So the machine basic block
retains the "old" symbol (".Ltmp0"), but the inline asm uses the new one
(".Ltmp00").


Repository:
  rL LLVM

https://reviews.llvm.org/D65304

Files:
  include/llvm/MC/MCContext.h
  lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
  lib/MC/MCContext.cpp
  lib/MC/MCParser/AsmParser.cpp
  test/CodeGen/AArch64/callbr-asm-label.ll
  test/CodeGen/X86/callbr-asm-label-addr.ll
  test/CodeGen/X86/callbr-asm.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65304.211845.patch
Type: text/x-patch
Size: 7047 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190725/101e90af/attachment.bin>


More information about the llvm-commits mailing list