ScheduleDAGMutation.h revision 321369
1321369Sdim//===- ScheduleDAGMutation.h - MachineInstr Scheduling ----------*- C++ -*-===//
2303231Sdim//
3303231Sdim//                     The LLVM Compiler Infrastructure
4303231Sdim//
5303231Sdim// This file is distributed under the University of Illinois Open Source
6303231Sdim// License. See LICENSE.TXT for details.
7303231Sdim//
8303231Sdim//===----------------------------------------------------------------------===//
9303231Sdim//
10303231Sdim// This file implements the ScheduleDAGMutation class, which represents
11303231Sdim// a target-specific mutation of the dependency graph for scheduling.
12303231Sdim//
13303231Sdim//===----------------------------------------------------------------------===//
14303231Sdim
15303231Sdim#ifndef LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
16303231Sdim#define LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
17303231Sdim
18303231Sdimnamespace llvm {
19303231Sdim
20321369Sdimclass ScheduleDAGInstrs;
21303231Sdim
22321369Sdim/// Mutate the DAG as a postpass after normal DAG building.
23321369Sdimclass ScheduleDAGMutation {
24321369Sdim  virtual void anchor();
25303231Sdim
26321369Sdimpublic:
27321369Sdim  virtual ~ScheduleDAGMutation() = default;
28321369Sdim
29321369Sdim  virtual void apply(ScheduleDAGInstrs *DAG) = 0;
30321369Sdim};
31321369Sdim
32321369Sdim} // end namespace llvm
33321369Sdim
34321369Sdim#endif // LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
35