Skip to content

Commit 6d36d2a

Browse files
committed
[TableGen][MCSched] Update the error message of Acquire/ReleaseAtCycle
1 parent 1997053 commit 6d36d2a

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

llvm/test/TableGen/AcquireAtCycle.td

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def ResX2 : ProcResource<1>; // X2
2626
let OutOperandList = (outs), InOperandList = (ins) in {
2727
def Inst_A : Instruction;
2828
def Inst_B : Instruction;
29+
def Inst_C : Instruction;
2930
}
3031

3132
let CompleteModel = 0 in {
@@ -34,6 +35,7 @@ let CompleteModel = 0 in {
3435

3536
def WriteInst_A : SchedWrite;
3637
def WriteInst_B : SchedWrite;
38+
def WriteInst_C : SchedWrite;
3739

3840
let SchedModel = SchedModel_A in {
3941
// Check the generated data when there are no semantic issues.
@@ -49,9 +51,15 @@ def : WriteRes<WriteInst_A, [ResX0, ResX1, ResX2]> {
4951
}
5052
def : WriteRes<WriteInst_B, [ResX2]> {
5153
// If unspecified, AcquireAtCycle is set to 0.
52-
// CORRECT-NEXT: { 3, 1, 0} // #4
54+
// CORRECT-NEXT: { 3, 1, 0}, // #4
5355
let ReleaseAtCycles = [1];
5456
}
57+
def : WriteRes<WriteInst_C, [ResX0]> {
58+
// Both AcquireAtCycle and ReleaseAtCycle are allowed
59+
// to be zero at the same time.
60+
// CORRECT-NEXT: { 1, 0, 0} // #5
61+
let ReleaseAtCycles = [0];
62+
}
5563
#endif // CORRECT
5664

5765
#ifdef WRONG_SIZE
@@ -63,7 +71,7 @@ def : WriteRes<WriteInst_A, [ResX0, ResX1, ResX2]> {
6371
#endif
6472

6573
#ifdef WRONG_VALUE
66-
// WRONG_VALUE: AcquireAtCycle.td:[[@LINE+1]]:1: error: Inconsistent resource cycles: AcquireAtCycles < ReleaseAtCycles must hold
74+
// WRONG_VALUE: AcquireAtCycle.td:[[@LINE+1]]:1: error: Inconsistent resource cycles: AcquireAtCycles <= ReleaseAtCycles must hold
6775
def : WriteRes<WriteInst_A, [ResX0, ResX1, ResX2]> {
6876
let ReleaseAtCycles = [2, 4, 3];
6977
let AcquireAtCycles = [0, 1, 8];
@@ -80,6 +88,7 @@ def : WriteRes<WriteInst_A, [ResX0]> {
8088

8189
def : InstRW<[WriteInst_A], (instrs Inst_A)>;
8290
def : InstRW<[WriteInst_B], (instrs Inst_B)>;
91+
def : InstRW<[WriteInst_C], (instrs Inst_C)>;
8392
}
8493

8594
def ProcessorA: ProcessorModel<"ProcessorA", SchedModel_A, []>;

llvm/utils/TableGen/SubtargetEmitter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1245,7 +1245,7 @@ void SubtargetEmitter::genSchedClassTables(const CodeGenProcModel &ProcModel,
12451245
PrintFatalError(
12461246
WriteRes->getLoc(),
12471247
Twine("Inconsistent resource cycles: AcquireAtCycles "
1248-
"< ReleaseAtCycles must hold."));
1248+
"<= ReleaseAtCycles must hold."));
12491249
}
12501250
if (AcquireAtCycles[PRIdx] < 0) {
12511251
PrintFatalError(WriteRes->getLoc(),

0 commit comments

Comments
 (0)