annotate llvm/test/TableGen/InvalidMCSchedClassDesc.td @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: llvm-tblgen -gen-subtarget -I %p/../../include %s 2>&1 | FileCheck %s
anatofuz
parents:
diff changeset
2 // Check if it is valid MCSchedClassDesc if didn't have the resources.
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 include "llvm/Target/Target.td"
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 def MyTarget : Target;
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 let OutOperandList = (outs), InOperandList = (ins) in {
anatofuz
parents:
diff changeset
9 def Inst_A : Instruction;
anatofuz
parents:
diff changeset
10 def Inst_B : Instruction;
anatofuz
parents:
diff changeset
11 }
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 let CompleteModel = 0 in {
anatofuz
parents:
diff changeset
14 def SchedModel_A: SchedMachineModel;
anatofuz
parents:
diff changeset
15 def SchedModel_B: SchedMachineModel;
anatofuz
parents:
diff changeset
16 def SchedModel_C: SchedMachineModel;
anatofuz
parents:
diff changeset
17 }
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 // Inst_B didn't have the resoures, and it is invalid.
anatofuz
parents:
diff changeset
20 // CHECK: SchedModel_ASchedClasses[] = {
anatofuz
parents:
diff changeset
21 // CHECK: {DBGFIELD("Inst_A") 1
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
22 // CHECK-NEXT: {DBGFIELD("Inst_B") 8191
150
anatofuz
parents:
diff changeset
23 let SchedModel = SchedModel_A in {
anatofuz
parents:
diff changeset
24 def Write_A : SchedWriteRes<[]>;
anatofuz
parents:
diff changeset
25 def : InstRW<[Write_A], (instrs Inst_A)>;
anatofuz
parents:
diff changeset
26 }
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 // Inst_A didn't have the resoures, and it is invalid.
anatofuz
parents:
diff changeset
29 // CHECK: SchedModel_BSchedClasses[] = {
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
30 // CHECK: {DBGFIELD("Inst_A") 8191
150
anatofuz
parents:
diff changeset
31 // CHECK-NEXT: {DBGFIELD("Inst_B") 1
anatofuz
parents:
diff changeset
32 let SchedModel = SchedModel_B in {
anatofuz
parents:
diff changeset
33 def Write_B: SchedWriteRes<[]>;
anatofuz
parents:
diff changeset
34 def : InstRW<[Write_B], (instrs Inst_B)>;
anatofuz
parents:
diff changeset
35 }
anatofuz
parents:
diff changeset
36
anatofuz
parents:
diff changeset
37 // CHECK: SchedModel_CSchedClasses[] = {
anatofuz
parents:
diff changeset
38 // CHECK: {DBGFIELD("Inst_A") 1
anatofuz
parents:
diff changeset
39 // CHECK-NEXT: {DBGFIELD("Inst_B") 1
anatofuz
parents:
diff changeset
40 let SchedModel = SchedModel_C in {
anatofuz
parents:
diff changeset
41 def Write_C: SchedWriteRes<[]>;
anatofuz
parents:
diff changeset
42 def : InstRW<[Write_C], (instrs Inst_A, Inst_B)>;
anatofuz
parents:
diff changeset
43 }
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 def ProcessorA: ProcessorModel<"ProcessorA", SchedModel_A, []>;
anatofuz
parents:
diff changeset
46 def ProcessorB: ProcessorModel<"ProcessorB", SchedModel_B, []>;
anatofuz
parents:
diff changeset
47 def ProcessorC: ProcessorModel<"ProcessorC", SchedModel_C, []>;