Skip to content

Commit c279a9d

Browse files
committed
Port existing TargetSchedule flags to ScheduleDAG
Change-Id: I2c7080bce7fadbb7b6c471457edbc0606c1b0bb0
1 parent 9074bc3 commit c279a9d

File tree

5 files changed

+17
-21
lines changed

5 files changed

+17
-21
lines changed

llvm/include/llvm/CodeGen/TargetSchedule.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ class TargetSchedModel {
4545

4646
unsigned computeInstrLatency(const MCSchedClassDesc &SCDesc) const;
4747

48-
bool DisableItinerariesAndSchedModel = false;
48+
bool EnableSchedModel = true;
49+
bool EnableSchedItins = true;
4950

5051
public:
5152
TargetSchedModel() : SchedModel(MCSchedModel::Default) {}
@@ -56,7 +57,7 @@ class TargetSchedModel {
5657
/// indices and may query TargetSubtargetInfo and TargetInstrInfo to resolve
5758
/// dynamic properties.
5859
void init(const TargetSubtargetInfo *TSInfo,
59-
bool DisableItinerariesAndSchedModel = false);
60+
bool EnableSModel = true, bool EnableSItins = true);
6061

6162
/// Return the MCSchedClassDesc for this instruction.
6263
const MCSchedClassDesc *resolveSchedClass(const MachineInstr *MI) const;

llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,11 @@ static cl::opt<bool>
6969
static cl::opt<bool> UseTBAA("use-tbaa-in-sched-mi", cl::Hidden,
7070
cl::init(true), cl::desc("Enable use of TBAA during MI DAG construction"));
7171

72-
static cl::opt<bool> DisableSchedModel(
73-
"disable-schedmodel-in-sched-mi", cl::Hidden, cl::init(false),
74-
cl::desc("Enable use of TBAA during MI DAG construction"));
72+
static cl::opt<bool> EnableSchedModel("schedmodel", cl::Hidden, cl::init(true),
73+
cl::desc("Use TargetSchedModel for latency lookup"));
74+
75+
static cl::opt<bool> EnableSchedItins("scheditins", cl::Hidden, cl::init(true),
76+
cl::desc("Use InstrItineraryData for latency lookup"));
7577

7678
// Note: the two options below might be used in tuning compile time vs
7779
// output quality. Setting HugeRegion so large that it will never be
@@ -125,7 +127,7 @@ ScheduleDAGInstrs::ScheduleDAGInstrs(MachineFunction &mf,
125127
DbgValues.clear();
126128

127129
const TargetSubtargetInfo &ST = mf.getSubtarget();
128-
SchedModel.init(&ST, DisableSchedModel);
130+
SchedModel.init(&ST, EnableSchedModel, EnableSchedItins);
129131
}
130132

131133
/// If this machine instr has memory reference information and it can be

llvm/lib/CodeGen/TargetSchedule.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,33 +29,26 @@
2929

3030
using namespace llvm;
3131

32-
static cl::opt<bool> EnableSchedModel("schedmodel", cl::Hidden, cl::init(true),
33-
cl::desc("Use TargetSchedModel for latency lookup"));
34-
35-
static cl::opt<bool> EnableSchedItins("scheditins", cl::Hidden, cl::init(true),
36-
cl::desc("Use InstrItineraryData for latency lookup"));
37-
3832
static cl::opt<bool> ForceEnableIntervals(
3933
"sched-model-force-enable-intervals", cl::Hidden, cl::init(false),
4034
cl::desc("Force the use of resource intervals in the schedule model"));
4135

4236
bool TargetSchedModel::hasInstrSchedModel() const {
43-
return EnableSchedModel && SchedModel.hasInstrSchedModel() &&
44-
!DisableItinerariesAndSchedModel;
37+
return EnableSchedModel && SchedModel.hasInstrSchedModel();
4538
}
4639

4740
bool TargetSchedModel::hasInstrItineraries() const {
48-
return EnableSchedItins && !InstrItins.isEmpty() &&
49-
!DisableItinerariesAndSchedModel;
41+
return EnableSchedItins && !InstrItins.isEmpty();
5042
}
5143

52-
void TargetSchedModel::init(const TargetSubtargetInfo *TSInfo, bool Disable) {
44+
void TargetSchedModel::init(const TargetSubtargetInfo *TSInfo, bool EnableSModel, bool EnableSItins) {
5345
STI = TSInfo;
5446
SchedModel = TSInfo->getSchedModel();
5547
TII = TSInfo->getInstrInfo();
5648
STI->initInstrItins(InstrItins);
5749

58-
DisableItinerariesAndSchedModel = Disable;
50+
EnableSchedModel = EnableSModel;
51+
EnableSchedItins = EnableSItins;
5952

6053
unsigned NumRes = SchedModel.getNumProcResourceKinds();
6154
ResourceFactors.resize(NumRes);

llvm/test/CodeGen/AMDGPU/mai-hazards-gfx942.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# RUN: llc -mtriple=amdgcn -mcpu=gfx942 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GCN,GFX942 %s
22
# RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GCN,GFX950 %s
3-
# RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass post-RA-hazard-rec --disable-schedmodel-in-sched-mi=1 %s -o - | FileCheck -check-prefixes=GCN,GFX950 %s
3+
# RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass post-RA-hazard-rec --schedmodel=0 %s -o - | FileCheck -check-prefixes=GCN,GFX950 %s
44

55
# GCN-LABEL: name: valu_write_vgpr_sgemm_mfma_read
66
# GCN: V_MOV_B32

llvm/test/CodeGen/AMDGPU/sched-no-schedmodel.mir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2-
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -misched-cluster=false --misched-prera-direction=topdown -run-pass=machine-scheduler --disable-schedmodel-in-sched-mi=0 -o - %s | FileCheck -check-prefix=GCN %s
3-
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -misched-cluster=false --misched-prera-direction=topdown -run-pass=machine-scheduler --disable-schedmodel-in-sched-mi=1 -o - %s | FileCheck -check-prefix=GCN-NO-SCHEDMODEL %s
2+
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -misched-cluster=false --misched-prera-direction=topdown -run-pass=machine-scheduler --schedmodel=1 -o - %s | FileCheck -check-prefix=GCN %s
3+
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -misched-cluster=false --misched-prera-direction=topdown -run-pass=machine-scheduler --schedmodel=0 -o - %s | FileCheck -check-prefix=GCN-NO-SCHEDMODEL %s
44

55
---
66
name: sched_group_barrier_1_VMEM_READ_1_VALU_5_MFMA_1_VMEM_READ_3_VALU_2_VMEM_WRITE

0 commit comments

Comments
 (0)