[all-commits] [llvm/llvm-project] 295cdd: [ARM][TableGen][MC] Change the ARM mnemonic operan...

Alfie Richards via All-commits all-commits at lists.llvm.org
Mon Mar 18 04:25:34 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 295cdd5c3dbd14406bf9cce01e3dfd787fb1ddda
      https://github.com/llvm/llvm-project/commit/295cdd5c3dbd14406bf9cce01e3dfd787fb1ddda
  Author: Alfie Richards <156316945+AlfieRichardsArm at users.noreply.github.com>
  Date:   2024-03-18 (Mon, 18 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Target/Target.td
    M llvm/lib/Target/ARM/ARM.td
    M llvm/lib/Target/ARM/ARMInstrFormats.td
    M llvm/lib/Target/ARM/ARMInstrThumb.td
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/test/MC/ARM/arm-branch-errors.s
    M llvm/test/MC/ARM/arm11-hint-instr.s
    M llvm/test/MC/ARM/cde-fp-vec.s
    M llvm/test/MC/ARM/cde-vec-pred.s
    M llvm/test/MC/ARM/cps.s
    M llvm/test/MC/ARM/diagnostics.s
    M llvm/test/MC/ARM/directive-arch_extension-crypto.s
    M llvm/test/MC/ARM/invalid-fp-armv8.s
    M llvm/test/MC/ARM/lsl-zero-errors.s
    M llvm/test/MC/ARM/mve-load-store.s
    M llvm/test/MC/ARM/mve-misc.s
    M llvm/test/MC/ARM/neon-complex.s
    M llvm/test/MC/ARM/no-mve.s
    M llvm/test/MC/ARM/not-armv4.s
    M llvm/test/MC/ARM/register-token-source-loc.s
    M llvm/test/MC/ARM/tMOVSr.s
    M llvm/test/MC/ARM/thumb-diagnostics.s
    M llvm/test/MC/ARM/thumb-mov.s
    M llvm/test/MC/ARM/thumb2-diagnostics.s
    M llvm/test/MC/ARM/vfp4.s
    M llvm/test/tools/llvm-mca/ARM/cortex-a57-basic-instructions.s
    M llvm/utils/TableGen/AsmMatcherEmitter.cpp

  Log Message:
  -----------
  [ARM][TableGen][MC] Change the ARM mnemonic operands to be optional for ASM parsing (#83436)

This changs the way the assembly matcher works for Aarch32 parsing.
Previously there was a pile of hacks which dictated whether the CC,
CCOut, and VCC operands should be present which de-facto chose if the
wide/narrow (or thumb1/thumb2/arm) instruction version were chosen.

This meant much of the TableGen machinery present for the assembly
matching was effectively being bypassed and worked around.

This patch makes the CC and CCOut operands optional which allows the ASM
matcher operate as it was designed and means we can avoid doing some of
the hacks done previously. This also adds the option for the target to
allow the prioritizing the smaller instruction encodings as is required
for Aarch32.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list