brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · e43edd4 Raw
48 lines · plain
1// RUN: llvm-tblgen -gen-subtarget -I %p/../../include %s 2>&1 | FileCheck %s2// Check if it is valid MCSchedClassDesc if didn't have the resources.3 4include "llvm/Target/Target.td"5 6def MyTarget : Target;7 8let OutOperandList = (outs), InOperandList = (ins) in {9  def Inst_A : Instruction;10  def Inst_B : Instruction;11}12 13let CompleteModel = 0 in {14  def SchedModel_A: SchedMachineModel;15  def SchedModel_B: SchedMachineModel;16  def SchedModel_C: SchedMachineModel;17}18 19// Inst_B didn't have the resoures, and it is invalid.20// CHECK: SchedModel_ASchedClasses[] = {21// CHECK: {DBGFIELD(/*Inst_A*/ 19)             122// CHECK-NEXT: {DBGFIELD(/*Inst_B*/ 26)             819123let SchedModel = SchedModel_A in {24  def Write_A : SchedWriteRes<[]>;25  def : InstRW<[Write_A], (instrs Inst_A)>;26}27 28// Inst_A didn't have the resoures, and it is invalid.29// CHECK: SchedModel_BSchedClasses[] = {30// CHECK: {DBGFIELD(/*Inst_A*/ 19)             819131// CHECK-NEXT: {DBGFIELD(/*Inst_B*/ 26)             132let SchedModel = SchedModel_B in {33  def Write_B: SchedWriteRes<[]>;34  def : InstRW<[Write_B], (instrs Inst_B)>;35}36 37// CHECK: SchedModel_CSchedClasses[] = {38// CHECK: {DBGFIELD(/*Inst_A*/ 19)             139// CHECK-NEXT: {DBGFIELD(/*Inst_B*/ 26)             140let SchedModel = SchedModel_C in {41  def Write_C: SchedWriteRes<[]>;42  def : InstRW<[Write_C], (instrs Inst_A, Inst_B)>;43}44 45def ProcessorA: ProcessorModel<"ProcessorA", SchedModel_A, []>;46def ProcessorB: ProcessorModel<"ProcessorB", SchedModel_B, []>;47def ProcessorC: ProcessorModel<"ProcessorC", SchedModel_C, []>;48