X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2FTableGen%2FInstrInfoEmitter.h;h=abb1c6bc188cbd94e9ee7c15cb9ec6153dcdb0ea;hb=5d4314ef720630e6547fe41efec1608d4c14c78e;hp=a223f2466ea85d96bfb0304d97ed140e9361463b;hpb=2d51a4ce8f64a0e4aa70a52c46aafb22a31e47e4;p=oota-llvm.git diff --git a/utils/TableGen/InstrInfoEmitter.h b/utils/TableGen/InstrInfoEmitter.h index a223f2466ea..abb1c6bc188 100644 --- a/utils/TableGen/InstrInfoEmitter.h +++ b/utils/TableGen/InstrInfoEmitter.h @@ -29,37 +29,36 @@ class CodeGenInstruction; class InstrInfoEmitter : public TableGenBackend { RecordKeeper &Records; - const CodeGenDAGPatterns CDP; + CodeGenDAGPatterns CDP; std::map ItinClassMap; public: InstrInfoEmitter(RecordKeeper &R) : Records(R), CDP(R) { } // run - Output the instruction set description, returning true on failure. - void run(std::ostream &OS); + void run(raw_ostream &OS); private: typedef std::map, unsigned> OperandInfoMapTy; - // Instruction analysis. - void InferFromPattern(const CodeGenInstruction &Inst, - bool &isStore, bool &isLoad, bool &NeverHasSideEffects); - void emitRecord(const CodeGenInstruction &Inst, unsigned Num, Record *InstrInfo, std::map, unsigned> &EL, + std::map &BM, const OperandInfoMapTy &OpInfo, - std::ostream &OS); - void emitShiftedValue(Record *R, StringInit *Val, IntInit *Shift, - std::ostream &OS); + raw_ostream &OS); // Itinerary information. void GatherItinClasses(); unsigned getItinClassNumber(const Record *InstRec); // Operand information. - void EmitOperandInfo(std::ostream &OS, OperandInfoMapTy &OperandInfoIDs); + void EmitOperandInfo(raw_ostream &OS, OperandInfoMapTy &OperandInfoIDs); std::vector GetOperandInfo(const CodeGenInstruction &Inst); + + void DetectRegisterClassBarriers(std::vector &Defs, + const std::vector &RCs, + std::vector &Barriers); }; } // End llvm namespace