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 virtual ~ScheduleDAGMutation() = default; 28 29 virtual void apply(ScheduleDAGInstrs *DAG) = 0; 30 }; 31 32 } // end namespace llvm 33 34 #endif // LLVM_CODEGEN_SCHEDULEDAGMUTATION_H 35