Line data Source code
1 : //===- ScheduleDAGMutation.h - MachineInstr Scheduling ----------*- C++ -*-===//
2 : //
3 : // The LLVM Compiler Infrastructure
4 : //
5 : // This file is distributed under the University of Illinois Open Source
6 : // License. See LICENSE.TXT for details.
7 : //
8 : //===----------------------------------------------------------------------===//
9 : //
10 : // This file implements the ScheduleDAGMutation class, which represents
11 : // a target-specific mutation of the dependency graph for scheduling.
12 : //
13 : //===----------------------------------------------------------------------===//
14 :
15 : #ifndef LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
16 : #define LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
17 :
18 : namespace llvm {
19 :
20 : class ScheduleDAGInstrs;
21 :
22 : /// Mutate the DAG as a postpass after normal DAG building.
23 : class ScheduleDAGMutation {
24 : virtual void anchor();
25 :
26 : public:
27 0 : virtual ~ScheduleDAGMutation() = default;
28 :
29 : virtual void apply(ScheduleDAGInstrs *DAG) = 0;
30 : };
31 :
32 : } // end namespace llvm
33 :
34 : #endif // LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
|