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 class ScheduleDAGInstrs; 20 21 /// Mutate the DAG as a postpass after normal DAG building. 22 class ScheduleDAGMutation { 23 virtual void anchor(); 24 public: 25 virtual ~ScheduleDAGMutation() {} 26 27 virtual void apply(ScheduleDAGInstrs *DAG) = 0; 28 }; 29 } 30 31 #endif 32