| //===-- llvm/CodeGen/VirtRegRewriter.h - VirtRegRewriter -*- C++ -*--------===// | |
| // | |
| // The LLVM Compiler Infrastructure | |
| // | |
| // This file is distributed under the University of Illinois Open Source | |
| // License. See LICENSE.TXT for details. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef LLVM_CODEGEN_VIRTREGREWRITER_H | |
| #define LLVM_CODEGEN_VIRTREGREWRITER_H | |
| namespace llvm { | |
| class LiveIntervals; | |
| class MachineFunction; | |
| class VirtRegMap; | |
| /// VirtRegRewriter interface: Implementations of this interface assign | |
| /// spilled virtual registers to stack slots, rewriting the code. | |
| struct VirtRegRewriter { | |
| virtual ~VirtRegRewriter(); | |
| virtual bool runOnMachineFunction(MachineFunction &MF, VirtRegMap &VRM, | |
| LiveIntervals* LIs) = 0; | |
| }; | |
| /// createVirtRegRewriter - Create an return a rewriter object, as specified | |
| /// on the command line. | |
| VirtRegRewriter* createVirtRegRewriter(); | |
| } | |
| #endif |