// RUN: llvm-tblgen -gen-searchable-tables -I %p/../../include %s | FileCheck %s // XFAIL: vg_leak include "llvm/TableGen/SearchableTable.td" // CHECK-LABEL: GET_InstrTable_IMPL // CHECK: constexpr MyInstr InstrTable[] = { // CHECK: { B, 0xA }, // CHECK: { C, 0x0 }, // CHECK: { A, 0x5 }, // CHECK: { D, 0x8 }, // CHECK: }; class Instruction { bit isPseudo = 0; } class MyInstr<int op> : Instruction { Instruction Opcode = !cast<Instruction>(NAME); bits<16> CustomEncoding = op; } def A : MyInstr<5>; def D : MyInstr<8>; let isPseudo = 1 in { def C : MyInstr<0>; def B : MyInstr<10>; } def InstrTable : GenericTable { let FilterClass = "MyInstr"; let Fields = ["Opcode", "CustomEncoding"]; let PrimaryKey = ["Opcode"]; let PrimaryKeyName = "getCustomEncodingHelper"; }