| //===-- 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 |