1//===-- llvm/CodeGen/VirtRegRewriter.h - VirtRegRewriter -*- 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#ifndef LLVM_CODEGEN_VIRTREGREWRITER_H 11#define LLVM_CODEGEN_VIRTREGREWRITER_H 12 13namespace llvm { 14 class LiveIntervals; 15 class MachineFunction; 16 class VirtRegMap; 17 18 /// VirtRegRewriter interface: Implementations of this interface assign 19 /// spilled virtual registers to stack slots, rewriting the code. 20 struct VirtRegRewriter { 21 virtual ~VirtRegRewriter(); 22 virtual bool runOnMachineFunction(MachineFunction &MF, VirtRegMap &VRM, 23 LiveIntervals* LIs) = 0; 24 }; 25 26 /// createVirtRegRewriter - Create an return a rewriter object, as specified 27 /// on the command line. 28 VirtRegRewriter* createVirtRegRewriter(); 29 30} 31 32#endif 33