Add subtarget caches to aarch64, arm, ppc, and x86.
[oota-llvm.git] / lib / Target / PowerPC / PPCTargetMachine.h
index ea7f27ae18a72a1dc229b53c3f15494b43da90e3..35e2518462bedd7a79d81e003b10f291ba469a26 100644 (file)
@@ -24,7 +24,9 @@ namespace llvm {
 /// PPCTargetMachine - Common code between 32-bit and 64-bit PowerPC targets.
 ///
 class PPCTargetMachine : public LLVMTargetMachine {
-  PPCSubtarget        Subtarget;
+  PPCSubtarget Subtarget;
+
+  mutable StringMap<std::unique_ptr<PPCSubtarget>> SubtargetMap;
 
 public:
   PPCTargetMachine(const Target &T, StringRef TT,
@@ -33,6 +35,7 @@ public:
                    CodeGenOpt::Level OL);
 
   const PPCSubtarget *getSubtargetImpl() const override { return &Subtarget; }
+  const PPCSubtarget *getSubtargetImpl(const Function &F) const override;
 
   // Pass Pipeline Configuration
   TargetPassConfig *createPassConfig(PassManagerBase &PM) override;