[all-commits] [llvm/llvm-project] 37ef64: [llvm-exegesis] Prevent llvm-exegesis from using u...

Pavel Kosov via All-commits all-commits at lists.llvm.org
Wed Aug 2 05:44:39 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 37ef64078553af3e8d305ac2a5d50faa82f8b8bb
      https://github.com/llvm/llvm-project/commit/37ef64078553af3e8d305ac2a5d50faa82f8b8bb
  Author: Pavel Kosov <kpdev42 at gmail.com>
  Date:   2023-08-02 (Wed, 02 Aug 2023)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
    M llvm/tools/llvm-exegesis/lib/Mips/Target.cpp
    M llvm/tools/llvm-exegesis/lib/PowerPC/Target.cpp
    M llvm/tools/llvm-exegesis/lib/SerialSnippetGenerator.cpp
    M llvm/tools/llvm-exegesis/lib/Target.cpp
    M llvm/tools/llvm-exegesis/lib/Target.h
    M llvm/tools/llvm-exegesis/lib/X86/Target.cpp
    M llvm/tools/llvm-exegesis/llvm-exegesis.cpp
    M llvm/utils/TableGen/InstrInfoEmitter.cpp

  Log Message:
  -----------
  [llvm-exegesis] Prevent llvm-exegesis from using unsupported opcodes

When generating snippets for AArch64 with --opcode-index=-1, the code
generator asserts on opcodes that are not supported according to CPU
features.

The same assertion can be triggered even when generating a serial
snippet for a supported opcode if SERIAL_VIA_NON_MEMORY_INSTR execution
mode is used and an unsupported instruction is chosen as the "other
instruction". Unlike the first case, this one may result in flaky
failures because the other instruction is randomly chosen from the
instructions suitable for serializing execution.

This patch adjusts TableGen emitter for *GenInstrInfo.inc to make
possible to query for opcode availability instead of just asserting on
unsupported ones.

~~

Huawei RRI, OS Lab

Reviewed By: courbet

Differential Revision: https://reviews.llvm.org/D146303




More information about the All-commits mailing list