summaryrefslogtreecommitdiff
path: root/include/llvm/Target
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
commit73b984530f42d1b829a8de8824ae354a133d998a (patch)
treef4af4638082114fde684a39f49bc4c72c1f42199 /include/llvm/Target
parenta7303360aea203d0f58f77ac43287f5b98c7cbe6 (diff)
downloadllvm-73b984530f42d1b829a8de8824ae354a133d998a.tar.gz
llvm-73b984530f42d1b829a8de8824ae354a133d998a.tar.bz2
llvm-73b984530f42d1b829a8de8824ae354a133d998a.tar.xz
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171976 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target')
-rw-r--r--include/llvm/Target/TargetMachine.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h
index aa049f02fc..35cf20a702 100644
--- a/include/llvm/Target/TargetMachine.h
+++ b/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: