X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCodeGen%2FSpiller.h;h=9c3900df0b57b2f555548403f2b75c4644beae22;hb=c69485e34d57e17fe2c3acab64e519d6a6945197;hp=730419b057ddfe001964838e956f8de8a6b621a9;hpb=cd35ed5153963c92333aa8d82692f1344d3ec911;p=oota-llvm.git diff --git a/lib/CodeGen/Spiller.h b/lib/CodeGen/Spiller.h index 730419b057d..9c3900df0b5 100644 --- a/lib/CodeGen/Spiller.h +++ b/lib/CodeGen/Spiller.h @@ -13,10 +13,14 @@ #include namespace llvm { - struct LiveInterval; + + class LiveInterval; class LiveIntervals; + class LiveStacks; class MachineFunction; + class MachineInstr; class VirtRegMap; + class VNInfo; /// Spiller interface. /// @@ -25,12 +29,20 @@ namespace llvm { class Spiller { public: virtual ~Spiller() = 0; + + /// Spill the given live range. The method used will depend on the Spiller + /// implementation selected. virtual std::vector spill(LiveInterval *li) = 0; + + /// Intra-block split. + virtual std::vector intraBlockSplit(LiveInterval *li, + VNInfo *valno) = 0; + }; /// Create and return a spiller object, as specified on the command line. Spiller* createSpiller(MachineFunction *mf, LiveIntervals *li, - VirtRegMap *vrm); + LiveStacks *ls, VirtRegMap *vrm); } #endif