summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Tweed <david.tweed@arm.com>2013-01-09 16:21:47 +0000
committerDavid Tweed <david.tweed@arm.com>2013-01-09 16:21:47 +0000
commitf42bdf7c77f16af8fac3c488ef6bf71e8e2f4b09 (patch)
tree1324fe82a9e8aec94a87d6b311473aae8890e6f4
parent06358bd07892238ff940ecc8c6d71305731c2bb0 (diff)
downloadbcm5719-llvm-f42bdf7c77f16af8fac3c488ef6bf71e8e2f4b09.tar.gz
bcm5719-llvm-f42bdf7c77f16af8fac3c488ef6bf71e8e2f4b09.zip
For some LLVM-as-library uses it is convenient to create a
subclass of TargetMachine which "forwards" all operations to an existing internal TargetMachine member variable. In the usage context the specific-machine class derived from TargetMachine is not visible, only a reference to the generic base class TargetMachine. Although getSubtargetImpl() is public in specific-machine classes derived from TargetMachine, the TargetMachine class unfortunately has getSubtargetImpl() protected (and accessing non-const members makes abusing getSubtarget() unsuitable). Making it public in the base class allows this forwarding pattern. llvm-svn: 171976
-rw-r--r--llvm/include/llvm/Target/TargetMachine.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/include/llvm/Target/TargetMachine.h b/llvm/include/llvm/Target/TargetMachine.h
index aa049f02fc0..35cf20a7028 100644
--- a/llvm/include/llvm/Target/TargetMachine.h
+++ b/llvm/include/llvm/Target/TargetMachine.h
@@ -59,10 +59,6 @@ protected: // Can only create subclasses.
TargetMachine(const Target &T, StringRef TargetTriple,
StringRef CPU, StringRef FS, const TargetOptions &Options);
- /// getSubtargetImpl - virtual method implemented by subclasses that returns
- /// a reference to that target's TargetSubtargetInfo-derived member variable.
- virtual const TargetSubtargetInfo *getSubtargetImpl() const { return 0; }
-
/// TheTarget - The Target that this machine was created for.
const Target &TheTarget;
@@ -95,6 +91,10 @@ public:
const StringRef getTargetCPU() const { return TargetCPU; }
const StringRef getTargetFeatureString() const { return TargetFS; }
+ /// getSubtargetImpl - virtual method implemented by subclasses that returns
+ /// a reference to that target's TargetSubtargetInfo-derived member variable.
+ virtual const TargetSubtargetInfo *getSubtargetImpl() const { return 0; }
+
TargetOptions Options;
// Interfaces to the major aspects of target machine information:
OpenPOWER on IntegriCloud