X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FHexagon%2FHexagonTargetMachine.h;h=b61f6bc92f7fd56008391c86e6b955ca1103542f;hb=766278ea849cdbe780f543a864c1740429f9f0dc;hp=d2bba73c34e907af8d98928f8c66f6d944907957;hpb=cf5bea8e4a4bff7477617eb4b09ce36f00a5bc5e;p=oota-llvm.git diff --git a/lib/Target/Hexagon/HexagonTargetMachine.h b/lib/Target/Hexagon/HexagonTargetMachine.h index d2bba73c34e..b61f6bc92f7 100644 --- a/lib/Target/Hexagon/HexagonTargetMachine.h +++ b/lib/Target/Hexagon/HexagonTargetMachine.h @@ -23,21 +23,25 @@ namespace llvm { class Module; class HexagonTargetMachine : public LLVMTargetMachine { - HexagonSubtarget Subtarget; + std::unique_ptr TLOF; + mutable StringMap> SubtargetMap; public: - HexagonTargetMachine(const Target &T, StringRef TT,StringRef CPU, + HexagonTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL); + ~HexagonTargetMachine() override; + const HexagonSubtarget *getSubtargetImpl(const Function &F) const override; - using LLVMTargetMachine::getSubtargetImpl; - const HexagonSubtarget *getSubtargetImpl() const override { - return &Subtarget; - } static unsigned getModuleMatchQuality(const Module &M); TargetPassConfig *createPassConfig(PassManagerBase &PM) override; + TargetIRAnalysis getTargetIRAnalysis() override; + + TargetLoweringObjectFile *getObjFileLowering() const override { + return TLOF.get(); + } }; extern bool flag_aligned_memcpy;