X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCodeGen%2FSpiller.h;h=41f1727da43921b102c79ea94b91508f785425e8;hb=806562cc59ad35e6c742abe9109e9b8090b3f820;hp=e838508810228b8b71a092037aeb90e88863c1dd;hpb=0bde89e4555b726104dff26b90378a17fa919648;p=oota-llvm.git diff --git a/lib/CodeGen/Spiller.h b/lib/CodeGen/Spiller.h index e8385088102..41f1727da43 100644 --- a/lib/CodeGen/Spiller.h +++ b/lib/CodeGen/Spiller.h @@ -10,10 +10,12 @@ #ifndef LLVM_CODEGEN_SPILLER_H #define LLVM_CODEGEN_SPILLER_H -#include - namespace llvm { - struct LiveInterval; + + class LiveRangeEdit; + class MachineFunction; + class MachineFunctionPass; + class VirtRegMap; /// Spiller interface. /// @@ -22,12 +24,23 @@ namespace llvm { class Spiller { public: virtual ~Spiller() = 0; - virtual std::vector spill(LiveInterval *li) = 0; + + /// spill - Spill the LRE.getParent() live interval. + virtual void spill(LiveRangeEdit &LRE) = 0; + }; /// Create and return a spiller object, as specified on the command line. - Spiller* createSpiller(MachineFunction *mf, LiveIntervals *li, - VirtRegMap *vrm); + Spiller* createSpiller(MachineFunctionPass &pass, + MachineFunction &mf, + VirtRegMap &vrm); + + /// Create and return a spiller that will insert spill code directly instead + /// of deferring though VirtRegMap. + Spiller *createInlineSpiller(MachineFunctionPass &pass, + MachineFunction &mf, + VirtRegMap &vrm); + } #endif